Журнал LinuxFormat - перейти на главную

LXF106:Вещайте по сети

Материал из Linuxformat
Версия от 10:56, 5 мая 2009; Crazy Rebel (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Dynebolic Направьте свой аудиопоток в массы

Содержание

Dynebolic: Вещаем с легкостью

Дэниел Джеймс создает интернет-радио с помощью свободного дистрибутива. Его инициалы DJ – простое совпадение?

Linux становится все более популярным, постоянно привлекая большее количество компаний и принося крупные прибыли. Открытые проекты, посвященные рабочим столам, а не только серверам, наслаждаются спонсорством корпораций-гигантов и просто богатых людей. Но и простые инициативы, разрабатываемые в течение многих лет за деньги, которые трудно назвать бюджетом, тоже процветают. Характерный пример – live-дистрибутив Dynebolic, созданный для того, чтобы предоставить активной части сообщества набор свободного мультимедийного ПО. Разработанный небольшой командой под руководством Дэниса «Яромила» Рохо [Denis ‘Jaromil’ Rojo], Dynebolic ковался на старых компьютерах из чуланов и с чердаков, так что он не испытывает проблем с быстродействием, чего нельзя сказать о некоторых других современных дистрибутивах.

Dynebolic сочетает удобство (например, автомонтирование USB) с приятной внешностью, которая напомнит пользователю ранние, более простые рабочие столы. Конечно, свой вклад вносят легкий Xfce 4 и Rox-Filer как интерфейс по умолчанию, но Dynebolic с самого начала был приспособлен для устаревшего оборудования. Это означает, что любой старый компьютер может стать полезным устройством мульти-медиа. Ему даже не нужен рабочий жесткий диск, а если нет CD-ROM, можно загружаться по сети. Что касается приложений, то в Dynebolic есть все, что нужно для создания потокового аудио со множеством оболочек для его кодирования.

Раздел 1 Первая загрузка

Если в BIOS уже выбрана загрузка с компакт-диска или ее можно активировать после включения компьютера, значит, все готово к тому, чтобы начать. Вставьте CD Dynebolic в привод и перезагрузите компьютер – через несколько секунд должен появиться текстовый экран загрузки Dynebolic. Для запуска с настройками по умолчанию можно нажать Enter, или ничего не делать, и тогда загрузка начнется автоматически после небольшой задержки. В этом дистрибутиве нет экрана заставки, и вы увидите все сообщения ядра. Как и в большинстве Live CD, должны произойти запуск X-сервера и автоматический вход в систему. Если звуковая карта была правильно определена и настроена, вы должны услышать мелодию приветствия. Затем в центре экрана появится диалоговое окно ‘Welcome To Dynebolic’.

Постоянство памяти

Если кликнуть на вкладке ‘Getting Started’ в этом окне, можно увидеть краткое объяснение понятий, используемых в Dynebolic для постоянного хранения данных. По умолчанию на локальный диск ничего не пишется, и при перезагрузке все данные теряются. Регулярным пользователям это не подходит, поэтому Dynebolic предлагает две альтернативы. Самый простой метод, известный как «гнездо» [nest], позволяет сохранить настройки и файлы пользователя. Обычно для этих целей используется USB-брелок. В случае необходимости эти данные можно также сохранить на жесткий диск. Второй метод – «док» (dock) – включает в себя копирование большей части содержимого Live CD (каталога dyne) в файл на локальном винчестере. После этого Dynebolic по-прежнему можно будет грузить с CD, но зато отзывчивость повысится.

Чтобы создать USB-брелок с «гнездом», подключите накопитель, щелкните правой кнопкой мыши в любом месте рабочего стола и выберите пункт Configure [Настроить] контекстного меню. Появится окно с набором ярлыков. По двойному щелчку на иконке птицы с подписью Nest появится диалоговое окно с предложением выбрать либо жесткий диск, либо USB-брелок. В следующем окне с помощью ползунка можно указать размер дискового пространства, отводимого для «гнезда», и включить шифрование данных. Оно гарантирует неприкосновенность информации в случае, если брелок будет утерян, но создает дополнительную нагрузку. Нажмите OK, и появится окно терминала, а затем – диалог, сообщающий, что «гнездо» было успешно создано.


«Гнездо» активизируется при следующей загрузке системы, поэтому, чтобы начать сохранение файлов, потребуется перезагрузить компьютер. Примерно в середине загрузки на текстовом экране отобразится сообщение о найденном «гнезде» с предложением подключить его. Если данные были зашифрованы, то появится и второй экран с запросом пароля. После его ввода продолжится загрузка рабочего стола Xfce.

Настройка сети прямолинейна: в окне Configure сделайте двойной щелчок на иконке Network [Сеть], укажите интерфейс из выпадающего списка и выберите DHCP или Static IP. В последнем случае появится окно, в котором нужно будет прописать все настройки вручную и нажать кнопку OK. Рядом с выбранным сетевым интерфейсом появится «галочка», которая означает, что он активен.

Настройка Icecast

Прежде чем транслировать аудиопоток, нужен работающий сервер. Apache может предоставлять доступ к статическим звуковым файлам в режиме загрузки, но самым популярным сервером потокового вещания из файлов Ogg Vorbis и MP3 является Icecast 2. Его можно загрузить со страницы http://icecast.org, но он уже включен в Dynebolic. Во-первых, нам нужно изменить файл настроек Icecast, в основном из-за того, что пароли по умолчанию из него небезопасны. Кликните правой кнопкой мыши на рабочем столе и выберите Audio > Stream > Icecast :: Server Configuration [Звук > Потоковые > Icecast :: Параметры сервера]. Файл /etc/icecast.xml, откроется в редакторе Nedit, и мы сможем поработать с настройками.

На данный момент самые важные изменения, которые нужно сделать, относятся к секции <authentication>. Мы не хотим, что бы кто-либо в Интернете мог управлять аудиопотоком с нашего сервера Dynebolic, поэтому нужно изменить <source-password>, <relay-password> и <adminpassword> на что-то более безопасное, чем ‘hackme’.

Если для сервера задано имя хоста, пропишите его в секцию <hostname> файла настроек. Если нет, прекрасно подойдет вариант по умолчанию: localhost. С удаленного компьютера можно подключиться к web-интерфейсу Icecast, указав IP-адрес и номер порта (стандарт – 8000).

Сохраните файл, выбрав пункт меню File > Save [Файл > Сохранить], и закройте окно Nedit, если нужно освободить немного экранного пространства. Затем кликните правой кнопкой мыши на рабочем столе и выберите пункт меню Audio > Stream > Icecast :: Start Streaming Server [Звук > Потоковые > Icecast :: Запустить сервер]. Откроется окно терминала с текстом, сообщающим, что идентификатор группы и пользователя Icecast были изменены, но это мало что проясняет о состоянии сервера.

Dyne на рабочем столе

Дабы убедиться, что Icecast действительно запущен, можно воспользоваться web-интерфейсом. В меню Dynebolic на рабочем столе есть пункт, который открывает первую страницу администратора в текстовом браузере Links, но, разумеется, он не знает пароля, который мы только что установили в файле настроек Icecast. Поэтому откройте терминал из контекстного меню и введите команду:

# links http://admin:password@localhost:8000

Здесь password – это пароль, который установлен в <admin=password> конфигурационного файла Icecast. В появившемся окне Links слово ‘Administration’ должно быть подсвечено. Нажмите клавишу Enter – откроется страница /admin/stats.xsl со строкой server_start, в которой показано время запуска Icecast. На этой странице приведено также общее количество подключений (listener_connections), которое станет полезной статистикой, если ваш поток приобретет популярность.

Если Links для вас слишком стар, воспользуйтесь Net > WWW > Firefox из контекстного меню. Наберите http://localhost:8000/admin/ в адресной строке Firefox, и вы увидите тот же самый интерфейс, но в графическом виде.

Раздел 2 Потоковый клиент

Следующим шагом после запуска Icecast станет выбор потокового клиента. Это приложение, которое собирает список файлов для воспроизведения в нужном порядке или же направляет на сервер живой аудиопоток. В реальной установке сервер Icecast чаще всего сидит на толстом канале в каком-нибудь дата-центре, а компьютер клиента находится в радиостудии. Причина в том, что Icecast – однонаправленный сервер, и потребляемая ширина канала растет пропорционально числу слушателей. Однако в рамках этого урока будет вполне разумным держать и сервер, и клиент на одной машине. Единственное – если у вас слишком медленный процессор, будьте готовы к пропущенным при кодировании аудиофреймам; это не фатально, но неприятно на слух.

Есть несколько потоковых клиентов, как консольных, так и графических. Они различаются по формату аудиопотока и по тому, идет ли он «живьем» или с заранее записанных файлов. В Dynebolic включен клиент DarkSnow, который может принимать звук с аудиокарты или звукового сервера Jack. (Если вы не знаете, как установить Jack, вернитесь к учебнику Ardour в LXF102). Фактически, DarkSnow – это графическая оболочка для клиента DarkIce, работающего из командной строки.



Запустите DarkSnow с помощью контекстного меню рабочего стола, и вы увидите окно с тремя вкладками. Первая – Server Options, здесь мы установим точку монтирования (имя специального файла, к которому будут подключаться пользователи) и введем пароль, который был задан в файле настроек Icecast.

Затем переключимся на вторую вкладку, чтобы задать параметры звука [Audio Options]. В примере ниже поток был настроен на MP3 переменного битрейта. Так как в качестве устройства ввода [Device Input] был задан Jack, частота дискретизации [Sample Rate], установленная в DarkSnow, должна соответствовать частоте дискретизации Jack – 48000 Гц.

Если есть желание, можно задать метаданные потока на третьей вкладке – Streaming Description, но все будет работать и без них. Теперь можно нажать на кнопку Start Streaming, и если все в порядке, то в нижней части окна появится вывод клиента DarkIce, которым управляет DarkSnow. Откройте в своем браузере – Links или Firefox – web-интерфейс Icecast, и на странице Status должна появиться точка монтирования. Посетители сервера могут кликнуть по этой ссылке, чтобы открыть поток в подходящем проигрывателе мультимедиа.

Сыграй нам, Джек!

Так как DarkSnow – клиент не только Icecast, но и Jack, к нему можно подключить любое Jack-совместимое приложение для работы со звуком, скажем, плейер с заранее заготовленным списком файлов. Можно, однако, смикшировать вывод программы с аудио, поступающим со звуковой карты, через микрофон или линейный вход. В следующем примере на входе DarkSnow играет драм-машина Hydrogen из Dynebolic, а для прослушивания потока в формате MP3 с сервера Icecast на локальном компьютере используется почтенный XMMS. Выход XMMS через модуль Jack направляется на локальную звуковую карту.

С помощью Jack в студии можно слышать то же самое, что услышат посетители, даже несмотря на то, что звуковая карта всего одна, и это обычный стереозвук. Если драм-машина остановится, XMMS останется подключенным к потоку Icecast, и звук продолжит идти еще несколько секунд, прежде чем затихнет. Причина в том, что XMMS, как и большинство плейеров для воспроизведения потокового мультимедиа, имеет буфер для предотвращения коротких выпадений аудиосигнала, вызываемых большим сетевым трафиком.

Запуск станции

Теперь, когда мы проверили Icecast и выяснили, что он отлично работает, можно немного изменить внешний вид web-интерфейса перед тем, как мы откроем наше потоковое радио для публики. Во-первых, остановите Icecast, нажав Ctrl+C в том окне терминала, где он запущен. В каталоге /opt/audio/share/Icecast/web/ находятся несколько XSLT-таблиц и других файлов, используемых для генерации web-интерфейса Icecast; каждый, кто знаком с HTML, сможет отредактировать их, так как они снабжены подробными комментариями. Тем не менее, нужно быть внимательным – даже пропущенная скобка может испортить весь интерфейс.

Каталог /opt/audio смонтирован с Live CD в режиме «только для чтения», поэтому нужно скопировать файлы в ту часть файловой системы, которая доступна на чтение/запись и обновить <webroot> в файле /etc/Icecast.xml. Эта установка находится ближе к концу файла настроек Icecast в секции <paths>. Теперь нужно снова запустить Icecast, не забыв указать путь до XML-файла настроек:

# cp -r /opt/audio/share/web /home/
# cd /home/web/
# nano status.xsl
(внесите требуемые изменения)
# nano /etc/Icecast.xml
(<webroot> должен указывать на /home/web/)
# Icecast -c /etc/Icecast.xml

Неплохо начать с изменения файла status.xsl, так как это страница по умолчанию, которую видят посетители, когда они открывают порт 8000. Проще всего изменить содержимое тегов <title> и <h2>, чтобы сообщить название радиостанции. Также в этом каталоге можно поправить файл style.css, чтобы изменить цвета и разметку. Когда вы будете удовлетворены качеством звука и тем, как выглядит web-интерфейс, можете раскоментировать секцию <directory> в файле /etc/Icecast.xml. Ваша станция автоматически попадет в список на сайте http://Xiph.org, что поможет вам обрести достаточно слушателей. LXF

Скажи мне цену

Независимое радио в Интернете уже не то, благодаря ущербным требованиям по авторским отчислениям в США и других странах. Объединения по сбору авторских гонораров требуют заплатить определенную сумму для того, чтобы было можно публично воспроизводить почти любую музыку, выпущенную на коммерческих CD. Это не так уж дорого, но обычно есть некий годовой минимальный взнос, который сильно ударяет по небольшим радиостанциям.

В Великобритании потоковое воспроизведение группами людей и отдельными лицами покрывается лицензией MCPS-PRS Limited Online Exploitation Licence, пока их совокупный годовой доход не превышает 3000 фунтов. Стоимость лицензии определяется по скользящей шкале и составляет до 400 фунтов в год за воспроизведение 1000 файлов; после превышения этого рубежа нужно приобретать полноценную MCPS-PRS Joint Online Licence. Это не так уж плохо, но уловка в том, что в этих лицензиях много-много ограничений, напечатанных мелким шрифтом. Например, музыку нельзя использовать для целей продвижения товаров и услуг, или включать в подкаст без удовлетворения отдельным лицензиям.

Самый большой подводный камень в том, что лицензии MCPS-PRS охватывают только слушателей в Великобритании. Поэтому если у вашего радио будет значительная аудитория в других странах, придется платить и за соответствующие лицензии в них. Нет ничего удивительного в том, что многие некоммерческие радиостанции исчезли с виртуальных эфирных волн за последние несколько лет, так как отсутствие лицензии может повлечь судебный иск к оператору. Если вы хотите пойти по этому пути и можете себе это позволить, ознакомьтесь с подробностями лицензии на сайте http://www.mcps-prs-alliance.co.uk.

[В РФ, имеет смысл обратиться в Российское Авторское Общество, http://www.rao.ru, – прим. ред.]

Сделайте музыку свободной

Свободная культура дает нам шанс возрождения интернет-радио типа «сделай сам». Так как сообщества по сбору авторских отчислений представляют лишь интересы своих членов, то если вы не состоите в них, можете транслировать собственный контент без необходимости платить за лицензию. Можно убедить других позволить вам транслировать их контент, пока их не связывают конфликтные обязательства, например, участие в какомлибо из сообществ по сбору авторских отчислений.

Можно запрашивать разрешение на вещание, когда посетители сайта загружают на сайт свою музыку через HTML-форму, как делают MySpace и прочие. Или можно собирать файлы, распространяющиеся по Creative Commons или другой свободной лицензии. Идеальным вариантом всегда будет явное получение прав на вещание с вашего сервера, так что подумайте о создании собственных условий до загрузки сторонних файлов. Как, например, узнать, что кто-то поместил на ваш сервер файл, который был скопирован с коммерческого CD? Это одна из тех вещей, которые могут привести к неприятностям с правоохранительными органами и держателями авторских прав.

Настройки Jack

В Dynebolic, апплет QJackCtl для управления звуковым сервером Jack вызывается из контекстного меню: Audio > Jack [Звук > Jack]. У Jack много настроек, и некоторые из них нужно задать вручную, чтобы сервер начал нормально работать на вашем системе. Для того, чтобы увидеть настройки Jack по умолчанию, нажмите в QJackCtl кнопку Setup. Вот «шпаргалка» с основными параметрами, которые должны помочь вам поднять и запустить сервер.

  • Режим реального времени Всегда устанавливается для надежной работы. Dynebolic поддерживает режим реального времени в Jack «из коробки».
  • Вывод подробных сообщений Выводите более подробные сообщения об ошибках. Полезен, если Jack не запускается.
  • Количество периодов в буфере Значение по умолчанию 2 подходит для большинства PCI-карт. Попробуйте 3, если карта работает через USB или заблокирована на 48000 Гц, особенно когда при любом значении следующего параметра появляются x-run’ы (недобор данных в буфере).
  • Количество фреймов за период 256 – неплохое значение для начала, поставьте поменьше для сокращения латентности, и побольше, если появляются xrun’ы.
  • Частота дискретизации Отлично подойдет 44100 Гц (качество аудио CD), но некоторые звуковые карты аппаратно заблокированы на 48000 Гц и будут работать только на этой частоте.
  • Устройства ввода и вывода Введите hw:0, это звуковая карта ALSA по умолчанию. Возможно, потребуется указать hw:1, если у вас больше одной аудиокарты. Если вы не уверены, нажмите на кнопку справа от флажков, чтобы получить список всех доступных ALSA-устройств.
  • Аудио Установите в Duplex для отслеживания потока, в противном случае список портов Jack будет лишь с одной стороны окна Connect

QJackCtl.

Персональные инструменты
купить
подписаться
Яндекс.Метрика