Как стать автором
Поиск
Написать публикацию
Обновить

Управление радиоэфиром через браузер

Время на прочтение5 мин
Количество просмотров33K
Airtime LogoВ процессе создания своей радиостанции поток идей дошел до ведения эфиров через веб-интерфейс. Сначала пытался найти готовые решения, но в рунете почти ничего не нашел. Начал продумывать способ реализации и чудом наткнулся на статью в английской версии Википедии про Airtime (до 18 января 2011 г. – Campcaster) от Sourcefabric.

Возможности Airtime:
  • Создание эфирной сетки и плейлистов через веб-интерфейс ;
  • Загрузка музыки через браузер (поддержка drag and drop);
  • Регистрация ведущих, которые имеют доступ к админке и могут управлять эфирами;
  • Создание виджетов с расписанием эфиров и треков для сторонних сайтов;
  • Возможность записывать эфиры для повторной трансляции;
  • Несколько вариантов трансляции аудиопотока.
Минимальные системные требования, описанные в официальной инструкции: 1Ghz процессор и 512Mb оперативной памяти.

Выбор параметров сервера


Первый тестовый сервер:
  • ОС: Ubuntu-10.10-x86_64;
  • CPU: 500Mhz;
  • Память: 256Mb;
  • Дисковое пространство: 5000Mb.

Нагрузка на «холостом ходу» без слушателей доходила до 90%. В обычном режиме сервер не смог бы поддерживать комфортное прослушивание радио. Да и все программные модули занимают почти 1Гб, что составляет 20% от общего дискового пространства.

Второй сервер:
  • ОС: Ubuntu-10.10-x86_64;
  • CPU: 750Mhz;
  • Память: 512Mb;
  • Дисковое пространство: 20Gb.

Этот сервер показал себя лучше. На «холостом ходу» нагрузка на процессор в среднем 25%, можно использовать в качестве сервера для небольшого количества слушателей.

Настройка сервера


Airtime со всеми необходимыми пакетами можно установить как в ручном режиме, так и автоматически. В любом случае нужно подготовиться, а именно добавить Surcefabric в список репозиториев, потому что у них есть все необходимые пакеты.
$ nano /etc/apt/sources.list

Для Ubuntu добавляем строку:
deb apt.sourcefabric.org lucid main
#или
deb apt.sourcefabric.org maverick main


Для Debian:
deb apt.sourcefabric.org squeeze main

Обновляем список репозиториев:
$ apt-get update

Устанавливаем ключ подписи:
$ apt-get install sourcefabric-keyring

Airtime для хранения плейлистов, информации о треках и пользователях использует базу данных PostgreSQL. Поэтому устанавливаем ее:
$ apt-get install postgresql

Для того чтобы пользователи могли услышать эфир нужно установить потоковый сервер. Я использую для этих целей Icecast2, так как он очень удобен для настройки и использует мало системных ресурсов.
$ apt-get install icecast2

Если трансляция планируется на аудиовыход звуковой карты, то нужно удалить аудиосервер PulseAudio, а вместо него поставить ALSA микшер.
$ apt-get purge pulseaudio

Для графического интерфейса:
$ apt-get install gnome-alsamixer

Для консоли:
$ apt-get install alsa-utils

Установка Airtime в ручном режиме

Установка всех необходимых пакетов:
$ apt-get install apache2 curl daemontools daemontools-run ecasound \
gzip libao-ocaml libapache2-mod-php5 libcamomile-ocaml-dev libesd0 \
libmad-ocaml libmp3lame0 libmp3lame-dev libportaudio2 libsamplerate0 \
libsoundtouch-ocaml libtaglib-ocaml libvorbis-ocaml-dev mpg123 multitail \
odbc-postgresql oggvideotools openssl php-pear php5-curl php5-gd \
php5-pgsql poc-streamer pwgen python python-configobj python-mutagen \
python-pip python-setuptools rabbitmq-server tar unzip


Далее устанавливаем необходимые для работы Airtima модули для Python:
$ pip install kombu
$ pip install poster


Устанавливаем phing:
$ mkdir -p /tmp/pear/cache
$ pear channel-discover pear.phing.info
$ pear install phing/phing-2.4.2


Скачиваем, распаковываем и устанавливаем Airtime:
$ wget downloads.sourceforge.net/project/Airtime/1.8.1/Airtime-1.8.1.tar.gz
$ tar -xvzf Airtime-1.8.1.tar.gz -C /var/lib/
$ chown -R root.root /var/lib/Airtime/
$ cd /var/lib/Airtime/install/
$ php Airtime-install.php


Работаем с Apache. Настраиваем необходимые модули и создаем конфигурацию виртуального хоста:
$ a2enmod php5 rewrite
$ nano /etc/apache2/sites-available/Airtime


В открытом файле прописываем:
<VirtualHost *:80>
ServerName example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/Airtime/public
SetEnv APPLICATION_ENV "development"

<Directory /var/www/Airtime/public>
DirectoryIndex index.php
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Сохраняем и перезагружаем Apache
$ /etc/init.d/apache2 reload

Настраиваем PHP под работу Airtime, для этого в файле /etc/php5/apache2/php.ini необходимо найти и изменить следующие параметры:
memory_limit = 256M
magic_quotes_gpc = Off
file_uploads = On
upload_tmp_dir = /tmp
phar.readonly = Off

Дальше нам не обходимо настроить Icecast2, для этого идем редактировать конфигурационный файл /etc/icecast2/icecast.xml. Наиболее важно прописать пароль для вещания из сторонних приложений, его нужно будет прописывать и в других конфигурационных файлах. Пароли прописываем между тегами <source-password>, <relay-password> и <admin-password>
<authentication>
        <source-password>somepassword</source-password>
        <relay-password>somepassword</relay-password>
        <!-- Доступ к админке icecast2 -->
        <admin-user>admin</admin-user>
        <admin-password>adminpassword</admin-password>
</authentication>

После этого нам надо разрешить запуск icecast2:
$ nano /etc/default/icecast2

Заменить строку ENABLE=false на ENABLE=true, сохранить и перезапустить IceCast2:
$ service icecast2 start

Далее нам нужно настроить liquidsoap, который будет направлять поток с Airtime на IceCast2:
$ nano /etc/Airtime/liquidsoap.cfg

В секции «stream settings» прописываем параметры доступа к icecast2.
# Необходимо прописать тот же пароль, что и в icecast.xml
Icecast_pass = “somepassword”
# Какой поток, будем отправлять. Можно со звуковой карты или отправлять в формате
# Ogg Vorbis и MP3. Для свого сервера я формировал поток в MP3, без использования
# звуковой карты.
output_sound_device = false
output_icecast_vorbis = false
output_icecast_mp3 = true

Перезапускаем сервер и можем начинать эфир.

Установка в автоматическом режиме

$ mkdir -p /tmp/pear/cache
$ apt-get install Airtime


Во время установки будут заданы вопросы по конфигурации Apache2 и RabbitMQ.
После установки необходимо настроить PHP, IceCast2, Liquidsoap и Airtime. Перезапускаем сервер и можем начинать эфир.

Настройка эфира через веб-панель


Идем на виртульный хост, который прописан в /etc/apache2/sites-available/Airtime (в нашем случае example.com), нас приветствует форма авторизации. С самого начала логин и пароль – «admin».


После входа выбираем в меню «CONFIGURE -> Manage Users» и меняем пароль администратора, тут же можно создать новых пользователей, с разными типами доступа.


Во вкладке «ADD MEDIA» у нас есть возможность загрузить музыку, которую мы планируем использовать на радио. Поддерживается мультизагрузка и «drag and drop».


Вкладка «PLAYLIST BUILDER» позволяет создать новые плейлисты. Это осуществляется путем перетаскивания треков из списка загруженных в плейлист.


Во вкладке «CALENDAR» мы создаем и редактируем сетку эфиров.


Как только мы настроим эфиры, добавим музыку и плейлисты, то нужная музыка будет играть четко по расписанию.
Идем на example.com:8000 и можем прослушать свое радио.

Заключение


Достоинства Airtime:
  • Простая установка;
  • Понятный графический интерфейс;
  • Гибкость настройки;
  • Возможность транслировать эфир на звуковую карту.

Недостатки:
  • Сильно нагружает систему;
  • Плохая поддержка кириллицы.

Если вы планируете транслировать свою радиостанцию для большого количества слушателей, то лучше использовать несколько серверов:
  1. Сервер средней мощности для установки на него Airtime и всех сопутствующих утилит;
  2. Мощный сервер для установки на него Icescast2, который будет ретранслировать поток с первого сервера.


Больше информации про Airtime и его настройку можно найти на сайте разработчика: www.sourcefabric.org/en/products/Airtime_overview
Теги:
Хабы:
Всего голосов 68: ↑64 и ↓4+60
Комментарии34

Публикации

Ближайшие события