CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
11.02.2012

Последние комментарии

Нужны ли Linux'у пользователи? (277)
24 Декабрь, 23:02
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 Декабрь, 22:53
Kubuntu Feisty (15)
24 Декабрь, 18:42
Один на один с Windows XP (3758)
24 Декабрь, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Приложения

Заметки :: Блогометки :: Debian Day

Liquidsoap: гибкий клиент потокового аудиовещания для сервера Icecast и многое другое…

http://beshenov.ru

Автор: Ромейн Боксис (Romain Beauxis).

Оригинал: «Liquidsoap: a versatile Icecast source client, and much more…», 5 августа 2007 г.

Представление

Liquidsoap — мощный генератор аудиопотока, созданный для работы с Icecast в качестве исходного клиента. Он был создан для сетевого радио кампуса Ecole Normale Supérieure de Lyon, что налагало жесткие требования: прием пользовательских запросов, поддержка удаленных файлов и списков воспроизведения, составление расписаний специальных программ, сведение джинглов в прямом эфире, взаимодействие с веб-сайтом или IRC-ботом, и так далее.

Важная особенность Liquidsoap: вместо создания готового решения для одной сетевой станции, был создан гибкий инструмент, с которым вы можете сочетать желаемые возможности. Поэтому он успешно использовался несколькими другими вещателями, которым не было достаточно обычных программ.

Дизайн

Описание аудиопотока может быть очень сложным: множественный ввод (файлы, ретрансляция потока, ввод звуковой карты) соединяется различными способами (обработка звука, микширование, воспроизведение по расписанию, отступления) и, в конечном счете, идет разными путями на вывод (различные серверы, содержимое, форматы). Чтобы сделать это простым без больших затрат сил, для конфигурирования Liquidsoap использует собственный небольшой язык скриптования.

В этом языке есть понятие аудиопотока и запроса, встроенные функции для объединения потоков разными методами. Основные особенности:

  • статическая типизация: сервер никогда не рухнет, если в темном закоулке конфигурационного файла будет опечатка,
  • типы предполагаются: не нужно их указывать,
  • язык функционален: вы можете определить свои составные операции, но для описания передач от одного потока к другому также используются функции.

Liquidsoap довольно гибок и может использоваться как демон или как инструмент командной строки и не ограничивается передачей потока серверу Icecast — поток может идти и на вашу локальную звуковую карту!

Использование

Если вы не знаете, каким образом веб-радио строится при помощи Icecast, вам может потребоваться прочесть некоторую дополнительную документацию по этому вопросу. Вкратце, Icecast принимает соединения с исходным звуком и ретранслирует их слушателям. В качестве источника здесь выступает Liquidsoap.

Начнем с очень простого примера. Пусть вы работаете с сервером Icecast на хосте «myhost» с паролем для исходных соединений «hackmeimcool», и вы хотите передавать поток Ogg/Vorbis из одного зацикленного файла (файл может быть в формате Ogg/Vorbis, MP3, WAV, AAC; AAC поддерживается версией с SVN). Вот что должно сделать всю работу:

$ liquidsoap 'output.Icecast.vorbis(host="myhost",password="hackmeimcool",
  mount="mystream.ogg",single("/path/to/my/file"))'

Другое возможное применение — передача сетевого радио на свою звуковую карту с использованием libao. Для этого сделайте

$ liquidsoap 'output.ao(fallback(track_sensitive=false,
  [input.http("http://www.dolebrai.net:8000/dolebrai.ogg"),blank()]))'

Liquidsoap также можно использовать как скриптовой язык; ниже следует код по обоим предыдущим примерам:

#!/usr/bin/liquidsoap

# Устанавливаем вывод сообщений в stdout и /tmp set log.stdout = true set log.dir = "/tmp"

# Выводим файл на сервер Icecast file = single("/path/to/my/file") output.icecast.vorbis(host="myhost",password="hackmeimcool", mount="mystream.ogg",file)

# Выводим сетевое радио локально radio = fallback(track_sensitive=false, [input.http("http://www.dolebrai.net:8000/dolebrai.ogg"),blank()]) output.ao(radio)

Заключение

Полное описание API доступно по адресу http://savonet.sourceforge.net/wiki/LiqReference. Здесь мы не представили многие крутые возможности:

  • звуковые эффекты,
  • особые способы передачи,
  • ввод-вывод звуковой карты,
  • взаимодействие с другими компонентами (веб-сайт, внешний планировщик) в рамках более сложной платформы,
  • многие другие.

Liquidsoap уже используется различными сетевыми станциями, такими как Dolebraï, передающей свободную музыку, RadioPi со сложной многосерверной и многопотоковой конфигурацией.

Это представление Liquidsoap было очень коротким. Это не место для руководства, так что закончим примером использования, который, надеюсь, вызовет у вас желание узнать больше.

Также вы можете попробовать следующее:

$ telnet localhost 1234

q.push /path/to/file

Официальный сайт проекта — http://savonet.sourceforge.net/, список рассылки — savonet-users@lists.sourceforge.net , канал IRC — #savonet на Freenode. Liquidsoap есть в нестабильной и тестовой ветке Debian, в Ubuntu пакета еще нет.





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds