Haciendo streaming de vídeos a móviles

Antes de comenzar este artículo, y para que nadie se haga ilusiones, aclararé que no es posible hacer streaming por tu cuenta a través de las conexiones de datos de las operadoras tradicionales. Tienen esos puertos bloqueados para que sólo ellas o quien ellas quieran pueda ofrecer este servicio, de ahí la exclusividad de los canales de televisión en el móvil que tanto promocionan y que no son más que servicios de streaming. Si cualquiera pudiese hacerlo se les terminaría el chollo, aunque siempre queda el asunto del tráfico de datos, a ti te lo cobrarían íntegramente mientras que en sus canales no, ya pagas la suscripción mensual.

No lo he probado con las nuevas operadoras virtuales ni con Yoigo, aunque es posible que con éstas sí que funcione. De todos modos, con la proliferación de terminales con wifi se abre un nuevo mundo de posibilidades sin límite, entre ellos el streaming.

En esta ocasión utilizaremos un servidor Linux (Centos5.2) y como servidor de streaming, Darwin Stream Server.

Darwin es la versión Open Source del QuickTime Streaming Server de Apple, sí, habéis oído bien, Apple, la del iPod y la del iPhone, y permite enviar streamings a través de los protocolos estandar RTP y RTSP. Pero lo que hace más interesante a Darwin sobre otros servidores de streaming es que maneja perfectamente archivos MPEG4 y 3gpp, algo imprescindible si queremos enviarlos a dispositivos móviles

Puedes descargar aquí el archivo de instalación para Linux. Una vez lo descomprimes, la instalación es extramadamente sencilla, sólo debes ejecutar el archivo Install y un asistente te guiará. Cuando haya terminado tendrás tu servidor de streaming funcionando. Vamos a probarlo

La instalación deja todos los archivos de configuración en /etc/streaming y algunos vídeos de ejemplo en /usr/local/movies, ruta por defecto para los archivos. Puedes modificar esta ruta en el archivo /etc/streaming/streamingserver.xml buscando el parámetro de nombre “movie_folder”. Lo dejaremos como viene por defecto.

Si no has iniciado todavía tu servidor, hazlo con el siguiente comando:

/usr/bin/perl /usr/local/sbin/streamingadminserver.pl

Si todo ha ido bien puedes probar los vídeos de ejemplo. Abre tu Quicktime Player y abre la url:

rtsp://tuip/sample_h264_300kbit.mp4

Si has seguido bien los pasos verás un vídeo de muestra de QuickTime. Tu servidor de streaming ya está funcionando.

Prueba ahora alguno de tus vídeos 3gpp. Copialos a la ruta correspondiente de tu servidor, /usr/local/movies y llámalos con la url anterior cambiando el nombre del archivo:

rtsp://tuip/nombre.3gp

Deberías ver tu vídeo en el Quicktime Player. Prueba ahora desde tu móvil. Abre el Real Player (o el software que traiga para visualizar vídeos por streaming) e introduce esa dirección.

Cierto, no funciona 😛 . No podía ser tan simple 🙂 …

Preparando los archivos para visualizar en el móvil

Para visualizar los vídeos 3gpp y mp4 en el móvil a través de Darwin han de someterse a un proceso denominado hint.

Necesitaremos una nueva herramienta que haga este proceso, en este caso será el paquete gpac. Descargamos e instalamos el software y tendremos el programa que necesitamos, MP4Box. Ahora simplemente debemos ejecutar la siguiente instrucción en todos nuestros vídeos:

/usr/local/bin/MP4Box -3gp -mtu 1450 -hint video.3gpp

Ya está. Si vuelves a intentar ver el vídeo en tu móvil comprobarás como ahora sí que se visualiza.

Creando gráficas del servidor Darwin en Cacti

Hace algunos meses os conté como monitorizar tu servidor con Cacti. Vamos pues a añadir gráficas de nuestro servidor de streaming para poder monitorizar la actividad del mismo.

Graficas Cacti Darwin Stream Server

Lo primero que debemos hacer será habilitar el acceso remoto desde la IP de nuestro monitor Cacti a la consola de administración del servidor, el “remote admin”. Para ello editamos /etc/streaming/streamingserver.xml, localizamos el módulo QTSSAdminModule y en el parámetro IPAccessList introducimos la IP correspondiente, ponemos a false LocalAccessOnlyenable_remote_admin y a true. Habrá que reiniciar el servidor. Quedaría tal que así.

<MODULE NAME="QTSSAdminModule" >
<PREF NAME="IPAccessList" >XXX.XXX.XXX.XXX</PREF>
<PREF NAME="Authenticate" TYPE="Bool16" >true</PREF>
<PREF NAME="LocalAccessOnly" TYPE="Bool16" >false</PREF>
<PREF NAME="RequestTimeIntervalMilli" TYPE="UInt32" >50</PREF>
<PREF NAME="enable_remote_admin" TYPE="Bool16" >true</PREF>
<PREF NAME="AdministratorGroup" >admin</PREF>
</MODULE>

Ya tenemos el servidor de streaming listo, ahora tocaremos en el servidor Cacti. Aquí está todo explicado, pero lo repasaremos. Creo recordar que no me funcionaban tal cual las plantillas, así que os dejo las que tengo en funcionamiento. En el archivo encontrarás dos scripts python y dos plantillas. Los scripts debes copiarlos a la carpeta “scripts” de tu instalación Cacti. Los “templates” debes importarlos desde “Import templates” de la inferfaz web.

Con esto  ya sólo tendremos que añadir las gráficas correspondientes a la máquina que vamos a monitorizar, DSS Current Bandwidth  y DSS – Current Connection Count. Nos solicitará rellenar algunos datos:

  • Servidor: ip de la máquina con el Darwin.
  • Puerto: si no has cambiado nada, el 554.
  • Usuario: usuario de administración del servidor Darwin que hayas configurado al instalarlo.
  • Clave: la contraseña del usuario anterior.

Tendremos dos gráficas, número de conexiones y ancho de banda consumido.

No me hago responsable del gasto  en tráfico de datos con tu operadora que te suponga probar lo expuesto en este artículo 😛 . Otro día veremos como generar vídeos 3gpp bajo demanda a partir de casi cualquier otro formato.

23 comentarios en “Haciendo streaming de vídeos a móviles

  1. Pingback: meneame.net
  2. Pingback: celularion.com
  3. Muchas gracias por el articulo. Una pregunta, como hago para que que en lugar de poner videos, pueda poner a transmitir en vivo la informacion capturada por una camara ip, ejemplo en una almacen y asi, se pueda ver en tiempo real en el movil ??

  4. Necesitas codificar la señal en vivo y enviarla al DSS para que la transmita, yo lo hago con VLC.

    El VLC toma la entrada en vivo y la transcodifica, luego haces un stream al host donde tienes el DSS y guardas el archivo sdp en la carpeta movies.

    Finalmente desde el movil accedes (con un link en una pagina o algo asi) a rtsp://host_del_dss/archivo.sdp

    Espero te sirva al menos para empezar a investigar un poco mas 😉

    Saludos

  5. Bueno yo soy principiante en eso del video streaming, lo que lei me pareció superinteresante pero antes de hacerlo a un movil deseo que se vea en tv puedo usar el mismo servidor darwin segun se, pero no se que ventajas y desventajas tenga manejar java tv api o freedom for media in java por favor asesorenme se los agradeceria muchisisismo

    Saludos

  6. me gusto mucho el articulo. quisiera saber si al utilizar cacti para monitorizar dos servidores de streaming(darwin y helix) de las graficas observadas saber cual es el mejor y elegir solo uno.
    me gustaria saber con que graficas uno sabe eso.
    los clientes en mi caso poueden ser portatiles o celulares

  7. Hola Luz,

    No acabo de entender exactamente la información que necesitas.
    La elección entre darwin o helix no te la van a dar las gráficas, éstas sólo muestran información estadísticas de usuarios que acceden y ancho de banda que consume el servidor.
    Tu elección debe basarse más en cual se adapta más a tus necesidades.

  8. Buenas Osus

    Necesito hacer streaming de videos mp4 para poder ser vistos desde dispositivos móbiles, por lo que ya instale en mi servidor el darwin, pero al tratar de reproducir los videos en Real Player para probar solo me reproduce el audio del video. Los videos que necesito reproducir son videos mp4 ya grabados, por el momento estoy utilizando los ejemplos que vienen en el darwing.

    Alguna idea?

    De antemano muchas gracias por cualquier ayuda que pueda darme.

  9. Hola Alexander,
    No sabría decirte qué ocurre.
    Si descargas los vídeos a tu teléfono. ¿se ven bien? es decir, sin streaming, teniéndolos en la memoria del teléfono.

  10. tengo una dauda…..para utilizar el cacti debe ser instalado en el mismo pc del servidor darwin o cualquier otro pc? perdon la ignorancia pero soy nueva todo este tema

  11. Lo primero que debemos hacer será habilitar el acceso remoto desde la IP de nuestro monitor Cacti a la consola de administración del servidor, el “remote admin”.
    respecto a lo alnterior que dijo……abri mi el archivo /etc/streaming/streamingserver.xml de mi servidor darwin y esta en blanco :S……………help me

  12. AYUDA!!!!!!!!!!!! no entiendo la parte de habilitar el acceso remoto :s… el archivo /etc/streaming/streamingserver.xml ESTA VACIO??? debo agregar el codigo que muestra ahi o como puedo hacer esto

  13. Hola Luz o Yessica.

    El mio no lo está, no puedo decirte mucho más.
    ¿Tienes el servidor instalado en esa ruta?
    ¿El archivo no existe o está vacío? No es lo mismo.

  14. Hola osus… el archivo si se encuentra en la ruta que mencionas pero se encuentra vacio… bueno debo decir que lo abro con un editor de texto supongo que si es?? pero igual esta vacio esto a que se debe???

  15. Hola yessika,

    No se porqué estás vacío, no te puedo ayudar.
    ¿Has probado a buscar archivos con ese nombre, por si estuviese en otro sitio? No se me ocurre otra cosa.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *