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

63

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

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

Takkat
источник

Ответы:

75

Трансляция аудио с Icecast2


1. Установите Icecast2 Установить 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>

Оставьте его как localhost (не нужно указывать разрешенный 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 Установить ices2 для потоковой передачи аудио OGG Vorbis с локальной звуковой карты

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

Сделать каталоги для Ices2

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

Отредактируйте XML-файл конфигурации Ices2

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

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

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

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

<mount>/example1.ogg</mount>

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

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

/etc/init.d/icecast2 start
ices2 /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. Нам нужно установить IceS , который мы должны установить из исходного кода .

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

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

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


Darkice Установить darkice для прямой трансляции

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

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

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = default # or `pulse' for Pulseaudio
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 256       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password to the IceCast2 server
mountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = mystream

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

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

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

Takkat
источник
3
Что касается части «Оставьте его как localhost, когда вы хотите передавать только в своей локальной сети», разве это не должен быть IP-адрес или интерфейс, достижимый для сети, для того чтобы другие устройства могли подключаться?
Оли
связаны ли admin-user и admin-password с пользователем / паролем машины?
Charbel
1
@ Шарбель: нет, они не связаны. Выберите любой пароль, который вам нравится. Например, они нужны вам для доступа к веб-интерфейсу администратора icecast ( localhost: 8000 / admin ).
Таккат
Это отличный ответ, спасибо. Во многих уроках я вижу, как icecast и mpd упоминаются вместе и работают вместе. Я не понимаю отношения между Icecast и MPD - вы могли бы уточнить? Какую роль играет каждый из них?
CoolUserName
1
Обратите внимание, что пароли Icecast2 хранятся (и используются в Darkice) в виде открытого текста. Не используйте ваши очень секретные пароли здесь.
Elomage