Calculate Forum

Делаем свое интернет-радио с помощью VLC

#1

Каждый, кому в голову приходит мысль сделать свое собственное интернет-радио, при поиске возможных решений непременно натыкается на достаточно нетривиальные способы с участием mpd или icecast+ices. Я же вам расскажу простой способ, как это можно сделать буквально одной командой.
# На сервере собираем VLC, отключив с помощью USE-флагов графический интерфейс. Делается это с помощью флагов -X -qt4. Помимо этого, надо еще включить поддержку музыкальных файлов с помощью флагов mp3 mpeg ogg.
# Создаем на сервере M3U плейлист. Можно для этого воспользоваться любой программой, а у меня получилось проще: у меня на сервере есть большая папка с несколькими сотнями MP3-файлов. Я просто сделал плейлист с помощью команды ls > playlist.m3u и с помощью nano в этом playlist.m3u дописал сверху строку #EXTM3U.
# Радио с трансляцией по протоколу HTTP создается единственной командой:

vlc -ZL --sout-keep --daemon /путь/до/плейлиста/playlist.m3u --sout '#transcode{ab=128}:standard{access=http,mux=ogg,dst=ip_сервера:порт}'

-ZL - с этими параметрами плейлист будет проигрываться рандомно и бесконечно
--sout-keep - после окончания трека подключение к радио будет оставаться, без этого параметра оно оборвется, и придется тогда подключаться к радио заново на каждом новом треке.
--daemon - VLC становится демоном, после чего можно спокойно закрывать окно с сессией SSH. Выключить VLC в этом случае можно командой pkill vlc.
#transcode{ab=128} - для уменьшения нагрузки на канал мы автоматически понижаем качество прослушиваемой музыки. Исходные файлы при этом остаются с прежним битрейтом, преобразование делается сервером “на лету”.
standard{access=http,mux=ogg,dst=ip_сервера:порт} - тут по идее все должно быть понятно, на выходе у нас стоит протокол HTTP, не забудьте указать IP сервера и порт, через который будет вестись трансляция радио (например, 192.168.1.10:6500).
# Прослушать радио можно с помощью любого плеера, поддерживающего потоковое воспроизведение. Например, с помощью того же настольного VLC выбираете в меню Медиа -> Открыть URL и там вводите адрес радио в формате http://ip_сервера:порт (обязательно указывайте перед адресом протокол http://, иначе радио не заиграет!).

#2

Отлично. Однозначно в коллекцию.
Только, я давно пользую icecast как релей, так и “плейлист”.

Mastodon Mastodon