Создание интернет-радио https://www.youtube.com/watch?v=jNOwytAz44I

Black_Triangle deb78ae98d Update 'README.md' 3 年之前
6878678768678 65192e59b0 Загрузить файлы '' 3 年之前
LICENSE c3662fcd4e Initial commit 3 年之前
README.md deb78ae98d Update 'README.md' 3 年之前

README.md

Triangle-Radio или как я стал пиратом

Triangle-Radio

Потребуется:

Приступим:

Качай armbian от сюда https://www.armbian.com/ под свою модель платы и запихивай в microSD

Врубаем, конектимся по ssh и погнали

Создаем пользователя и Обновляем ОС

apt update
apt upgrade

Создаем папку для музыки

mkdir radio_music

Закачиваем музыку, создаем плейлист.

Используем команду:

find . -name '*.mp3'

Точно также как в видео, потом подрубаемся заного

Ставим icecast2

sudo apt install icecast2

Составляем конфиг:

sudo nano /etc/icecast2/icecast.xml

Сам пример конфига:

<icecast>
Информация о сервере
    <location>Triangle Radio</location>
    <admin>Triangle</admin>
    <hostname>Triangle.ru</hostname>
    <fileserve>1</fileserve>

Настройки ограничений сервера, всё по-умолчанию
    <limits>
        <clients>100</clients>
        <sources>2</sources>
        <queue-size>524288</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
        <burst-on-connect>1</burst-on-connect>
        <burst-size>65535</burst-size>
    </limits>

Настройки авторизации
    <authentication>
Пароль для подключения источника потока данных
        <source-password>Triangle</source-password>
Пароль для релей-слейва. В данной статье роли не играет
        <relay-password>Triangle</relay-password>

Логин/пароль администратора веб-интерфейса
        <admin-user>Triangle</admin-user>
        <admin-password>Triangle</admin-password>
    </authentication>

Имя точки монтирования "по-умолчанию"
    <shoutcast-mount>/stream</shoutcast-mount>

Настройки сервера. Случаем любые соединения на порт 9090
    <listen-socket>
        <port>9090</port>
        <bind-address>0.0.0.0</bind-address>
        <shoutcast-mount>/stream</shoutcast-mount>
    </listen-socket>

Здесь можно прописать любые дополнительные заголовки.
Я оставил то, что предлагалось в конфиге, поставляемом в
Debian
    <http-headers>
        <header name="Access-Control-Allow-Origin" value="*" />
    </http-headers>

Настройка путей. Названия говорят за себя
    <paths>
        <alias source="/" destination="/status.xsl"/>
        <basedir>/</basedir>
        <webroot>/etc/icecast2/web</webroot>
        <adminroot>/etc/icecast2/admin</adminroot>
        <logdir>/var/log/icecast2/</logdir>
        <pidfile>/var/log/icecast2/icecast.pid</pidfile>
    </paths>

Логирование. Уровень от 4 (trace)
    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <playlistlog>playlist.log</playlistlog>
        <loglevel>3</loglevel>
        <logsize>10000</logsize>
    </logging>

Настройки безопасности. В случае, если сервер запущен от
пользователя root, то появляется возможность сделать
chroot (тут играет роль указанный выше basedir) и смениить
пользователя. Я сразу запускаю сервис от пользователя
icecast2, так что здесь этого не требуется
    <security>
        <chroot>0</chroot>
    </security>
</icecast>

Включаем:

systemctl enable icecast
systemctl start icecast

В браузере тестим

Ставим Ezstream

Библиотеки:

apt-get install libshout3-dev libxml2-dev libtag1-dev libshout3-dev libvorbis-dev libogg-dev check libtag-extras-dev libtagc0-dev

Исходники:

wget http://downloads.xiph.org/releases/ezstream/ezstream-0.6.0.tar.gz
tar xvzf ezstream-0.6.0.tar.gz
cd ezstream-0.6.0

Сборка:

libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing
autoconf
autoreconf -f
./configure
make
sudo make install

Проверяем:

ezstream -V

Генерим конфиг:

sudo nano /etc/icecast2/ezstream.xml

Пример конфига:

<ezstream>
Адрес Icecast
    <url>http:10.8.0.4:9090/stream</url>
Пароль авторизации источника
    <sourcepassword>Triangle</sourcepassword>
Формат передаваемых данных
    <format>MP3</format>
Путь к плейлисту
    <filename>/hone/q/playlist.txt</filename>
Флаг того, является плейлист программой. Если "1", то будет
произведён запуск, плейлист должен выдать путь к файлу
для вещания
    <playlist_program>0</playlist_program>
Перемешивать ли песни
    <shuffle>1</shuffle>
Мета-данные о канале
    <svrinfoname>Sex, Dugs, Brutal Metal</svrinfoname>
    <svrinfogenre>Rock</svrinfogenre>
    <svrinfodescription>Something about channel</svrinfodescription>
Настройки перекодирования. Мне не нужны.
    <reencode>
        <enable>0</enable>
    </reencode>
</ezstream>

Запуск:

ezstream -c /etc/icecast2/ezstream.xml

Ты пират!!!

Заключение

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

  • Bitcoin: 1AWBMoeV8UEybQi4QrQMmeFX1sXvRLDeCn

  • Ethereum: 0xB151c82A264eF0EA848c120444173658BFA18Cf9

  • DASH: XcNtFGW1ydGLudvTPWoBvPZZxG844EvksR

  • Zcash: t1hCJwasRozdkoaK9HLpngoEVPQhEZpxdFT

  • Monero: 41iNuQsc6GjZofH3XkKwNYVSXVsrjipfVjjNR3nbsL5XjJMFTfykW1T6CkYz1StdXH2t8dhnjUTT9FwEPpbsFVxjHuuYabQ

  • Litecoin: LNpw5QS5fvH1NW5AMp35zzMs1FYKuAUuPP

  • Bitcoin Cash: qrs29h849m9vj02ljd2utf6g7e7hxnntqvkhz8r8u3

  • Ethereum Classic: 0xc20a61Ec5765aC0059D6e85f069B440889EBfcC5