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

Каждый, кому в голову приходит мысль сделать свое собственное интернет-радио, при поиске возможных решений непременно натыкается на достаточно нетривиальные способы с участием mpd или icecast+ices. Я же вам расскажу простой способ, как это можно сделать буквально одной командой.

  1. На сервере собираем VLC, отключив с помощью USE-флагов графический интерфейс. Делается это с помощью флагов -X -qt4. Помимо этого, надо еще включить поддержку музыкальных файлов с помощью флагов mp3 mpeg ogg.

  2. Создаем на сервере M3U плейлист. Можно для воспользоваться любой программой, а у меня получилось проще: у меня на сервере есть большая папка с несколькими сотнями MP3-файлов. Я просто сделал плейлист с помощью команды ls > playlist.m3u и с помощью nano в этом playlist.m3u дописал сверху строку #EXTM3U.

  3. Радио с трансляцией по протоколу 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).
4. Прослушать радио можно с помощью любого плеера, поддерживающего потоковое воспроизведение. Например, с помощью того же настольного VLC выбираете в меню Медиа -> Открыть URL и там вводите адрес радио в формате http://ip_сервера:порт (обязательно указывайте перед адресом протокол http://, иначе радио не заиграет!).

P.S. Если администрация сайта сочтет этот небольшой мануал полезным, опубликуйте его пожалуйста в разделе “Planeta Calculate”.

Петр, у Вас доступ открыт, можете перенести. Материал конечно же полезный!

Спасибо, опубликовал там. :slight_smile:
Александр, у вас в компании Calculate наверняка есть корпоративная локалка. Порадуйте своих коллег, устройте им корпоративное интернет-радио! В этом случае можно даже со своего компа, сделав bash-скрипт и поместив его в автозагрузку. Пришли на работу утром, включили свой компьютер - радио запустилось, коллеги могут подключаться к нему, введя внутренний IP компьютера и порт. Ушли с работы вечером, выключили компьютер - радио выключилось.

Да, только для этого понадобится поставить всем VLC, т.к. он не входит в состав CLDX. Это интересно было бы где-нибудь на производстве, но опять же у всех свои пристрастия к музыке.