Как запустить автоматизированную интернет-радиостанцию ​​в серверной среде?

Я использую серверную среду Ubuntu с icecast-2.3.2 и ices-0.4.0, чтобы включить потоковое интернет-радио.

У меня есть каталог с музыкальными файлами, в основном MP3, назовем его /PATH/TO/MUSIC. У меня также есть каталоги с джинглами и подкастами. /PATH/TO/JINGLES и /PATH/TO/PODCASTS.

Пока мой сервер запущен и работает.

Что работает:

  • Создание ежедневных случайных списков воспроизведения из каталога музыки с использованием скрипта и задания cron.
  • Запуск IceCast2-Server и потоковая передача файла списка воспроизведения с использованием IceS.

Мой вопрос сейчас:

  • Как воспроизводить подкасты и джинглы в определенное время? Например, каждый полный час определенного звонка или каждый четверг в 8 часов вечера. определенный подкаст?

Я пытался искать в Интернете по этой теме, но, похоже, не существует «одного окончательного решения» для этой проблемы радиоавтоматики, и также кажется, что многие довольно хакерские, не так ли?

Имейте в виду, что это серверная среда, решения с графическим интерфейсом не помогут.

Я ценю любые подсказки и опыт по этой теме!

5
задан 21 December 2012 в 15:35

2 ответа

Ответ: жидкое мыло.

liquidsoap , швейцарский армейский нож для потоковой передачи мультимедиа, особенно используемый для сетевых радиопередач и веб-трансляций. У него множество функций, он бесплатный и с открытым исходным кодом!

Мне понадобилось несколько дней, чтобы понять, как генерируются потоки. 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)])])

, но гораздо больше функций описано на домашней странице:

  • статические или динамические списки воспроизведения
  • Выбор источника звука на основе времени
  • Вставки на основе квоты или времени или миксы джинглов
  • Выступления живого диджея
  • Интерактивные запросы пользователей [ 1113]
  • полностью настраиваемые переходы, например кроссфейдинг
  • речевой синтез метаданных трека
  • простой доступ к удаленным файлам
  • и многое другое

Стоит взять посмотрите руководство по быстрому старту , более сложный пример и документацию .

0
ответ дан 21 December 2012 в 15:35

AzuraCast: автономный менеджер веб-радио

Источник: https://github.com/AzuraCast/AzuraCast

Azuracast - это автономный веб-сайт комплект радиоуправления, включающий в себя инструменты установки под ключ и простое в использовании веб-приложение для управления станциями. http://azuracast.com/

Функции

С помощью AzuraCast вы можете:

  • Управление мультимедиа: загрузка песен из Интернета, организация музыки в папки и предварительный просмотр песен в вашем браузере.
  • Создание списков воспроизведения: настройка стандартных списков воспроизведения, которые воспроизводятся постоянно, запланированных списков воспроизведения для периодов времени или специальных списков воспроизведения, которые воспроизводятся один раз за x песен или один раз за x минут.
  • Настройка живых диджеев: включите или отключите прямую трансляцию от стримеров / диджеев и создайте индивидуальные учетные записи для использования каждым стримером.
  • Принимать запросы слушателей: пусть ваши слушатели запрашивают определенные песни из ваших плейлистов, как через API, так и через простую общедоступную страницу слушателя.
  • Аналитика и отчеты: отслеживайте каждый аспект слушателей вашей станции с течением времени. Просмотр отчетов о исполнении каждой песни.
  • Station Autopilot: AzuraCast может автоматически назначать песни в список воспроизведения на основе влияния песни на номера слушателей.
  • Управление делегатами: создание и удаление отдельных учетных записей администраторов для каждого менеджера станции.
  • ... и многое другое.

Поддерживаемое программное обеспечение для веб-радио

  • AzuraCast использует LiquidSoap в качестве «AutoDJ» для перестановки песен и плейлистов и обеспечения постоянного онлайн-трансляции. Вы также можете подключиться к LiquidSoap и транслировать свои собственные концерты в качестве диджея.

  • Чтобы транслировать вашу радиостанцию ​​на публику, AzuraCast поддерживает оба золотых стандарта в веб-радио - IceCast (v2.4) и ShoutCast (v2). Вы можете в любое время изменить, какой из них использует ваша станция.

Вы также можете использовать AzuraCast в качестве инструмента для ретрансляции или сбора статистики прослушивателей и других данных о станциях, которыми AzuraCast не управляет.

Поддерживаемые операционные системы

Существует два способа установки AzuraCast:

  1. Использование Docker и Docker Compose (рекомендуется): этот метод содержит все зависимости AzuraCast в готовые изображения контейнера. Обновление и установка выполняются быстрее, и проблем с совместимостью программного обеспечения гораздо меньше. Этот метод работает на любом компьютере, который поддерживает последнюю версию Docker Engine и Docker Compose; оба могут быть установлены как часть сценария установки AzuraCast.

  2. Традиционная установка (только Ubuntu 16.04): из чистого образа Ubuntu вы можете установить AzuraCast непосредственно на свой сервер, используя прилагаемые сценарии установки, которые используют Ansible для управления зависимостями. При использовании этого метода установка и обновление выполняются медленнее, но у вас больше контроля над программным обеспечением после установки. Если на вашем сервере установлено другое программное обеспечение, оно может конфликтовать с AzuraCast, поэтому всегда начинайте с чистой установки, используя этот метод.

Мы всегда стремимся расширить нашу совместимость с хост-операционными системами, и мы приветствуем любую помощь в создании новых сценариев развертывания для других сред.

Что входит в состав AzuraCast

Используете ли вы традиционный установщик или контейнеры Docker, AzuraCast зависит от того же стека программного обеспечения для работы:

  • NGINX для обслуживания веб-страниц и радио-прокси
  • MariaDB в качестве основной базы данных
  • PHP 7.2 для поддержки веб-приложения
  • InfluxDB для статистики на основе временных рядов
  • Redis для сессий, база данных и общее кэширование
  • LiquidSoap как постоянно воспроизводимый «AutoDJ»
  • IceCast 2 как интерфейс радиовещания (Icecast-KH установлен на поддерживаемых платформах)
  • ShoutCast 2 DNAS в качестве альтернативного внешнего интерфейса (только для x86 / x64) Установка AzuraCast

Установка AzuraCast

Установка Docker (рекомендуется)

Настоятельно рекомендуем установить и использовать AzuraCast через Docker. Все необходимые программные пакеты создаются нашими автоматизированными инструментами, поэтому установка осуществляется так же просто, как и извлечение предварительно скомпилированных образов. Не нужно беспокоиться о совместимости с операционной системой вашего хоста, поэтому любой хост (включая Windows и MacOS) будет отлично работать "из коробки".

  1. Установите 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). Вы должны выйти из системы или перезагрузиться после этого, прежде чем продолжить.

  2. Извлечение составного файла AzuraCast Docker

    Выберите, где на главном компьютере вы хотите, чтобы файл конфигурации AzuraCast существовал на вашем сервере.

    Внутри этого каталога выполните эту команду, чтобы получить файл конфигурации Docker Compose.

    curl -L https://raw.githubusercontent.com/AzuraCast/AzuraCast/master/docker-compose.yml > docker-compose.yml
    
  3. Запустите установщик 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 16.04)

Примечание: Некоторые веб-хосты предлагают собственные версии 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
0
ответ дан 21 December 2012 в 15:35

Другие вопросы по тегам:

Похожие вопросы: