Pull to refresh

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

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

1. На сервере устанавливаем VLC, без графического интерфейса. В каждом дистрибутиве это можно сделать по-разному. В Debian и Ubuntu это можно сделать, выполнив команду
apt-get install vlc-nox
В дистрибутиве Gentoo можно собрать VLC с помощью флагов -X -qt4. Помимо этого, надо еще включить поддержку музыкальных файлов с помощью флагов mp3 mpeg ogg.

2. Создаем на сервере M3U плейлист. Можно для этого воспользоваться любой программой, которая умеет это делать, а у меня получилось проще: у меня на сервере есть большая папка с несколькими сотнями MP3-файлов. Я просто сделал плейлист с помощью команды ls > playlist.m3u, находясь внутри папки, и с помощью любого текстового редактора в этом 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 становится демоном, после чего можно спокойно закрывать окно терминала, VLC останется в памяти. Выключить VLC в этом случае можно командой pkill vlc.
#transcode{ab=128} — для уменьшения нагрузки на канал мы автоматически понижаем качество прослушиваемой музыки. Исходные файлы при этом остаются с прежним качеством, преобразование делается сервером «на лету». В данном примере мы установили автоматическое понижение битрейта до 128 кбит/с.
standard{access=http,mux=ogg,dst=ip_сервера:порт} — тут по идее все должно быть понятно, на выходе у нас стоит протокол HTTP, не забудьте указать IP сервера и порт, через который будет вестись трансляция радио (например, 192.168.1.10:6500).

4. Прослушать радио можно с помощью любого плеера, поддерживающего потоковое воспроизведение. Например, с помощью того же настольного VLC выбираете в меню Медиа -> Открыть URL и там вводите адрес радио в формате http://ip_сервера:порт (обязательно указывайте перед адресом протокол http://, иначе радио не заиграет!).
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.