Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Графика, звук, видео

Интернет-радиостанция на Icecast

Оригинал: Broadcast your music with Icecast
Автор: Kurt Edelbrock
Дата: 17 апреля 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 28 апреля 2008

Знали ли вы, что на вашей Linux-машине можно устроить настоящую интернет-радиостанцию? Просто добавляете песни в плейлист, настраиваете Icecast-сервер и - вуаля! - у вас свой собственный аудиопоток. Можно слушать его самому удаленно, но гораздо интересней рассказать о новой радиостанции своим друзьям.

Icecast - это набор программ и библиотек, с помощью которых можно создать интернет-радиостанцию. Icecast забирает звуковой поток из программы-источника, и раздает всем, кто обратится по определенному URL-адресу. Прослушивать ваш поток пользователи могут с помощью программ типа VLC, MPlayer и Xine.

Для передачи звука Icecast-серверу требуется программа-источник. Мы будем использовать Ices, который распространяется в двух версиях: версия 0.x поддерживает MP3-потоки, а версия 2.x - потоки в формате Ogg Vorbis. К сожалению, настройка Icecast-сервера и клиента Ices довольно сложна, особенно для новичков.

Многие дистрибутивы, включая Ubuntu и Debian, уже содержат пакеты в репозиториях. Мы все же рассмотрим ручной процесс установки. Во-первых, нужно установить зависимости пакетов - libxml2, libxslt1-curl, libxslt1-dev, vorbis-tools, libogg-dev, libvorbis-dev и libshout3-dev. Затем нужно скачать файлы Icecast и Ices. Извлеките исходные тексты из архивов, и отдайте обычные команды: ./configure, make, make install.

Настройка Icecast

Конфигурационный файл Icecast находится в /usr/local/etc/icecast.xml, либо в зависимости от дистрибутива, в другом месте. Здесь хранятся все основные настройки сервера. Нужно изменить поле <source-password> - этот пароль защищает аудиопоток при его передаче от источника к Icecast. Пароль, указанный в поле <admin-password> используется для аутентификации пользователя при попытке просмотра XML-статистики потока. Свой домен и порт можно указать в поле <listen-socket>. В <logdir> хранится путь, по которому будут сохраняться логи. Не забудьте установить соответствующие права на этот каталог, чтобы сервер смог в него писать.

Также нужно указать настройки монтирования, особенно в том случае, когда вы хотите опубликовать свой аудиопоток. Эти настройки включают в себя имя потока, веб-сайт и вступительный аудиофрагмент при подключении к потоку. Их можно найти в секции <mount>. Среди них такие настройки как <max-listeners>, <stream-name>, <stream-description>, <stream-url> и <genre>. stream-url ссылается на адрес в публичных каталогах. <mount-name> - это то, что будет составлять URL-адрес вашего потока, после имени сервера, например, http://localhost/точка_монтирования. Если вы хотите иметь защищенный паролем поток, это можно сделать с помощью полей <username> и <password>. Если хотите, чтобы несколько точек монтирования использовали более чем один поток, можно продублировать всю секцию (включая поля <mount>), поместить их под предыдущими настройками и отредактировать.

Теперь можно запустить сервер командой icecast -c /usr/local/etc/icecast.xml. Возможно, придется указать свой путь до конфигурационного файла. Можно проверить работоспособность сервера с помощью команд top или htop, или сразу зайдя браузером на http://your_ip:port/admin/stats.xml. Имя пользователя - admin, а пароль вы указали в поле <admin-password>.

Создание аудиопотока с помощью Ices

Итак, Icecast-сервер запущен, теперь нужно настроить источник, чтобы он отдавал аудиопоток серверу. В данном случае мы предполагаем, что как сервер Icecast, так и источник Ices установлены на одной машине, хотя это не обязательно.

Во-первых, нужно создать плейлист, в котором будет список песен, которые клиент должен проигрывать. Создайте файл playlist.txt с помощью текстового редактора и наполните его следующим образом:

/music/track1.mp3
/music/track2.ogg
# и т.д...

Есть и простой способ создания плейлиста. Нужно лишь, чтобы все аудиофайлы располагались в одном каталоге. После выполнения следующей команды будет создан файл playlist.txt, содержащий все MP3-файлы из текущего каталога.

find /путь/к/каталогу -iname "*.mp3" > playlist.txt

Можно сделать то же самое и для OGG-файлов, изменив параметр -iname, либо вообще можно опустить опцию -iname "*.mp3", чтобы добавились все файлы из указанного каталога. Однако в этом случае нужно проследить, чтобы в плейлист попали лишь аудиофайлы, иначе Ices выдаст ошибку. После создания файла плейлиста можно запускать Ices:

Ices -h имя_компьютера.com -P ваш_пароль -F /путь/к/файлу/playlist.txt

Случайный режим проигрывания песен включить просто. Сначала, как обычно, создайте плейлист. Затем откройте в текстовом редакторе файл /etc/Ices2/Ices-playlist.xml и измените значение поля <param name="random"> на 1. Теперь Ices будет проигрывать файлы в случайном порядке.

Можно не указывать опцию -h, тогда Ices будет отсылать поток не на удаленную, а на локальную машину. Можно указать опцию -p порт, если Icecast работает на другом, отличном от установленного по умолчанию, порту.

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

Завершив настройку аудиопотока, можно выключить все сервера отдачей команд killall Ices и killall icecast.

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

Установив свой потоковый сервер, вам сложно будет от него отказаться. К нему можно будет получить доступ с любого компьютера, подключенного к интернету. Можно показывать своим друзьям свои новые песни. Можно использовать его на работе для вещания записей собраний и конференций, если какой-нибудь сотрудник пропустит их. Или еще лучше, откажитесь от своей работы :-) и пускайтесь в борьбу среди лучших интернет-радиостанций. Все это и многое другое можно сделать, имея Icecast на своей Linux-машине.