Icegenerator
IceGenerator является генератором потока для Icecast / Shoutcast серверов. Вещание MP3 на Icecast / Shoutcast сервер без перекодирования, экономия ресурсов CPU. Возможность поиска каталогов, в нашем варианте собран без поддержки MySQL / PGSQL, также убрана возможность чтения тегов ID3 из файлов, возможно в следующих сборках будет добавлено, поддерживается M3U/PLS, META динамические данные и Telnet сервис.
Предполагается что вы уже изучили раздел связанный с установкой системы opkg на устройство. Данная статья предполагает что вы устаналиваете данное програмное обеспечение для работы с сервером icecast
В примерах конфигурации предполагается что конфигурационный файл находится:
/media/DISK_A1/system/etc/icegenerator
Установка сводится к:
opkg install icegenerator
После чего в вашу систему должен установиться соотвествующий пакет.
На первоначальном этапе рекомендую также установить screen (скорее всего это уже сделано на этапе установки icecast):
opkg install screen
Откроем для редактирования файл:
/media/DISK_A1/system/etc/icegenerator.conf
В начале файлы можно обнаружить секции конфигурации с »#» в начале, это обозначает комментарии. Обязательно замените их на свои, не стоит оставлять пароли по умолчанию.
Пример файла конфигурации для того чтобы icegenerator вещал локально расположеную музыку на вашем жёстком диске подключенном к устройству:
# IP адрес сервера IP=127.0.0.1 # Порт сервера PORT=8000 # Тип сервера # 2 - для Icecast 2.X SERVER=2 # Точка монтирования потока на сервере MOUNT=/mymusic # Для Icecast всегда source SOURCE=source # Пароль на сервер [[wiki:icecast|]] он указан в его конфигурации в разделе relay-password PASSWORD=password # Формат файлов которые будут проигрываться # 0 - Ogg Vorbis # 1 - MP3 FORMAT=1 #Путь к файлам котрые будут проигрываться MP3PATH=pth:/media/DISK_A1/files/music #Проигрывать рекурсивно, то есть прочитывать вложенные директории RECURSIVE=1 # Тут можно указать файл в который будет записываться поток DUMPFILE= # Проигрывать по кругу LOOP=1 # Проигрывать случайным образом SHUFFLE=1 # Имя радиостанции NAME=My Local Music Collection # Жанр станции GENRE=Other # Описание станции DESCRIPTION=All my music # Адрес станции URL=http://ip:8000/mymusic.m3u #Битрейт потока BITRATE=128 # Поток публичный PUBLIC=1 #Как часто обновлять информацию о потоке METAUPDATE=0 # Настройка логирования # 0 - не вести логи # 1 - Передавать на syslogd # 2 - Писать в файл самостоятельно LOG=2 # Путь к лог файлу LOGPATH=/media/DISK_A1/system/var/log/icegenerator.log #Телнет интерфейс DATAPORT=8796
Перед запуском:
Предполагается, что данное ПО запускается совместно с icecast расположенным на томже устройстве.
Если вам хочется чтобы эту радиостанцию также могли прослушивать пользователи из сети интернет, то вам необходимо:
На вашем устройстве должен быть белый и желательно постоянный ip адрес, он приобретается у вашего провайдера интернет.
В папке:
/media/DISK_A1/system/etc/firewall.d
Создаём скрипт firewall.sh с содержимым:
#!/bin/sh iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
Делаем его исполняемым спомощью команд:
chmod +x путь_и_имя_скрипта.sh
После этого при перезапуске устройства, эти правила будут автоматически применяться. Первое правило разрешает общаться между собой нашему генератору потока и соотвественно серверу который будет раздавать этот поток, а второе правило разрешает соединения к серверу отовсюду.
Запуск:
Если запускается в паре с сервером вещания на этомже устройстве, то можно обойтись командами: screen -rU - присоединение к шеллу с icecast если он был ранее запущен. ctrl+a+c - создаём ещё одно окно. icegenerator -f /media/DISK_A1/system/etc/icegenerator/icegenerator.conf
Или если ваш стример расположен где-то в другом месте, можно создать отдельно:
screen -dmS icegenerator -U icegenerator -f /media/DISK_A1/system/etc/icegenerator/icegenerator.xml
Нюансы:
В текущей сборке не читает теги mp3.
При большом количестве файлов в директории может выдавать Segmentation fault.