Использование Icecast или настройка сервера для радиовещания
В двух словах, программное обеспечение Icecast позволяет создать сервер радио и видео вещания. В данной статье мы разберем процесс установки и настройки данного ПО на системах Linux. Установку и принцип настройки также рассмотрим для Windows.
Установка
Рассмотрим установку под системы Windows, Ubuntu/Debian, CentOS/Red Hat.
Windows
Переходим на страницу загрузки Icecast и скачиваем программу для Windows:
Запускаем скачанный файл — принимаем лицензионное соглашение — кликаем несколько раз Next и Install. Когда завершится установка, кликаем по Close.
Linux CentOS 7
Устанавливаем расширенный репозиторий epel:
yum install epel-release
yum install icecast
Linux Ubuntu
Установка выполняется из базового репозитория:
apt-get install icecast2
Принцип настройки
Все настройки вносятся в конфигурационный файл формата XML.
В Windows он расположен по пути %ProgramFiles(x86)%\Icecast\icecast.xml. Открыть его можно любым текстовым редактором.
В CentOS 7 конфигурационный файл открываем командой:
Сами настройки в данном файле одинаковые для любой операционной системы. Все что включено в является комментарием и не учитывается программой.
После внесения настроек, службу icecast необходимо перезапускать.
Тестовый запуск
Настройка брандмауэра
Перед запуском сервера, необходимо убедиться в правильных настройках фаервола (необходимо открыть порт 8000).
Firewalld (CentOS 7):
firewall-cmd —permanent —add-port=8000/tcp
Iptables (Ubuntu):
iptables -I INPUT 1 -p tcp —dport 8000 -j ACCEPT
Первичная настройка
Приводим следующую настройку к такому виду:
* при такой настройке мы указываем, на каком сетевом интерфейсе будем слушать запросы (в данном случае, на 192.168.0.15).
Selinux
Если в системе линукс используется система безопасности Selinux, либо отключаем ее, либо настраиваем.
Запуск
В CentOS 7 разрешаем сервис и запускаем его следующими командами:
systemctl enable icecast
systemctl start icecast
В Ubuntu:
systemctl enable icecast2
systemctl start icecast2
Открываем браузер и переходим по пути http://192.168.0.15:8000/
* где 192.168.0.15 — IP-адрес нашего сервера, который мы прописали в bind-address конфига.
Мы должны увидеть следующее:
Настройка редиректа радиостанции
Самый простой способ проверить работу сервера радио — настроить перенаправление другой радиостанции.
Находим подходящий ресурс, например, hd.lagrosseradio.info. Изучаем документацию по настройке ретрансляции.
И дописываем в наш конфигурационный файл, примерно, следующее:
/lagrosseradio-metal-024.mp3
/metal
0
* перенаправлений может быть несколько. В данном примере на ресурсы ice4.lagrosseradio.info и shoutcast.aichyna.com.
* server — имя сервера, с которого берется поток; port — сетевой порт, на котором удаленный сервер отдает поток; mount — точка мониторования на стороне удаленного сервера, с которого берем поток; local-mount — точка монтирования, которая будет использоваться нашим сервером для обращения к настраиваемому потоку; on-demand — если стоит 0, сервер всегда берет поток и проигрывает его, если 1 — только при наличие активных обращений.
systemctl restart icecast || systemctl restart icecast2
Опять открываем нашу страницу http://192.168.0.15:8000/ — на странице должен появиться список с потоками:
Теперь пробуем в браузере открыть страницы с настроенными точками монтирования (local-mount) — http://192.168.0.15:8000/metal и /http://192.168.0.15:8000/aplus. Мы должны увидеть проигрыватель с кнопкой Play.
Свои плейлисты (Ices)
Создать свой список музыкальных композиций и передать его серверу Icecast можно с помощью Ices. Для начала, выполним его установку.
Установка клиента
CentOS 7.
Установка выполняется путем сборки пакета из исходника. Для начала скачиваем его — для этого переходим на страницу icecast.org/ices и копируем ссылку на Ices0 (ices2 не умеет работать с mp3, что требует их конвертацию и это не очень удобно):
Используя ссылку, скачиваем исходник:
* если получим ошибку «wget: команда не найдена», ставим wget командой yum install wget.
Распаковываем архив и заходим в каталог:
Устанавливаем пакеты, нужные для сборки:
yum install gcc libxml2-devel libshout-devel gcc-c++
Запускаем конфигурирование, сборку и установку:
Ubuntu
Установка в убунте выполняется одной командой:
apt-get install ices
Настройка Icecast
Открываем конфигурационный файл и проверяем лимит на количество создаваемых ресурсов:
* если лимит на sources будет превышен предыдущими плейлистами или редиректами, мы получим ошибку при запуске ices, например: Error during send: Mount failed on http://192.168.0.15:8000/music, error: Login failed.
Меняем пароль на управление ресурсами:
* newpassword — собственно, сам пароль.
Закрываем редактор и перезапускаем icecast:
systemctl restart icecast || systemctl restart icecast2
Настройка Ices и запуск плейлиста
Создаем каталог конфигурационного файла и сам файл:
/etc/ices/playlist.rock.txt
1
builtin
ices
/rock
ices.dump
Default stream
Default genre
Default description
http://192.168.0.15:8000
* где, как правило, редактируется следующее:
- File — путь до файла со списком аудиофайлов.
- Randomize — воспроизведение в случайном порядке.
- Verbose — отладка. Следует поменять на 1, если программа работает не корректно.
- BaseDirectory — рабочий каталог программы. В нем будут храниться pid и log файлы.
- Hostname — адрес нашего сервера icecast.
- Port — порт, на котором слушает сервер icecast.
- Password — пароль для ресурса, который был выставлен в конфигурационном файле icecast.
- Mountpoint — точка монтирования на сервере для плейлиста.
- URL — путь URL до плейлиста.
Создадим список аудиофайлов:
ls /music/rock/ > /etc/ices/playlist.rock.txt
* данной командой мы прочитаем содержимое каталога /music/rock и сделаем из его содержимого плейлист для ices.
* по сути, файл playlist.rock.txt должен включать перечень всех аудиофайлов с полным путем до них. Каждый файл с новой строчки.
ices -c /etc/ices/ices.xml
* где /etc/ices/ices.xml — путь до конфигурационного файла.
Автозапуск ices
В теории, можно добавить команду /usr/local/bin/ices -c /etc/ices/ices.xml в /etc/rc.local. Но профессиональнее создать сервис на базе systemd.
Создаем файл сервиса:
[Unit]Description=Ices Service
After=network.target
Requires=icecast.service [Service]
Type=forking
PIDFile=/etc/ices/ices.pid
ExecStart=-/usr/local/bin/ices -c /etc/ices/ices.xml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
Разрешаем созданный сервис:
systemctl enable ices
Запускаем его и проверяем:
systemctl start ices
systemctl status ices
Автоматическое переключение каналов
Идея заключается в создании общего канала (mount) с переключением на резервный (в случаях, когда общий ничего не вещает). Это применяется для создания канала диджея — когда он подключен, в эфир идет его трансляция, когда отключен — музыка из плейлиста или перенаправленная с другой радиостанции. Также, это можно применять для оповещений или вставки рекламных роликов.
В данном примере разберем создание канала, который будет получать аудиоконтент из ices, а при отключении данной трансляции, будет играть музыка из другого источника.
В конфиг icecast добавляем:
* на самом деле, данный relay мы уже добавляли выше; live — имя основного канала; aplus в секции fallback-mount — имя канала, на который нужно перенаправить слушателя, если основной канал не задействован; секция fallback-override определяет, нужно ли автоматически возвращать слушателей на основной канал, если он опять станет активным.
systemctl restart icecast || systemctl restart icecast2
Можно уже подключаться в эфиру (в нашем примере по адресу http://192.168.160.163:8000/live) — мы должны услышать музыку, которая транслируется на shoutcast.aichyna.com.
Создаем конфигурационный файл для ices (или правим уже созданный):
powered by leo blog …
По сути тот How-To, который я сделал можно считать баяном, так как это делали раньше и инструкций было завалом, но в инете я не нашел таких инструкций, по которым можно сразу сделать всё в три-четыре шага… И тут мне написали с очередным вопросом – могу ли я помочь в создании «очередного» интернет радио.
Инструкция описывает процесс создание интернет-радио на ОС Windows 2000, XP, Vista, Seven (7).
Для начала, если вы хотите вещать именно в интернет – то у вас должен быть реальный IP адрес (то есть должен быть виден из интернета. )
Шаг 1. Ставим SHOUTcast Server.
Соглашаемся и жмём далее …
Обязательно выбираем GUI версию, а остальное по желанию …
Указываем путь установки (по умолчанию он будет таков, как на картинке) …
Установка завершена !
Это окно у вас не задержится и более 5-10 секунд, после чего оно закроется, откроется readme.txt и в меню «Пуск» появится папка «Programs» где и будет сам «SHOUTcast DNAS (GUI)», но прежде чем запускать его – настроим конфигурацию для его работы.
Файл конфигурации находится в папке «C:\Program Files\SHOUTcast» а называется он «sc_serv.ini». Открываем его блокнотом и используя полное описание всех параметров, настраиваем по своему вкусу.
Полное описание параметров:
Несколько комментариев – основные параметры это MaxUser, Password, PortBase и PublicServer. Остальное можно оставить по умолчанию.
Шаг 2. Ставим Winamp.
Winamp – это плеер, с которого будет транслироваться вся музыка в интернет. Последнюю русскую версию всегда можно найти на сайте производителя, ну например по этому адресу http://www.winamp.com/media-player/ru. Особого внимания я акцентировать на его установке не буду – там и так всё предельно ясно и просто. Перейдём к третьему шагу!
Шаг 3. Устанавливаем SHOUTcast DSP Plug-In.
Это и есть тот плагин, который ретранслирует поток на сервер. Существует немало его аналогов, которые работают как самостоятельные плеера и dj-студии, но особого внимания я на них акцентировать не стану. Скачать последнюю версию как обычно можно на сайте производителя — www.shoutcast.com. Прямая ссылка, для тех, кто в танке — http://yp.shoutcast.com/downloads/shoutcast-dsp-1-9-0-windows.exe.
Начнём процесс установки:
Согласимся с соглашением …
Здесь можно оставить всё по дефолту или снять галочку с тулбара …
Укажем, где обитает сам winamp …
Увидев данный вопрос можно отпраздновать установку плагина, и заодно отказаться от прочтения readme файла и приступить к настройке.
Настраиваем:
Запускаем WinAmp плеер и выбираем «Сервис=>Параметры», там выбираем
1) «DSP (Эффекты)»
2) «Nullsoft SHOUTcast Source DSP v1.9.1 [dsp_sc.dll]»
3) Откроется окно плагина «SHOUTcast Source»
Далее закрываем «Параметры проигрывателя…» и приступим к настройке.
На этом рисунке мы видим окно статуса вещания. Данный плагин способен на вещание в 5 потоков, тоесть грубо говоря он может подключиться к пяти серверам, ретранслирующим поток. Но мы будем настраивать 1, остальное – на свой вкус.
Вкладка «Output» — там есть поле «Output», где можно выбрать интересующий нас канал, «Status» — где можно увидеть байты переданной информации, галочку «Connect at Startup» — подключаться автоматически ну и сама кнопка «Connect» — которая говорит сама за себя. Далее мы видим нажатую кнопку «Connection» где мы можем настроить «Address» — адрес сервера к которому мы подключаемся (в нашем случае оставим как и есть, так как сервер стоит на нашей же машине), «Port» — порт, к которому нужно подключиться, пароль доступа к серверу (это то что вы прописали в параметрах сервера в строчке «Password») и выбираем нужный кодировщик звука «Encoder». Ниже есть галочка «Automatic Reconnection on Connection Failure», которая в случае обрыва подключения будет снова подключать к серверу и поле «Reconnection timeout» — там указываем секунды таймаута.
«Yellowpages» — Там мы указываем основную информацию о нашем радио. С картинки я думаю всё понятно, поэтому расписывать все пункты не стану.
Вкладка «Encoder» — тут мы настраиваем кодировщик звука. В «Encoder Type» мы выбираем из трёх кодировщиков наиболее подходящий, а именно Mp3.
«Encoder Settings» — тут мы выбираем то качество вещания, на которое способен наш интернет канал. Самое оптимальное, это «128/44100/Stereo».
Вкладка «Input» — Тут мы выбираем, откуда будет идти музыка на сервер, из Winamp-а или со звуковой карты.
Ну, теперь можно запустить сервер, плеер и начать вещать в интернет свою музыку, мы ведь так долго шли до этого. Расписал я, конечно, не всё, так как в силу нынешнего ноутбука более возможностей я показать не смогу. Но в случае, если у вас будут какие либо вопросы – пишите, не стесняйтесь.