Documentation index
How to use: Start with the quickstart and make sure you learn how to find help. Then it's as you like: go for another general tutorial, or a specific example, pick a basic notion, or some examples from the cookbook. If you've understood all you need, just browse the reference and compose your dream stream.
To install liquidsoap, see the installation instructions. If you downloaded a source tarball of liquidsoap, you may first read the build instructions.
If you are migrating from a previous version, you might want to check out this page.
General tutorials
- The book: The Liquidsoap book
- Video presentations: some presentations we did about liquidsoap
- How to find help about operators, settings, server commands, etc.
- Frequently Asked Questions, Troubleshooting
- Quickstart: where anyone should start.
- Complete case analysis: an example that is not a toy.
- Cookbook: contains lots of idiomatic examples.
- FFmpeg cookbook: examples specific to the FFmpeg support.
Reference
- Script language: A more detailed presentation.
- Core API: The core liquidsoap API
- Extra API: Extra functions and libraries.
- Protocols: List of protocols supported by liquidsoap.
- Settings: The list of available settings for liquidsoap.
- FFmpeg: FFmpeg support documentation.
- FFmpeg encoder and FFmpeg filters: encoding and filtering with FFmpeg.
- Encoding formats: The available formats for encoding outputs.
- Video streams: Use
liquidsoapfor video streams - JSON import/export: Importing and exporting language values in JSON.
- YAML import/export and XML import/export: Importing and exporting language values in YAML and XML.
- Strings encoding: How liquidsoap converts strings to UTF-8.
- Playlist parsers: Supported playlist formats.
- LADSPA plugins: Using LADSPA plugins.
- Database: Support for SQL databases.
Core
- Basic concepts: sources, clocks and requests.
- How scripts run: script loading, typechecking and caching, execution phases and the streaming loop.
- Source composition: how
fallback,switch,rotateandrandomhand over from one source to another. - Source callbacks: how long
on_track,on_metadataand friends stay attached, and how to release them. - Stream contents: what kind of streams are supported, and how.
- Multitrack: streams with several audio or video tracks.
- Memory usage: what uses memory in liquidsoap and how to reduce it.
Specific tutorials
- Blank detection
- Customize metadata
- Dynamic source creation: dynamically create sources using server requests.
- External programs: decode files and encode streams with external programs.
- HLS output: output your stream as HTTP Live Stream.
- JACK audio: low-latency audio I/O with the JACK audio server.
- Streaming to Icecast and Shoutcast: send your stream to a server, and update its ICY metadata.
- Icecast server emulation: serve streams to listeners directly from liquidsoap.
- Harbor input and output: receive streams from icecast and shoutcast source clients, serve them, and relay remote streams.
- Interaction with the Harbor: interact with a running Liquidsoap using the Harbor server.
- Interaction with the server: interact with a running Liquidsoap instance using the telnet server.
- Loudness Normalization: normalize audio data using LUFS or ReplayGain.
- Performance and monitoring: latency, profiling and Prometheus metrics.
- Scheduling tasks: run functions at given times or intervals.
- Seek and cue support: seek and set cue-in and cue-out points in sources.
- Smart crossfading: define custom crossfade transitions.
- Stereo Tool: process audio with Stereo Tool.
- Subtitles: handle subtitle tracks.
- Using in production: integrate liquidsoap scripts in a production environment.
User scripts
- Beets: an example of a music database integration.
- Split a CUE sheet
Behind the curtains
- Some presentations and publications explaining the theory underlying Liquidsoap
- OCaml API documentation for Liquidsoap's internals and the libraries it is built on