Создание потокового вещания (ака web-радио, интернет-радио, стрим) в CentOs 7 посредством IceCast и Ezstream. Ezstream.
Ezstream - это то, что проигрывает,

в смысле, это - проигрыватель, а IceCast - это транслятор проигрывателя:

Настроим проигрыватель. Используем инструкции всё того же товарища (Андрея Бондаренко) из его неработающего/работающего (нужное подчеркнуть) блога:
sudo yum install ezstream


Далее немного меняем парадигму установки. Большинство инструкций предлагают функционирование Ezstream из директорий в корне операционной системы из-под пользователя root, а хотелось бы, чтобы всё проистекало из домашней директории пользователя. Ценность руководства Андрея Бондаренко - простое, наглядное и рабочее описание создания службы в CentOs, но и у него Ezstream работает из-под root. Изменим сие положение дел. Ранее мы уже настроили доступ по ftp в домашнюю директорию пользователя. Логично, что туда же мы будем отправлять файлы для трансляции, и не менее логично, если проигрыватель будет работать из этой же домашней директории, проигрывая эти самые файлы, т.е. не нужно настраивать ещё какой-то дополнительный доступ по ftp в корень операционной системы для пользователя root или придумывая какие-то дополнительные настройки для этого.
===
Домашняя директория пользователя kabibara перед конфигурированием Ezstream:

Создадим необходимые директории:
mkdir -p ~/music
mkdir -p ~/pls
mkdir -p ~/ezs

~ - это домашняя папка пользователя, в явном виде было бы так:
mkdir -p /home/kabibara/speech

Создадим и сразу в процессе создания откроем файл конфигурации Ezstream:
vi /home/kabibara/ezs/ezstream.xml
Скопируем туда настройки на основе того, что имеется в вышеуказанном блоге (важное - выделено; 111.111.111.111 - ваш внешний IP адрес, или доменное имя, или адрес динамического DNS; можно использовать IP адрес локальной сети для вещания в локальной сети):
<ezstream>
<url>http://111.111.111.111:8002/stream</url>
<sourcepassword>Kapibar2023</sourcepassword>
<format>MP3</format>
<filename>/home/kabibara/pls/playlist.m3u</filename>
<stream_once>0</stream_once>
<shuffle>0</shuffle>
<svrinfoname>Kabibara</svrinfoname>
<svrinfourl>http://111.111.111.111:8002/stream</svrinfourl>
<svrinfogenre>Punk</svrinfogenre>
<svrinfodescription>Punk</svrinfodescription>
<svrinfobitrate>256</svrinfobitrate>
<svrinfochannels>2</svrinfochannels>
<svrinfosamplerate>44100</svrinfosamplerate>
<svrinfopublic>0</svrinfopublic>
</ezstream>
Напомню, выход из vi с сохранением - :wq
Посмотрим, что получилось:
cat /home/kabibara/ezs/ezstream.xml

Изменим права доступа:
chmod 600 /home/kabibara/ezs/ezstream.xml

Закачаем что-нибудь в папку music:



Создадим плейлист playlist.m3u в директории /home/kabibara/pls:
ls /home/kabibara/music/* > /home/kabibara/pls/playlist.m3u

Отредактируем конфигурационный файл IceCast в соответствии с настройками Ezstream:
sudo vi /etc/icecast.xml
Вид файла по умолчанию:

Установим пароли:
<source-password>Kapibar2023</source-password> (тот, который в Ezstream)
<relay-password>Barikap2023</relay-password> (в нашем случае - просто уберём пароль по умолчанию)
<admin-password>Kapiradio2023</admin-password> (пароль администратора IceCast)

Перегрузим IceCast:
sudo systemctl restart icecast
Проверим:


Создадим файл для функционирования Ezstream как службы
sudo vi /etc/systemd/system/ezstream.service
с такими данными:
[Unit]
Description=ezstream
After=network.target
Requires=ezstream.service
[Service]
User=kabibara
Group=kabibara
Type=simple
PIDFile=/etc/ezstream/ezstream.pid
ExecStart=/usr/bin/ezstream -c /home/kabibara/ezs/ezstream.xml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target

Произведём перезапуск systemctl:
sudo systemctl daemon-reload
После произведённых манипуляций, мы можем управлять Ezstream при помощи systemctl. Произведём запуск Ezstream и проверим статус:
sudo systemctl start ezstream
sudo systemctl status ezstream

На самом деле, всё уже работает (панель администратора):

http://111.111.111.111:8002/status.xsl


Внесём Ezstream в автозагрузку:
sudo systemctl enable ezstream




































































































































