Каждый, кому в голову приходит мысль сделать свое собственное интернет-радио, при поиске возможных решений непременно натыкается на достаточно нетривиальные способы с участием mpd или icecast+ices. Я же вам расскажу простой способ, как это можно сделать буквально одной командой.
1. На сервере устанавливаем VLC, без графического интерфейса. В каждом дистрибутиве это можно сделать по-разному. В Debian и Ubuntu это можно сделать, выполнив команду
В дистрибутиве Gentoo можно собрать VLC с помощью флагов
2. Создаем на сервере M3U плейлист. Можно для этого воспользоваться любой программой, которая умеет это делать, а у меня получилось проще: у меня на сервере есть большая папка с несколькими сотнями MP3-файлов. Я просто сделал плейлист с помощью команды
3. Радио с трансляцией по протоколу HTTP создается единственной командой:
, где:
4. Прослушать радио можно с помощью любого плеера, поддерживающего потоковое воспроизведение. Например, с помощью того же настольного VLC выбираете в меню Медиа -> Открыть URL и там вводите адрес радио в формате
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://
, иначе радио не заиграет!).