Организация интернет-радиостанции с помощью свободного программного обеспечения
Дмитрий Самсонов, факультет журналистики МГУ, samsonov@convergencelab.ru
В докладе представлена схема организации успешно работающей Интернет-радиостанции. Основное отличие предлагаемого решения от большинства аналогичных заключается в размещении сервера вещания на colocation при ненадежном канале радиостудии, с сохранением возможности вещания даже при отсутствии соединения со студией.
Особое внимание уделено простоте управления для коллектива радиостанции. Упомянуты особенности, выявленные при практической эксплуатации, указаны недостатки и способы их преодоления.
Предлагаемое решение основано на дистрибутиве Debian GNU/Linux.
постановка задачи
Интернет-радиостанция “Факультет” работает на базе кафедры новых медиа и теории коммуникации факультета журналистики Московского Государственного Университета им. М. В. Ломоносова. Начала свою работу осенью 2007-го года.
В эфире транслируются преимущественно ранее записанные передачи. Вещание начинается в 8 утра.
Сетка вещания составляется на 24 часа (с 8-ми утра) и публикуется для слушателей на сайте радиостанции. Обновление сетки вещания происходит раз в несколько дней. Все работы по подготовке передач – от записи и монтажа до составления сетки вещания – проходят в студии.
Уровень надежности и пропускной способности (особенно в утренне-дневные часы) существующего Интернет-канала оказался недостаточен для вещания из студии. Поэтому сервер вещания было решено разместить на colocation.
Прямые эфиры из студии, требующие непосредственного подключения к серверу, проводятся в вечерние часы. Аудиофайлы с записью передач и музыкальных композиций передаются на сервер по ftp заранее, сетка вещания составляется заблаговременно. Таким образом, в случае возникновения в студии перебоев с доступом в Интернет – вещание не нарушается.
Интерфейс управления вещанием для членов коллектива радиостанции должен быть простым и кроссплатформенным.
Вещание ведется в формате mp3 в три канала с разным битрейтом.
Также Интернет-радиостанция имеет свой сайт на базе CMS WordPress.
Сервер работает под управлением Debian GNU/Linux Etch (стабильный на момент создания радиостанции). Практически все необходимые для решения задачи инструменты – были взяты из дистрибутива.
первоначальная реализация
принцип функционирования
Рис. 1. Схема первоначальной организации вещания
Из аудиофайлов, расположенных на сервере, в “полуавтоматическом” режиме формируется плейлист (в формате .m3u), содержащий список файлов, которые должны проигрываться один за другим последовательно начиная с 08:00. Кодирование в mp3 “на лету” осуществляется с помощью программы ezstream. Ежедневно в 08:00 ezstream перезапускается.
Ezstream отсутствовал в Debian Etch (стабильной ветке), но присутствовал в Lenny (тестируемой ветке), создание бекпорта труда не составило.
Передача звукового потока слушателям производится с помощью сервера потокового вещания icecast2.
способ управления вещанием
Единственный способ управления сеткой вещания – изменение файла плейлиста (с жестко заданным именем и местом в файловой иерархии), который автоматически запускается ежедневно в 08:00. Очевидно, что плейлист новой эфирной сетки должен быть размещен на сервере до 08:00 дня, в который новая сетка должна быть введена в работу, но после 08:00 предыдущего дня. Других способов управления сеткой вещания не предусмотрено. Изменение вещания в середине дня, после того как оно уже началось в 8 утра, коллективу радиостанции недоступно.
прямой эфир
Прямой эфир осуществляется из студии при помощи программы edcast для ОС семейства Windows, которая “на лету” кодирует аудио-поток с необходимыми параметрами и отправляет получившиеся потоки на сервер. Для сервера прямой эфир имеет приоритет над вещанием по расписанию – при этом переключение с сетки вещания на прямой эфир и обратно может происходить без обрыва соединения у слушателей.
недостатки решения
1. Длительность аудиофайлов должна быть точно подобрана, чтобы соблюдалась сетка вещания.
2. Самостоятельное создание плейлиста с указанием размещения файлов в иерархии файловой системы удаленного сервера вызывало затруднения у пользователей.
Для избавления от этих недостатков было решено реорганизовать вещание.
окончательная реализация
принцип функционирования
Рис. 2. Схема вещания после реорганизации
Воспроизведение сетки вещания осуществляется с помощью программы mpd — Music Player Daemon. Mpd формирует и передает icecast2 аудио-поток в формате Ogg Vorbis. Этот поток перекодируется “на лету” программой streamTranscoderv3 в несколько потоков формата mp3 с заданными параметрами.
StreamTranscoderv3 отсутствует в Debian, но создание deb-пакета также не составило труда.
способ управления вещанием
Управление сеткой вещания осуществляется также с помощью программы-сервера mpd. Mpd умеет работать с плейлистами, это позволяет коллективу радиостанции (через клиент) самостоятельно формировать сетки вещания. Ежедневно в 08:00 текущий плейлист очищается, загружается заранее сохраненный плейлист с актуальной сеткой вещания и начинается воспроизведение.
Коллективу радиостанции было предложено несколько вариантов взаимодействия с mpd:
- отдельная программа с графическим интерфейсом: например gmpc — для многих операционных систем, включая Windows XP и Mac OS
- управление через веб-клиент pitchfork, установленный на сервере
- плагин к браузеру Firefox “Music Player Minion”
прямой эфир
Прямой эфир осуществляется по схеме, схожей с первоначальной, с тем отличием, что в данном случае достаточно передать на сервер всего один поток в формате Ogg Vorbis. Дальнейшее перекодирование происходит на сервере.
Прямой эфир автоматически записывается на сервере. Также подобная возможность есть в edcast (в студии).
возникшие проблемы
- из-за недоработки в mpd серверу icecast2 не передавались теги проигрываемых файлов — для обхода проблемы используется скрипт, принудительно передающий информацию в icecast2
- изредка возникают проблемы со смещением сетки вещания — источник ошибки устанавливается (она происходит редко)
Возможно, эти проблемы будут устранены после обновления программного обеспечения.
недостатки решения
1. Как и ранее, длительность файлов должна быть очень точно подобрана, чтобы соблюдалась сетка вещания.
Проблема была решена организацией аудиоматериала: длительность файлов с передачами подгонялась под кратное число минут, музыкальные композиции группировались так, чтобы в сумме составляли также кратное число минут. В результате погрешность за сутки составляет 3-5 минут.
2. Плейлист для новой эфирной сетки нужно загружать только за один день до начала вещания. За несколько дней — нельзя.
выводы и перспективы
Решение в целом показало себя как стабильное и доступное к использованию без посторонней помощи людям с невысоким уровнем “компьютерной грамотности”.
Реальная практика эксплуатации показала, что некоторые возможности оказались ненужными:
- возможности mpd по каталогизированию аудиофайлов оказались невостребованными
- pitchfork и gmpc коллектив радиостанции использовать не стал, предпочтя им плагин к firefox
- сохранение прямого эфира на сервере не понадобилось
В настоящий момент тестируются и готовятся к вводу в строй:
- интеграция с сервисом last.fm
- отображение на сайте признака прямого вещания
Все упомянутое программное обеспечение является свободным и в большинстве случаев есть в дистрибутиве Debian GNU/Linux.
При незначительной модификации решения возможна реализация (в том числе “полного цикла”: от записи и звукомонтажа до веб-сайта и вещания) исключительно дистрибутивными средствами Debian GNU/Linux.