¿Cómo configuro un servidor Icecast para transmitir audio en mi red?

63

Transmitir la salida de la tarjeta de sonido como una transmisión de radio por Internet es una forma confiable de transmitir audio en una red. Esto se puede usar muy bien para, por ejemplo, transmitir audio en una LAN inalámbrica a otra computadora o cualquier otro dispositivo capaz de reproducir transmisiones de radio por Internet.

Sin embargo, no encontré una guía fácil paso a paso sobre cómo configurar esto.

Takkat
fuente

Respuestas:

75

Transmitir audio con Icecast2


1. Instalar Icecast2 Instalar icecast2


2. Edite la configuración de Icecast2

Abra el archivo /etc/icecast2/icecast.xmlcomo root en un editor. Por razones de seguridad, debe configurar las contraseñas en la <authentication>sección:

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

Si cambió el <source-password>o <relay-password>necesita hacerlo también en el lado de la fuente o el relé. Eso significa dejarlo predeterminado o cambiarlo en el archivo ices2.xml (ver más abajo) también. Lo mismo deberá hacerse en los archivos de configuración de Ices u Darkice.

También debe definir el nombre de host donde se puede llegar a su transmisión:

<hostname>localhost</hostname>

Déjelo como localhost (no es necesario dar una IP resuelta allí) cuando solo quiera transmitir en su red local. El puerto predeterminado para escuchar es 8000. Cámbielo solo cuando sea necesario.


3. Editar valores predeterminados

Abra el /etc/default/icecast2archivo como root en un editor. La última línea debe cambiarse a

ENABLE=true

Eso es todo por Icecast2. Por supuesto, hay muchas más configuraciones con las que puedes jugar. En los archivos de configuraciones hay notas explicativas sobre los parámetros.

4. Iniciar / detener Icecast

El servidor se inicia y se detiene mediante los siguientes comandos:

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

Mientras se ejecuta, el servidor Icecast se puede administrar desde cualquier navegador http://localhost:8000/admin/después de ingresar las credenciales de administrador definidas en el paso 1. Hay más documentación disponible en Icecast.org .

Stream2ip es una interfaz gráfica para iniciar y detener rápidamente transmisiones donde ya se ha realizado una configuración básica para Ices2, Ices u Darkice.


Ices2 Instalar ices2 para transmitir audio OGG Vorbis desde una tarjeta de sonido local

Para configurar Pulseaudio para permitir la grabación desde la tarjeta de sonido, vea la nota de Darkice a continuación.

Hacer directorios para Ices2

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

Edite la configuración de Ices2 .xml

Ices2 se ejecutará utilizando un archivo .xml para la configuración. Se pueden encontrar ejemplos detallados de configuraciones en /usr/share/doc/ices2/examples/. Estos archivos deben editarse para satisfacer sus necesidades y pueden copiarse en cualquier lugar, mejor en su directorio de inicio. Dependiendo del archivo de configuración, Ices2 utiliza una lista de reproducción en formato Ogg Vorbis ( ices-playlist.xml) o la salida de su tarjeta de sonido ( ices-alsa.xml) como fuente de transmisión para Icecast2.

En la sección, <input>es posible que deba reemplazar el dispositivo si ha configurado su sistema de sonido en PulseAudio. Para hacer esto, edite la línea correspondiente a:

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

El nombre de la secuencia para el cliente receptor se define en la siguiente sección.

<mount>/example1.ogg</mount>

Comience a transmitir

Las transmisiones desde su tarjeta de sonido se iniciarán primero ejecutando el servidor Icecast2 y luego ejecutando Ices2 con los siguientes comandos:

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

Configurar receptor

En el lado del receptor, su "estación" de radio se sintoniza: <serverIP>:8000/example1.oggdónde <serverIP>está la IP de su servidor de transmisión seguido del puerto que definió en el archivo icecast.xml (predeterminado 8000).

Terminar Streaming

Las transmisiones terminan matando a Ices2 y / o dejan de ejecutar el servidor Icecast2:

killall ices2
/etc/init.d/icecast2 stop

Ices para transmitir listas de reproducción mp3

No se puede transmitir una lista de reproducción que contenga archivos mp3 con Ices2. Necesitamos instalar IceS , que tenemos que instalar desde la fuente .

Después de haber configurado el archivo de configuración con la dirección del servidor, la contraseña y las propiedades de transmisión (se encontrará un ejemplo bien documentado /usr/share/doc/ices/examples), podemos transmitir archivos de audio mp3 desde listas de reproducción (por ejemplo, en formato .m3u) a través de un servidor Icecast2:

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

Para más opciones, lea la documentación en la página de manual bastante elaborada de man ices.


Darkice Instalar darkice para transmisión en vivo

Podemos transmitir la salida de la tarjeta de sonido local como OGG Vorbis o como transmisión de mp3 usando Darkice . Para habilitar la transmisión de la tarjeta de sonido local, es posible que primero necesitemos definir el dispositivo de grabación para Darkice en pulseaudio. Esto se puede hacer con pavucontrol Instalar pavucontrol . En la pestaña Grabación, elija Monitor of <your soundcard>el "complemento ALSA [darkice]" .

El archivo de configuración (ejemplo bien documentado dado en /usr/share/doc/darkice/examples) debe adaptarse al servidor Icecast y al entorno de sonido local:

[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

Después de guardar esta configuración (por ejemplo, en ~/music/darkice.cfg), primero ejecutamos el servidor Icecast y luego podemos transmitir la salida de audio de pulso desde la tarjeta de sonido local invocando:

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

En el receptor sintonizamos http://<localhost>:8000/mystream.mp3para escuchar. <localhost>es la IP del servidor Icecast.

Takkat
fuente
3
Con respecto a la parte "Déjelo como localhost cuando solo desee transmitir en su red local", ¿no es necesario que sea una IP o interfaz accesible a la red para que otros desviados puedan conectarse?
Oli
¿El usuario admin y la contraseña admin están relacionados con el usuario / contraseña de la máquina?
Charbel
1
@Charbel: no, no están relacionados. Elige la contraseña que quieras. Por ejemplo, los necesita para acceder a la interfaz web de administración de Icecast ( localhost: 8000 / admin ).
Takkat
Esta es una gran respuesta, gracias. En muchos tutoriales, veo icecast y mpd mencionados juntos, trabajando juntos. No entiendo la relación entre icecast y mpd, ¿podrías aclarar? ¿Qué papel desempeña cada uno?
CoolUserName
1
Tenga en cuenta que las contraseñas de Icecast2 se almacenan (y se usan en Darkice) como texto sin cifrar. No reutilice aquí sus contraseñas muy secretas.
elomage