Streaming de vídeo H.264 desde un navegador web con Wowza

El streaming de vídeo nos proporciona que un evento en directo pueda ser visto por miles de personas simultáneamente, como por ejemplo desde una cámara IP.

Lo más interesante es que el acceso a dicho vídeo sea de manera sencilla, como por ejemplo visualizar el streaming de vídeo desde un navegador web a través de una aplicación Flash o HTML 5.

A continuación vamos a explicar como poner en marcha el servidor Wowza y como leer desde un visor de vídeo Flash para web el streaming, en nuestro caso JWPlayer.

 

Servidor de streaming de vídeo Wowza

Este software proporciona el servicio de streaming de vídeo bajo demanda con un bajo coste de licencia con medios como Flash u otros reproductores como VLC.

Más información acerca del coste de licencia y del servidor de streaming lo podéis encontrar en su página web http://www.wowza.com

Instalando Wowza en Linux

La instalación es bastante sencilla, en primer lugar bajamos el paquete y lo instalamos, substituyendo la extensión XXX por la distribución de paquetes de nuestra versión de Linux. Durante la instalación nos pedirá el número de licencia, existe una versión de prueba de 30 días y otras de pago que van desde la licencia por días de uso, mensual o permanente:

sudo chmod 777 WowzaMediaServer-3.1.2.XXX 
sudo ./WowzaMediaServer-3.1.2.XXX

Encenderemos y pararemos el servidor con:

cd /usr/local/WowzaMediaServer/bin 
./startup.sh

y pararemos el servidor con

cd /usr/local/WowzaMediaServer/bin 
./shutdown.sh

Corriendo Wowza desde Amazon EC2

Una solución sencilla para desplegar el servidor online es hacer uso de una imagen AMI con el servidor preinstalado. En función del número de usuarios que esperemos que hagan uso del servicio deberemos hacer uso de de un tipo de instancia u otra. Podemos encontrar más información en Wowza Amazon EC2 Support center

 

Streaming de vídeo de una cámara IP (RTP / RTSP)

Crearemos las carpetas

/usr/local/WowzaMediaServer/applications/miStreaming
/usr/local/WowzaMediaServer/conf/miStreaming

y copiaremos el archivo

/usr/local/WowzaMediaServer/conf/Application.xml

a la carpeta

/usr/local/WowzaMediaServer/conf/miStreaming/Application.xml

haciendo los siguientes cambios en el archivo XML:

  1. <StreamType>live</StreamType>
  2. <HTTPStreamers>cupertinostreaming, smoothstreaming, sanjosestreaming</HTTPStreamers>
    
  3. <LiveStreamPacketizers>cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer</LiveStreamPacketizers>
    
  4. <PlayMethod>none</PlayMethod>
  5. <Property>
        <Name>forceInterleaved</Name>
        <Value>true</Value>
        <Type>Boolean</Type>
    </Property>
    

Ahora configuraremos la fuente de streaming y de emisón de ésta:

  1. Crear el archivo /usr/local/WowzaMediaServer/content/miCamara.stream y poner la ruta fuente del RTP / RTSP, por ejemplo rtsp://192.168.1.200/vod/mp4:camara.mov
  2. Editar el archivo /usr/local/WowzaMediaServer/conf/admin.password y añadir un usuario y contraseña para el gestor de Wowza, por ejemplo:
    usuario clave
  3. Opcional: aseguraremos la contraseña (se guarda en texto plano) dándole permisos de sólo lectura al propietario del archivo admin.password mediante:
    chmod 700 /usr/local/WowzaMediaServer/conf/admin.password
  4. Iniciar Wowza con el comando:
    cd /usr/local/WowzaMediaServer/bin 
    ./startup.sh
  5. Abriremos un navegador e iremos al gestor http://ip-servidor-wowza:8086/streammanager introduciendo el usuario y contraseña elegido previamente
  6. Hacer click debajo de miStreaming en [start-receiving-stream]
  7. Seleccionar MediaCaster Type: rtp
  8. Dentro del campo Stream Name, introduciremos el nombre del archivo de streaming, en nuestro caso miCamara.stream
  9. Hacemos click en OK para comenzar el re-streaming

Para probar que la instalación era correcta, abriremos el archivo /usr/local/WowzaMediaServer/examples/LiveVideoStreaming/client/live.html que mostrará un reproductor de vídeo. Introduciremos los siguientes datos para conectarnos al stream, rellenando el campo Server

rtmp://ip-servidor-wowza/miStreaming

y el campo Stream

miCamara.stream

haciendo click en el campo Play

Si no tenemos cámara IP podemos utilizar el fuente RTSP que podemos encontrar en http://www.wowza.com/html/mobile.html

 

Reproduciendo streaming de vídeo en un navegador web con JWPlayer

El anterior reproductor está bastante bien, pero no nos permite configurar internamente los datos para que la conexión sea transparente al usuario. Para ello vamos a hacer uso de JWPlayer, un reproductor libre que se puede descargar desde http://www.longtailvideo.com/players. Descomprimiremos los archivos y donde estén los archivos JS crearemos un nuevo archivo HTML con el siguiente contenido:

<html>

<head><title>Reproduciendo Streaming de vídeo H.264 con Wowza y JWPlayer</title></head>

<body>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="jwplayer.js"></script>

<div id='container'>Cargando...</div>

<script type="text/javascript">
  var flashvars = {
    file:'miCamara.stream',
    streamer:'rtmp://ip-servidor-wowza/miStream'
  };

  swfobject.embedSWF('player.swf','container','480','270','9.0.115','false', flashvars,
                     {allowfullscreen:'true',allowscriptaccess:'always'},
                     {id:'jwplayer',name:'jwplayer'}
                    );
</script>
</body>
</html>

Es muy importante que este archivo sea llamado desde el navegador web a una URL contenida en un servidor web, como Apache, IIS, Lighthttpd, etc. ya que la configuración de seguridad de Flash no permite ejecutarlo como archivo local.

 

Fuentes

Parte de la guía de Wowza es una versión reducida de la documentación oficial http://www.wowza.com/forums/content.php?39

Comentarios

Comentario de Pablo - 08 de Marzo de 2013 - 04:56
Saludos! como lo puedo hacer con Windows server 2008? Saludos
Comentario de javier - 28 de Junio de 2014 - 08:28
Hola , quiero subir mas de 200 videos a mi web . Estan en mpg4 y pensan cada uno entre 500 y 800 mg . Seria mejor reducirlos ?? en ese caso a que formato para no perder calidad ? gracias.
Comentario de aukun - 02 de Abril de 2017 - 22:15
los puedes ripear con ffmpeg mirate los comandos linux para codificador mp4 basicamente puedes hacer pruebas con del tipo fps width height . primero encuentra algun video pequeño de 15 minutos para ir rapido piensa que depende d la calidad el ripeo te va a tardar mas o menos asi que prueba antes un video pequeño de las misma calidad i lo ripeas modificando fps width height i la parte del sonido tambien puede ponerle cuantos kb de video para cada segundo i cuantos kb/segundo de sonido. cuando des con la calidad que necesitas luego mediante bash que es lenguaje linux mediante for i in directoriodondetieneslosvideos/*.mp4 ; do ffmpeg [comandos ffmpeg] $i ${i/.mp4/.ripeado.mp4} ; done asi ripee las 2000 peliculas que tengo en el disco duro me tardo varios dias pero es automatico.
Ha habido un error en el envío
Comentario enviado. Será revisado por la moderación antes de ser publicado.

Deja tu comentario

Tu nombre:
Tu email:
Tu comentario: