====== Интернет-радио ====== В Yggdrasil очень легко и быстро можно создать собственное радио из локальной коллекции, не имея выделенного IP адреса. Есть много инструкций по конфигурации эфирного времени, включая различные скрипты автоматизации плей-листов и взаимодействие с участниками стримов по расписанию.\\ Ниже рассмотрен базовый пример организации сервера на Yggdrasil / IPv6, возможно в процессе материал будет дополнен. ===== Icecast ===== [[https://icecast.org/|Icecast]] - популярный сервер потокового мультимедиа, с поддержкой потоков Ogg (Vorbis и Theora), Opus, WebM и MP3. Поддерживает открытые стандарты общения и взаимодействия, распространяется под лицензией GNU GPL версии 2. Простыми словами, он выполняет ту же функцию, что nginx для веб-сайтов, но ориентирован на работу с потоковым контентом. Установка доступна из репозиториев: apt install icecast2 Стартуем сервис, чтобы создать базовую конфигурацию systemctl start icecast2 Пример конфигурационного файла: Yggdrasil icemaster@localhost 100 2 524288 30 15 10 1 65535 пароль пароль admin [xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx] 8000 ::
1 /usr/share/icecast2 /var/log/icecast2 /usr/share/icecast2/web /usr/share/icecast2/admin access.log error.log 3 10000 0 nobody nogroup Добавляем в автозагрузку и перезапустим сервис: systemctl enable icecast2 systemctl restart icecast2 Разрешаем подключения только Yggdrasil: ufw allow from 0200::/7 to any port 8000 ===== Ezstream ===== [[https://icecast.org/ezstream/|Ezstream]] — это клиент командной строки для медиапотоков, в первую очередь для передачи на серверы Icecast. Используется непосредственно для работы с файлами, предварительно обеспечивая их формат. В отличии от популярного Ices2, из коробки работает с ogg, mp3 а также видео форматами. Установка: apt install ezstream Ezstream запускается отдельными потоками для каждой позиции stream, для этого удобно создать отдельного пользователя: useradd -m radio Файловую структуру можно организовать следующим образом: mkdir /home/radio/collection - библиотека файлов для стрима mkdir /home/radio/ezstream - файлы конфигурации ezstream mkdir /home/radio/playlist - файлы плейлистов Базовые варианты конфигурации ezstream расположены в директории: ls /usr/share/doc/ezstream/examples/ Для начала, можно скопировать минимальный набор: cp /usr/share/doc/ezstream/examples/ezstream-minimal.xml /home/radio/ezstream/gta/vice-city.xml Работающий пример конфигурации для [[http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggwave/radio/gta/vice-city|радио GTA Vice City]]: YGGwave 127.0.0.1 пароль к серверу Icecast YGGwave GTA Vice City /gta/vice-city MP3 Yes No No YGGwave - GTA Vice City http://[201:23b4:991a:634d:8359:4521:5576:15b7]:8000/gta/vice-city OST GTA Vice City Radio Stations GTA Vice City /home/radio/playlist/gta/vice-city.txt GTA - Vice City Radio GTA Vice City -1 Yes No Копируем нужные медиа файлы в директорию /home/radio/collection Плейлисты для директории можно сделать простой командой: find /home/radio/collection -name *.mp3 > /home/radio/playlist/gta/vice-city.txt Не забываем дать права пользователю: chmod -R radio:radio /home/radio В завершение, создадим для каждого стрима настройки systemd [Unit] Description=ezstream-gta-vice-city After=network.target [Service] Type=simple User=radio ExecStart=/usr/bin/ezstream -c /home/radio/ezstream/gta/vice-city.xml StandardOutput=file:/home/radio/ezstream-gta-vice-city-debug.log StandardError=file:/home/radio/ezstream-gta-vice-city-error.log Restart=on-failure [Install] WantedBy=multi-user.target и добавим в автозапуск: systemctl enable ezstream-gta-vice-city systemctl start ezstream-gta-vice-city ===== Nginx ===== Если есть желание стримить на 80 порту, но он занят nginx, можно сделать проксирование: location /yggwave/radio/gta/vice-city { proxy_pass http://localhost:8000/gta/vice-city; } ===== Ссылки ===== * [[https://icecast.org/|Icecast]] - сервер для организации мультимедиа потоков * [[https://icecast.org/ices/|Ices]] - клиент для Icecast * [[https://icecast.org/ezstream/|Ezstream]] - альтернатива Ices с поддержкой дополнительных форматов * [[http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggwave/|YGGwave]] ([[http://wave.ygg|wave.ygg]]) - каталог радио станций для Yggdrasil ~~DISCUSSION~~