Emitir vídeo en streaming con icecast2 y linux

Para emitir con el codec theora se puede usar ffmpeg, oggfwd y icecast2. ffmpeg cambia el formato de vídeo para que oggfwd lo envíe al servidor icecast2, el cual esperará a todos los clientes que quieran verlo.

Emitir la señal en directo en formato theora con Icecast 2

Éste es un ejemplo para emitir vídeo en formato OGG Theora a un servicor Icecast 2.

Una tarjeta capturadora de vídeo que utilice el chip BT8x8 tiene varias entradas, entre ellas TV, vídeo compuesto, S-Video, etc. Para seleccionar la entrada se debería utilizar v4l2-ctl:

root@wasge-ubuntu:~# v4l2-ctl -d /dev/video0 -i 0

Pero en mi caso ésto no ha funcionado. Parece que ffmpeg no hace caso a ésta configuración. Sin embargo, al utilizar ffplay para visualizar la imagen, ffmpeg sí que recuerda esa configuración.

root@wasge-ubuntu:~# ffplay -f video4linux2 -i /dev/video0 -channel 1

Gracias a ese comando se puede visualizar la imagen en directo, pero ahora habrá que emitirla a un servidor. En el ejemplo voy a utilizar un servidor Icecast 2 sin configurar (por eso tiene la contraseña hackme).

root@wasge-ubuntu:~# ffmpeg -f video4linux2 -i /dev/video0 -f ogg -codec:v libtheora -vb 300k - | oggfwd localhost 8000 hackme directo.ogg

Gracias al parámetro -vb se puede especificar el bitrate (bits por segundo) del vídeo.

Fecha de creación: 17/11/2015 20:18:31 | Última modificación: 17/11/2015 20:18:31 | Hora del servidor: 20/9/2017 23:53:24