domingo, 2 de diciembre de 2012

Convertir multicast IPTV (Imagenio) a unicast HTTP usando udpxy en Raspberry Pi

Como no siempre podemos utilizar programas de reproducción tipo VideoLAN (VLC) para la reproducción de las señales IPTV que proveen los proveedores de TV por cable (tipo Imagenio) necesitamos una alternativa a poder reproducir emisiones bajo protocolo RTP o UDP a HTTP, y para esto, que mejor que utilizar nuestra Raspberry Pi para que lo haga.

El principal motivo de esta conversión es:
  • No todos los elementos de red soportan multicast (sobretodo algunos switches y routers)
  • Quieres ver streaming de video en cliente que no tienen software  multicast disponible (ej: smartphones y tablets)
  • Quieres acceder a streaming desde una red distinta (ej: streaming de una localización a otra sobre Internet o en WAN/VPN)

Para ello, mediante el software udpxy podremos convertir los protocolos multicast RTP o UDP a protocolo unicast HTTP para solucionar los inconvenientes anteriores.

Instalación
Descargar el paquete udpxy para nuestra Raspberry Pi. Como no existe un paquete como tal, es necesario bajarse los fuentes y compilarlo.

Primer paso. Descarga
Abrimos una sesión de telnet o SSH y descargamos mediante wget el programa udpxy.1.0.23-0-prod.tar.gz localizado en http://sourceforge.net/projects/udpxy/

sudo wget http://sourceforge.net/projects/udpxy/files/latest/download?source=dlp

Segundo paso. Descomprimir
Descomprimimos el fichero descargado con la siguiente instrucción:

tar -xzvf udpxy.1.0.23-0-prod.tar.gz

Tercer paso. Compilación e instalación
Nos cambiamos al directorio recién creado:
cd udpxy-10.0.23-0/

compilamos:
sudo make

e instalamos:
sudo make install

Puesta en marcha
Una vez tenemos los programas udpxy  y udpxrec en /usr/local/bin/ y ya podemos hacer uso, por lo que para que el proxy empiece a ejecutarse ejecutamos la siguiente instrucción:

sudo udpxy -p 4022

Para ver el resto de parámetros de udpxy, ejecútadlo sin ningún parámetro para obtener la lista de sus opciones.


Estado
Para comprobar el estado del proxy, puedes abrir un navegador web y ejecutar la siguiente instrucción:
http://ip_raspberry:4022/status


Uso
El siguiente vídeo muestra un ejemplo de utilización de la aplicación IPTV y VPlayer de GooglePlay utilizando el proxy udpxy de la Raspberry Pi y reproduciendo un canal de Imagenio en una tablet con Android 4.0.4



Y la página de estado mientras se reproduce.

Espero que os sea de utilidad, o al menos, interesante la integración.

5 comentarios:

Anónimo dijo...

Interesante, no soy de España pero mi isp entrega iptv al igual como lo hace imagenio. Como haces para cargar la lista con los canales? los canales en 720p y 1080p son bien recibidos? Yo con vlc no tengo ni un problema reproduciendolos pero quiero comprar un raspberry pi para sacarle mas probecho y tengo esas dudas que te mencione.
Saludos.

Anónimo dijo...

Se puede tener udpxy + xupnpd en la raspberry pi? es la mejor opción y seria genial. Aun no tengo una rPi y me gustaría saber, podrías hacer una entrada ya que se ve interesante

Anónimo dijo...

La lista de canales suele ser un fichero m3u, y en este caso asi se ha hecho.

Anónimo dijo...

Como hacer para que despues de un reinicio de la rPi el udpxy se inicie automaticamente?
Saludos

Anónimo dijo...

Ya logre crear un auto inicio luego de reiniciar la rPi, en mi caso usando rasbian y creando un script en /etc/network/if-up.d ya que todos los script creados ahi se ejecutan luego de que exista una conexion de red
Pasos:
sudo nano /etc/network/if-up.d/NombreDelScript

#!/bin/bash
# Script to start our application
udpxy -p 4022

guardar apretando Ctrl+X, " Y", ENTER

sudo chmod 755 /etc/network/if-up.d/NombreDelScript

sudo reboot

Luego de que se reinicie la rPi pueden ir al navegador de su pc y acceder a http://ipRaspberryPi:4022/status para ver el estado, me funciona excelente, lo mejor es dejar la rPi con una ip fija