International conference of developers
and users of free / open source software

Организация интернет-радиостанции с помощью свободного программного обеспечения

Дмитрий Самсонов, факультет журналистики МГУ, 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.