Liquidsoap

Last updated
Developer(s) Romain Beauxis and Samuel Mimram
Initial release2004
Stable release
2.2.0
Repository github.com/savonet/liquidsoap
Written in OCaml
Operating system Unix-like and Microsoft Windows
Type Stream generator
License GPL-2.0-or-later
Website www.liquidsoap.info

Liquidsoap is a scripting language oriented toward the creation of audio and video streams, the manipulation of multimedia files, automation, serving as webserver back-end and more. The language is functional, statically typed with type inference [1] . The language is an original one, but the interpreter is programmed in OCaml and provided as free software.

Contents

Streams can be created from various sources such as soundcard captures, playlists, dynamic requests, or online streams. On those signal processing effects can be applied. The streams can be encoded in various formats such as MP3 or Opus [2] , and the actual streaming is performed by serving generated HLS playlists or by using streaming software such as Icecast [3] . Although originally targeted at audio streams, the generation of video stream is also supported [4] .

Usage

Liquidsoap is used as a back-end for radio streaming software such as Airtime [5] , AzuraCast [6] or LibreTime [7] . It is also used by many radios to generate online streams such as the French national radio Radio France [8] [9] [10] , or the Live365 radio network [11] [12] .

Script examples

Scripts mostly consist of variables describing sources generating streams, which can be combined using operators.

For instance, a source can be defined from an online stream by

s1=input.http("https://server.org:8000/stream")

which can later on be amplified by

s1=amplify(2.,s1)

A source can also be defined from a playlist by

s2=playlist("my_playlist")

A source which will play one or the other of the above sources depending on the time of the day can be created by

s=switch[({6h-22h},s1),({22h-6h},s2)]

Finally, the resulting source can be broadcast by an Icecast server as an mp3 stream with

output.icecast(%mp3,host="localhost",port=8000,password="hackme",mount="radio",s)

Related Research Articles

<span class="mw-page-title-main">Vorbis</span> Royalty-free lossy audio encoding format

Vorbis is a free and open-source software project headed by the Xiph.Org Foundation. The project produces an audio coding format and software reference encoder/decoder (codec) for lossy audio compression. Vorbis is most commonly used in conjunction with the Ogg container format and it is therefore often referred to as Ogg Vorbis.

Shoutcast is a service for streaming media over the Internet to media players, using its own cross-platform proprietary software. It allows digital audio content, primarily in MP3 or High-Efficiency Advanced Audio Coding format. The most common use of Shoutcast is for creating or listening to Internet audio broadcasts; however, there are also video streams. The software is available to use for free or as a paid cloud service with additional professional features.

<span class="mw-page-title-main">Playlist</span> Curated list of video or audio files

A playlist is a list of video or audio files that can be played back on a media player either sequentially or in a shuffled order. In its most general form, an audio playlist is simply a list of songs, but sometimes a loop. The term has several specialized meanings in the realms of television broadcasting, radio broadcasting and personal computers.

<span class="mw-page-title-main">Icecast</span> Streaming media server

Icecast is a streaming media project released as free software maintained by the Xiph.Org Foundation. It also refers specifically to the server program which is part of the project. Icecast was created in December 1998/January 1999 by Jack Moffitt and Barath Raghavan to provide an open-source audio streaming server that anyone could modify, use, and tinker with. Version 2, a ground-up rewrite aimed at multi-format support and scalability, was started in 2001 and released in January 2004.

<span class="mw-page-title-main">FreeJ</span>

FreeJ is a modular software vision mixer for Linux systems. It is capable of real-time video manipulation, for amateur and professional uses. It can be used as an instrument in the fields of dance theater, veejaying and television. FreeJ supports the input of multiple layers of video footage, which can be filtered through special-effect-chains, and then mixed for output.

M3U is a computer file format for a multimedia playlist. One common use of the M3U file format is creating a single-entry playlist file pointing to a stream on the Internet. The created file provides easy access to that stream and is often used in downloads from a website, for emailing, and for listening to Internet radio.

PLS is a computer file format for a multimedia playlist. It is typically used by media players for streaming media over the Internet, but may also be used for playing local media.

<span class="mw-page-title-main">Airtime (software)</span>

Airtime is a radio management application for remote broadcast automation, and program exchange between radio stations. Airtime was developed and released as free and open-source software, subject to the requirements of the GNU General Public License until it was changed to GNU Affero General Public License.

<span class="mw-page-title-main">Altacast</span> Open source audio encoder

Altacast is a free and open-source audio encoder that can be used to create Internet streams of varying types. Many independent and commercial broadcasters use Altacast to create Internet radio stations, such as those listed on the Icecast, Loudcaster and Shoutcast station directories.

Music Player Daemon (MPD) is a free and open source music player server. It plays audio files, organizes playlists and maintains a music database. In order to interact with it, a client program is needed. The MPD distribution includes mpc, a simple command line client.

Alluvium is open source peercasting software developed by the Foundation for Decentralization Research, first released in 2003. It comprises three components, Core, Media Player, and Server. Alluvium allows video and audio programming to be broadcast over the Internet using swarming technology. It is powered by Onion Networks' Swarmcast, and is notable for its incorporation of server-side time-based playlists, and client software which examines those playlists and begins streaming content from the server(and available peers) per that schedule, simplifying the creation of continuous-broadcast video and audio.

<span class="mw-page-title-main">AudioTron</span>

The Turtle Beach AudioTron AT-100 and AT-101 are 1U rack-mountable, hi-fi network music players. An AudioTron can stream digital music files from personal computers or NAS devices without the need to install server software on these storage devices since the AudioTron is based on Windows CE and is therefore a computer that looks like audio hardware. Supported file formats include Wave, WMA, MP3 and MP3 playlists. These files can reside on a Microsoft Windows network share or on a Samba server. AudioTron reads music files over Ethernet or HPNA network, and generates analog audio via RCA connectors as well as digital audio via S/PDIF.

<span class="mw-page-title-main">Music on Console</span> Console audio player

Music On Console (MOC) is an ncurses-based console audio player for Linux/UNIX. It was originally written by Damian Pietras, and is currently maintained by John Fitzgerald. It is designed to be powerful and easy to use, with an interface inspired by the Midnight Commander console file manager. The default interface layout comprises a file list in the left pane with the playlist on the right. It is configurable with customizable key bindings, color schemes and interface layouts. MOC comes with several themes defined in text files, which can be modified to create new layouts. It supports ALSA, OSS or JACK outputs.

cmus Console audio player

cmus is a small and fast console audio player for Unix-like operating systems. cmus is distributed under the terms of the GPL-2.0-or-later and is operated exclusively through a text-based user interface, built with ncurses.

<span class="mw-page-title-main">Rainwave</span>

Rainwave is an interactive radio website that allows users to request, rate, and vote for songs in real time. The site hosts five separate radio streams and focuses completely on video game music. Rainwave is a free service, funded primarily by Robert "LiquidRain" McAuley, and supplemented by user donations.

<span class="mw-page-title-main">Opus (audio format)</span> Lossy audio coding format

Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.

<span class="mw-page-title-main">EMMS (media player)</span> Audio player for Emacs

EMMS is media player software for Emacs. It is written in Emacs Lisp. The name could possibly echo XMMS. It may be derived from an earlier Emacs-based player called mp3-player.

<span class="mw-page-title-main">DeaDBeeF</span> Audio player

DeaDBeeF is an audio player software available for Linux, Android and other Unix-like operating systems. DeaDBeeF is free and open-source software, except on Android.

References

  1. Baelde, David; Beauxis, Romain; Mimram, Samuel (2011). "Liquidsoap: A High-Level Programming Language for Multimedia Streaming". SOFSEM 2011: Theory and Practice of Computer Science. Lecture Notes in Computer Science. Vol. 6543. pp. 99–110. arXiv: 1104.2681 . doi:10.1007/978-3-642-18381-2_8. ISBN   978-3-642-18380-5. S2CID   1250366.
  2. "Creating an Internet Radio Station with Icecast and Liquidsoap".
  3. "Icecast 3rd Party Applications".
  4. "Functional audio and video stream generation with Liquidsoap".
  5. "What is Airtime?".
  6. "AzuraCast".
  7. "LibreTime architecture".
  8. "Radio France contributes to open source audio streaming software".
  9. "Building an Open-Source based audio streaming platform".
  10. "Radio France's Liquidsoap scripts". GitHub .
  11. "Live365 to Present at Liquidshop 1.0".
  12. "Live365 to Showcase Product at Liquidshop 2".

Further reading