jueves, 4 de octubre de 2012

Ve tus vídeos remotamente con VLC (Streaming)

Nivel de Dificultad: Medio.

Una de las cosas más interesantes que puedes hacer con Linux es montar un Home Server que te permita, entre otras muchas cosas, almacenar y servir contenido multimedia a tus dispositivos, tanto en tu LAN como por Internet.



En próximas fechas os comentaré como he montado mis Home Servers con Debian. Es un artículo largo, y quiero que quede bien. Mientras llegamos a ello, os cuento que ya hace algunos años experimenté con la función de stream de vídeo de VLC. Quería que si, en algún momento, deseara ver alguna de las películas que tengo en mi Home Server desde otro lado, poder hacerlo con una calidad decente sirviéndola desde mi ADSL. Tras probar varias opciones, éste es el comando de VLC que me permite hacerlo. Pégalo en un archivo, por ejemplo, llámalo videostream.sh y hazlo ejecutable


cvlc -I http --http-port 8181 \
--sout '#transcode{venc=x264{keyint=120},vcodec=x264,fps=15,\
acodec=mp4a,vb=256,qp=1,ab=32,audio-sync,channels=2,samplerate=32000,soverlay,width=448}\
:standard{access=http,mux=asf,dst=192.168.9.254:8182}' --mtu=1400

En el comando instruyo a VLC a ejecutar su interfaz http en el puerto 8181 de mi servidor. También le digo que emita en un contenedor asf, con codec de video h264 y audio mp4a, en la dirección http://192.168.9.254:8182, que es la IP de mi servidor. Muy importante: para que VLC funcione con estos códecs necesitas tener el repositorio de Debian Multimedia instalado y los paquetes actualizados.

Bien, pero como accedemos al interfaz web desde fuera de nuestra red, no recomiendo abrir/redirigir estos puertos en nuestro cortafuegos/router, ya que cualquiera desde fuera puede manejar VLC a su antojo y ver nuestros videos. Así que lo que vamos a hacer es pasarlo por un tunel ssh desde nuestro ordenador a nuestro servidor. Podemos hacerlo ejecutando el siguiente comando:

ssh -f -L 8181:192.168.9.254:8181 -L 8182:192.168.9.254:8182 yo@miservidor videostream.sh

Con esto creamos dos tuneles por ssh a nuestro servidor (sustituye yo@miservidor adecuadamente) a los puertos 8181 y 8182, ejecutamos videostream.sh y todo ejecutado en segundo plano (-f). Cuando acabemos nuestra sesión de cine entramos otra vez vía ssh a nuestro servidor, buscamos el proceso y lo finalizamos con kill.

Para acceder al interfaz web de VLC en tu servidor DESDE tu ordenador solo tienes que navegar a la URL http://localhost:8181 




Una vez elegido el vídeo que deseas que VLC transcodifique y emita puedes verlo iniciando VLC en tu ordenador  e indicándole que abra el volcado de vídeo con URL http://localhost:8182



Si deseas automatizar el proceso sin poner la contraseña que te pide ssh, te recomiendo que leas como hacerlo aquí.

No hay comentarios:

Publicar un comentario