жидкое мыло
![]() | |
Разработчик(и) | Ромен Боксис и Сэмюэль Мимрам |
---|---|
Первоначальный выпуск | 2004 |
Стабильная версия | 2.2.5
/ 2 мая 2024 г |
Репозиторий | github |
Написано в | OCaml |
Операционная система | Unix-подобные и Microsoft Windows |
Тип | Генератор потока |
Лицензия | GPL-2.0 или новее |
Веб-сайт | www |
Liquidsoap — это язык сценариев, ориентированный на создание аудио- и видеопотоков, манипулирование мультимедийными файлами, автоматизацию, работу в качестве серверной части веб-сервера и многое другое. Язык функциональный , статически типизированный с выводом типа . [1] Язык оригинальный, но интерпретатор запрограммирован на OCaml и предоставляется как бесплатное программное обеспечение .
Потоки могут создаваться из различных источников, таких как записи звуковой карты, списки воспроизведения, динамические запросы или онлайн-потоки. К ним могут быть применены эффекты обработки сигналов. Потоки могут быть закодированы в различных форматах, таких как MP3 или Opus . [2] а фактическая потоковая передача осуществляется путем обслуживания сгенерированных списков воспроизведения HLS или с использованием программного обеспечения потоковой передачи, такого как Icecast . [3] Хотя изначально он предназначен для аудиопотоков, генерация видеопотока также поддерживается. [4]
Использование
[ редактировать ]Liquidsoap используется в качестве серверной части для программного обеспечения для потоковой передачи радио, такого как Airtime , [5] AzuraCast [6] или ЛибреТайм. [7] Он также используется многими радиостанциями для создания онлайн-трансляций, например, французским национальным радио Radio France . [8] [9] [10] или Live365 . радиосеть [11] [12]
Примеры скриптов
[ редактировать ]Скрипты в основном состоят из переменных, описывающих источники , генерирующие потоки, которые можно объединять с помощью операторов .
Например, источник можно определить из онлайн-потока с помощью
s1 = input.http("https://server.org:8000/stream")
который впоследствии может быть усилен
s1 = amplify(2., s1)
Источник также можно определить из списка воспроизведения с помощью
s2 = playlist("my_playlist")
Источник, который будет воспроизводить тот или иной из вышеперечисленных источников в зависимости от времени суток, можно создать с помощью
s = switch[({ 6h-22h }, s1), ({ 22h-6h }, s2)]
Наконец, полученный источник может транслироваться сервером Icecast в виде потока mp3 с
output.icecast(%mp3, host="localhost", port=8000, password="hackme", mount="radio", s)
Ссылки
[ редактировать ]- ^ Бельде, Дэвид; Боксис, Ромен; Мимрам, Самуэль (2011). «Liquidsoap: язык программирования высокого уровня для потоковой передачи мультимедиа». СОФСЭМ 2011: Теория и практика информатики . Конспекты лекций по информатике. Том. 6543. стр. 99–110. arXiv : 1104.2681 . дои : 10.1007/978-3-642-18381-2_8 . ISBN 978-3-642-18380-5 . S2CID 1250366 .
- ^ «Создание интернет-радиостанции с помощью Icecast и Liquidsoap» .
- ^ «Сторонние приложения Icecast» .
- ^ «Функциональная генерация аудио и видеопотоков с помощью Liquidsoap» .
- ^ «Что такое эфирное время?» .
- ^ «АзураКаст» .
- ^ «Архитектура LibreTime» .
- ^ «Радио Франции вносит свой вклад в создание программного обеспечения для потоковой передачи аудио с открытым исходным кодом» .
- ^ «Создание платформы потокового аудио с открытым исходным кодом» .
- ^ «Сценарии Liquidsoap Радио Франции» . Гитхаб .
- ^ «Live365 представит на Liquidshop 1.0» .
- ^ «Live365 представит продукт на Liquidshop 2» .
Дальнейшее чтение
[ редактировать ]- Мимрам, Самуэль; Бокси, Ромен (2021). Книга «Жидкое мыло» . ISBN 979-8748717717 .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Liquidshop : онлайн-семинар о Liquidsoap
- жидкое мыло на GitHub