Я использую серверную среду Ubuntu с icecast-2.3.2 и ices-0.4.0, чтобы включить потоковое интернет-радио.
У меня есть каталог с музыкальными файлами, в основном MP3, назовем его /PATH/TO/MUSIC
. У меня также есть каталоги с джинглами и подкастами. /PATH/TO/JINGLES
и /PATH/TO/PODCASTS
.
Пока мой сервер запущен и работает.
Что работает:
Мой вопрос сейчас:
Я пытался искать в Интернете по этой теме, но, похоже, не существует «одного окончательного решения» для этой проблемы радиоавтоматики, и также кажется, что многие довольно хакерские, не так ли?
Имейте в виду, что это серверная среда, решения с графическим интерфейсом не помогут.
Я ценю любые подсказки и опыт по этой теме!
Ответ: жидкое мыло.
liquidsoap , швейцарский армейский нож для потоковой передачи мультимедиа, особенно используемый для сетевых радиопередач и веб-трансляций. У него множество функций, он бесплатный и с открытым исходным кодом!
blockquote>Мне понадобилось несколько дней, чтобы понять, как генерируются потоки. liquidsoap состоит из небольших скриптов, которые описывают параметры потока. простой скрипт, который загружает и воспроизводит mp3-плейлист, назовем его
basic.liq
, показан ниже:#!/usr/bin/liquidsoap # load a playlist file stream = playlist("/path/to/playlist.pls") # output the playlist to icecast source = output.icecast(%mp3, host="localhost", port="8000", mount="listen.m3u", password="hackme") source(stream)
протестируйте скрипт с помощью:
$ liquidsoap --check ./basic.liq
и запустите скрипт с:
$ liquidsoap ./basic.liq &
, но жидкое мыло намного мощнее. например, чтобы играть джингл каждый полный час, просто добавьте:
# add a jingle every full hour jingle = single("/path/to/jingle.mp3") add([stream,switch([({0m0s},jingle)])])
, но гораздо больше функций описано на домашней странице:
blockquote>
- статические или динамические списки воспроизведения
- Выбор источника звука на основе времени
- Вставки на основе квоты или времени или миксы джинглов
- Выступления живого диджея
- Интерактивные запросы пользователей [ 1113]
- полностью настраиваемые переходы, например кроссфейдинг
- речевой синтез метаданных трека
- простой доступ к удаленным файлам
- и многое другое
Стоит взять посмотрите руководство по быстрому старту , более сложный пример и документацию .
Источник: https://github.com/AzuraCast/AzuraCast
Azuracast - это автономный веб-сайт комплект радиоуправления, включающий в себя инструменты установки под ключ и простое в использовании веб-приложение для управления станциями. http://azuracast.com/
С помощью AzuraCast вы можете:
AzuraCast использует LiquidSoap в качестве «AutoDJ» для перестановки песен и плейлистов и обеспечения постоянного онлайн-трансляции. Вы также можете подключиться к LiquidSoap и транслировать свои собственные концерты в качестве диджея.
Чтобы транслировать вашу радиостанцию на публику, AzuraCast поддерживает оба золотых стандарта в веб-радио - IceCast (v2.4) и ShoutCast (v2). Вы можете в любое время изменить, какой из них использует ваша станция.
Вы также можете использовать AzuraCast в качестве инструмента для ретрансляции или сбора статистики прослушивателей и других данных о станциях, которыми AzuraCast не управляет.
Существует два способа установки AzuraCast:
Использование Docker и Docker Compose (рекомендуется): этот метод содержит все зависимости AzuraCast в готовые изображения контейнера. Обновление и установка выполняются быстрее, и проблем с совместимостью программного обеспечения гораздо меньше. Этот метод работает на любом компьютере, который поддерживает последнюю версию Docker Engine и Docker Compose; оба могут быть установлены как часть сценария установки AzuraCast.
Традиционная установка (только Ubuntu 16.04): из чистого образа Ubuntu вы можете установить AzuraCast непосредственно на свой сервер, используя прилагаемые сценарии установки, которые используют Ansible для управления зависимостями. При использовании этого метода установка и обновление выполняются медленнее, но у вас больше контроля над программным обеспечением после установки. Если на вашем сервере установлено другое программное обеспечение, оно может конфликтовать с AzuraCast, поэтому всегда начинайте с чистой установки, используя этот метод.
Мы всегда стремимся расширить нашу совместимость с хост-операционными системами, и мы приветствуем любую помощь в создании новых сценариев развертывания для других сред.
Используете ли вы традиционный установщик или контейнеры Docker, AzuraCast зависит от того же стека программного обеспечения для работы:
Настоятельно рекомендуем установить и использовать AzuraCast через Docker. Все необходимые программные пакеты создаются нашими автоматизированными инструментами, поэтому установка осуществляется так же просто, как и извлечение предварительно скомпилированных образов. Не нужно беспокоиться о совместимости с операционной системой вашего хоста, поэтому любой хост (включая Windows и MacOS) будет отлично работать "из коробки".
Установите Docker и Docker Compose На вашем компьютере или сервере должна быть установлена новейшая версия Docker и Docker Compose. Вы можете использовать простые сценарии ниже для установки обоих, если вы начинаете с нуля:
wget -qO- https://get.docker.com/ | sh
COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | tail -n 1`
sudo sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
sudo chmod +x /usr/local/bin/docker-compose
sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
Если вы не устанавливаете от имени пользователя root, вам могут быть даны инструкции по добавлению текущего пользователя в группу Docker. (т.е. usermod -aG docker $user
). Вы должны выйти из системы или перезагрузиться после этого, прежде чем продолжить.
Извлечение составного файла AzuraCast Docker
Выберите, где на главном компьютере вы хотите, чтобы файл конфигурации AzuraCast существовал на вашем сервере.
Внутри этого каталога выполните эту команду, чтобы получить файл конфигурации Docker Compose.
curl -L https://raw.githubusercontent.com/AzuraCast/AzuraCast/master/docker-compose.yml > docker-compose.yml
Запустите установщик AzuraCast Docker
Из каталога, в котором находится файл конфигурации YML, выполните следующие команды:
docker-compose pull
docker-compose run --rm cli azuracast_install
docker-compose up -d
Настройка HTTPS с помощью LetsEncrypt
AzuraCast теперь поддерживает полное шифрование с LetsEncrypt. LetsEncrypt предлагает бесплатные SSL-сертификаты с простой проверкой и обновлением.
Сначала убедитесь, что ваш экземпляр AzuraCast настроен и обслуживается из домена, который вы хотите использовать. Затем выполните следующую команду для создания нового сертификата LetsEncrypt:
docker-compose run --rm letsencrypt certonly --webroot -w /var/www/letsencrypt
Вам будет предложено указать адрес электронной почты и имя домена. Проверка будет происходить автоматически. После завершения выполните эту команду, чтобы указать nginx использовать новый сертификат LetsEncrypt:
docker-compose run --rm nginx letsencrypt_connect YOURDOMAIN.example.com
Перезагрузите nginx с помощью следующей команды:
docker-compose kill -s SIGHUP nginx
Ваш сертификат LetsEncrypt действителен в течение 3 месяцев. Чтобы обновить сертификаты, выполните следующую команду:
docker-compose run --rm letsencrypt renew --webroot -w /var/www/letsencrypt
Обновление с помощью Docker
В базовом каталоге, куда копируется AzuraCast, выполните следующие команды:
docker-compose down
docker-compose pull
docker-compose run --rm cli azuracast_update
docker-compose up -d
Резервное копирование и восстановление томов Docker
В AzuraCast есть служебные сценарии, позволяющие легко выполнять резервное копирование и восстановление томов Docker.
Вы можете использовать docker-backup.sh для резервного копирования существующих томов. Вы можете указать собственный путь в качестве аргумента скрипта. По умолчанию скрипт создает файл backup.tar.gz в корне приложения.
Чтобы восстановить состояние приложения из этого сжатого файла, используйте docker-restore.sh и укажите путь к существующему файлу резервной копии.
Обратите внимание, что процесс восстановления заменит любую существующую базу данных AzuraCast или носитель, который существует внутри томов Docker.
Примечание: Некоторые веб-хосты предлагают собственные версии Ubuntu, которые включают в себя различные репозитории программного обеспечения. Это может вызвать проблемы совместимости с AzuraCast. Известно, что многие провайдеры VPS работают из коробки с AzuraCast (OVH, DigitalOcean, Vultr и т. Д.), И поэтому настоятельно рекомендуется, если вы планируете использовать традиционный установщик.
AzuraCast оптимизирован для скорости и производительности и может работать на очень недорогом оборудовании, от Raspberry Pi 3 до VPS самого низкого уровня, предлагаемых большинством поставщиков.
Поскольку AzuraCast устанавливает свои собственные инструменты радио, базы данных и веб-серверы, вы всегда должны устанавливать AzuraCast на «чистый» экземпляр сервера, на котором ранее не было установлено никакого другого веб- или радио-программного обеспечения.
Выполните эти команды как пользователь root для настройки вашего сервера AzuraCast:
apt-get update
apt-get install -q -y git
mkdir -p /var/azuracast/www
cd /var/azuracast/www
git clone https://github.com/AzuraCast/AzuraCast.git .
chmod a+x install.sh
./install.sh
Если вы не можете войти в систему под учетной записью root на своем сервере, попробуйте запустить sudo su перед выполнением указанных выше команд.
Процесс установки займет от 5 до 15 минут, в зависимости от вашего интернет-соединения.
После завершения установки на основе терминала вы можете посетить публичный IP-адрес вашего сервера ( http: //ip.of.your.server/ ), чтобы завершить настройку через Интернет. .
Обновление
AzuraCast также включает в себя удобный скрипт обновления, который загружает последнюю копию кодовой базы из Git, очищает кэши сайта и делает все необходимые обновления базы данных. Запустите эти команды от имени любого пользователя с разрешениями sudo:
cd /var/azuracast/www
sudo chmod a+x update.sh
sudo ./update.sh