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