Liquidsoap – свободный язык программирования для аудио, разработанный первоначально для создания аудио- и видеопотоков , передаваемых из исходного потока на Icecast сервер. Различие с любыми другими доступными утилитами – это то, что Liquidsoap интерпретирует отдельный скриптовой язык, что делает его очень универсальным и адаптирующимся к различным применениям.
Liquidsoap – это язык функционального программирования. Таким образом, функции могут быть использованы в качестве переменных. В частности, так как потоки – это бесконечные объекты, единственный способ, чтобы применить операцию для каждого элемента потока, является определением обобщённой функции, которая применяется к каждому элементу, когда он создаётся.
В языке Liquidsoap, аудио- и видеопотоки представлены переменными. Тем не менее, поток является бесконечным объектом, следовательно, потоковой переменной в Liquidsoap нельзя управлять напрямую. Вместо этого, они обрабатываются с помощью операторов, которые производят с ними некоторые операции.
Кроме того, поток – это объект высокого порядка, что представляет собой бесконечную последовательность звуковых или выборка данных видео, а также метаданные и разрывы, которые представлены границами треков (композиций).
Описание аудиопотока может быть очень сложным: некоторые входные источники (файлы, перенаправление потока, вход звуковой карты) могут быть объединены различными способами (обработки звука, микширование, воспроизведение планирования, fall-back’и) и в конечном итоге могут быть выведены в любом другом виде (на несколько серверов или в нескольких форматах). Чтобы сделать это простым без больших затрат энергии, Liquidsoap использует собственный небольшой скриптовой язык для настройки.
В этом языке есть понятие аудиопотока и запроса, и встроенные функции для объединения потоков разными способами. Некоторые из его основных особенностей:
сервер никогда не рухнет, если сделал опечатку в тёмном углу конфигурации.
вам не придётся прописывать их.
вы можете задать свои составные операции, но также используются функции для описания переходов от одного потока к другому.
Последние релизы Liquidsoap также включают в себя возможность взаимодействовать с локальной звуковой картой или для вывода мультимедийных данных в локальные файлы, используя различные форматы. Таким образом, Liquidsoap не только клиент-источник аудио- и видеопотока для Icecast, но общецелевой специализированный язык аудио, посвящённый автоматизации обработки и трансляции аудио и видео.
Liquidsoap опубликован под лицензией GNU General Public License, является частью проекта Savonet, и разрабатывается в OCaml (Objective Caml). Проект Savonet так же поддерживает модули OCaml, используемые для различных дополнительных возможностей, поддерживаемых в Liquidsoap.
Ссылки