Как мне настроить сервер Icecast для трансляции аудио в моей сети?

Трансляция выходных данных звуковой карты в виде потока интернет-радио - это надежный способ потоковой передачи аудио в сети. Это может быть удобно использовано, например, для передачи звука по беспроводной локальной сети на другой компьютер или любое другое устройство, способное воспроизводить потоки интернет-радио.

Однако я не нашел простого пошагового руководства о том, как это настроить.

Трансляция аудио с помощью Icecast2


1. Установите Icecast2 Install icecast2


2. Отредактируйте конфигурацию Icecast2

Откройте файл /etc/icecast2/icecast.xml как root в редакторе. По соображениям безопасности вам следует настроить пароли в <authentication> раздел:

<admin-user>admin</admin-user><admin-password>hackme</admin-password> 

Если вы изменили <source-password> или <relay-password> вам также необходимо сделать это на стороне источника или ретранслятора. Это означает оставить его по умолчанию или изменить в ices2.xml файл (см. Ниже) также. То же самое нужно будет сделать в файлах конфигурации Ices или Darkice.

Вам также необходимо определить имя хоста, с которого можно получить доступ к вашему потоку:

<hostname>localhost</hostname>

Оставьте это как есть локальный хост (там не нужно указывать разрешенный IP-адрес), когда вы хотите транслировать только в своей локальной сети. Порт по умолчанию для прослушивания - 8000. Меняйте его только при необходимости.


3. Измените значения по умолчанию

Откройте /etc/default/icecast2 файл от имени root в редакторе. Последняя строка должна быть изменена на

ENABLE=true

Это все для Icecast2. Конечно, есть еще много настроек, с которыми вы можете играть. В файлах конфигураций есть пояснительные примечания к параметрам.

4. Запуск/ Остановка Icecast

Сервер запускается и останавливается следующими командами:

/etc/init.d/icecast2 start/etc/init.d/icecast2 stop

Во время работы сервером Icecast можно управлять из любого браузера по адресу http://localhost:8000/admin/ после ввода ваших учетных данных администратора, определенных на шаге 1. Дополнительная документация доступна по адресу Icecast.org.

Stream2ip это графический интерфейс для быстрого запуска и остановки потоков, где уже выполнена базовая настройка Ices2, Ices или Darkice.


Ices2 Install ices2 для потоковой передачи звука OGG Vorbis с локальной звуковой карты

Чтобы настроить pulseaudio для включения записи со звуковой карты, см. Примечание для Darkice ниже.

Создание каталогов для Ices2

mkdir /var/log/ices   # in case you need logfiles.  mkdir /etc/ices2      # for putting ices stuff in.  

Отредактируйте конфигурацию Ices2 .xml

Ices2 будет выполняться с использованием XML-файла для настроек. Подробные примеры конфигураций можно найти в /usr/share/doc/ices2/examples/. Эти файлы необходимо отредактировать в соответствии с вашими потребностями, и их можно скопировать куда угодно, лучше всего в ваш домашний каталог. В зависимости от конфигурационного файла Ices2 использует список воспроизведения в Огг Ворбис формат (ices-playlist.xml) или вывод с вашей звуковой карты (ices-alsa.xml) в качестве источника потоковой передачи для Icecast2.

В разделе <input> возможно, вам потребуется заменить устройство, если вы настроили свою звуковую систему на PulseAudio. Для этого отредактируйте соответствующую строку на:

<param name="device">pulse</param>

Имя потока для принимающего клиента определяется в следующем разделе.

<mount>/example1.ogg</mount>

Начать потоковую передачу

Потоки с вашей звуковой карты будут запущены, сначала запустив сервер Icecast2, а затем запустив Ices2 с помощью следующих команд:

/etc/init.d/icecast2 startices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file

Настройка приемника

На стороне приемника ваша радиостанция "станция" настраивается на: <serverIP>:8000/example1.ogg где <serverIP> является ли IP-адрес вашего потокового сервера, за которым следует порт, указанный вами в icecast.xml файл (по умолчанию 8000).

Прекратить потоковую передачу

Потоки завершаются отключением Ices2 и/или остановкой запуска сервера Icecast2:

killall ices2/etc/init.d/icecast2 stop

Льды для трансляции списков воспроизведения mp3

Трансляция списка воспроизведения, содержащего mp3-файлы это невозможно сделать с помощью Ices2. Нам нужно установить Льды, который мы должны установка из исходного кода.

После настройки файла конфигурации с адресом сервера, паролем и свойствами потоковой передачи (хорошо документированный пример будет найден в /usr/share/doc/ices/examples) мы можем передавать аудиофайлы mp3 из списков воспроизведения (например, в формате .m3u) через сервер Icecast2 с помощью:

/etc/init.d/icecast2 startices -c <path_to_config_file> -F <path_to_playlist>

Для получения дополнительных опций ознакомьтесь с документацией на довольно сложной справочной странице из man ices.


Даркис Install darkice для прямой трансляции

Мы можем транслировать выходные данные локальной звуковой карты в формате OGG Vorbis или в формате mp3, используя Даркис. Чтобы включить потоковую передачу локальной звуковой карты, нам может потребоваться сначала определить устройство записи для Darkice в pulseaudio. Это можно сделать с помощью pavucontrol Install pavucontrol. В Запись вкладка выберите Monitor of <your soundcard> для "Подключаемый модуль ALSA [darkice]".

Конфигурационный файл (хорошо документированный пример, приведенный в /usr/share/doc/darkice/examples) необходимо адаптировать к серверу Icecast и локальной звуковой среде:

[general]duration        = 0      # duration in s, 0 foreverbufferSecs      = 1      # buffer, in secondsreconnect       = yes    # reconnect if disconnected[input]device          = default # or `pulse' for PulseaudiosampleRate      = 44100   # sample rate 11025, 22050 or 44100bitsPerSample   = 16      # bitschannel         = 2       # 2 = stereo[icecast2-0]bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)quality         = 1.0       # 1.0 is best qualityformat          = mp3       # format. Choose `vorbis' for OGG Vorbisbitrate         = 256       # bitrateserver          = localhost # or IPport            = 8000      # port for IceCast2 accesspassword        = hackme    # source password to the IceCast2 servermountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .oggname            = mystream

После сохранения этой конфигурации (например, в ~/music/darkice.cfg) сначала мы запускаем сервер Icecast, а затем можем передавать вывод pulseaudio с локальной звуковой карты, вызывая:

/etc/init.d/icecast2 startdarkice -c ~/music/darkice.cfg

На приемнике мы настраиваемся на http://<localhost>:8000/mystream.mp3 за то, что выслушал. <localhost> это IP-адрес сервера Icecast.