RTMP-HLS server
Última actualización
Última actualización
Para la práctica usaremos un servidor ubuntu con docker y crearemos un servidor de streaming en directo de vídeos con el objetivo de aprender el funcionamiento del protocolo RTMP y asentar los conocimiento sobre códecs y multimedia.
<Rellenar>
Visto esto, vayamos con la práctica!
En la documentación del hub puedes ver que también tienes la opción de descargar la imagen con alpine y una con el archivo de configuración de nginx personalizable.
Antes de empezar, deberemos tener en cuenta que el formato de salida FLV del comando para el contenedor solo es compatible con los siguientes códecs de vídeo:
H.264 (AVC o MPEG-4)
VP6
Sorenson Spark
H.263
En el caso de usar otro códec de vídeo puedes tener un error tal que este:
Para evitar este error, primeramente observa que códec de vídeo tiene el video descargado con:
Y luego, conviértelo:
Una vez tenemos el vídeo disponible, como ya hemos visto antes, deberemos enviar el flujo multimedia, para ello enviaremos el archivo con ffmpeg al formato de salida flv dentro del servidor.
Explicación de los parámetros utilizados:
-re
: Indica a ffmpeg
que lea la entrada a velocidad de reproducción en tiempo real.
-stream_loop -1
: continuará haciendo un bucle del archivo una vez que el flujo alcance el final. Si obvias este parámetro o lo pones a 0
, el video se reproducirá una sola vez.
-i /ruta/al/archivo_de_video.mp4
: Especifica la ruta al archivo de video que deseas transmitir.
-c:v libx264 -preset veryfast -tune zerolatency -pix_fmt yuv420p
: Configuración de video para codificar utilizando el códec H.264 con ajustes rápidos para baja latencia y formato de píxeles yuv420p.
-c:a aac -ar 44100 -ac 2
: Configuración de audio para codificar utilizando el códec AAC con frecuencia de muestreo de 44100 Hz y 2 canales de audio.
-f flv
: Especifica el formato de salida como FLV (Flash Video), que es compatible con la transmisión RTMP.
rtmp://localhost:1935/live/<clave>
: URL del servidor RTMP donde se enviará el flujo de video/audio. Para la <clave>
invéntate un nombre como identificación.
Pondremos el flujo a funcionar en modo local pero se podrá acceder desde el exterior a través de la IP del servidor. De hecho, este método es más rápido a nivel de red que usar la IP.
Por ejemplo:
Una vez instalado, accede a Medio> Abrir ubicación de red
La URL que deberás poner será la siguiente:
Puede tardar un tiempo en funcionar el vídeo, ten paciencia.
Adicionalmente, para revisar información sobre usuarios conectados en streaming:
(...)
Using provided web players:
The provided demo players assume the stream-key is called test
and the player is opened in localhost.
To play RTMP content (requires Flash): http://localhost:8080/players/rtmp.html
To play HLS content: http://localhost:8080/players/hls.html
To play HLS content using hls.js library: http://localhost:8080/players/hls_hlsjs.html
To play DASH content: http://localhost:8080/players/dash.html
To play RTMP and HLS contents on the same page: http://localhost:8080/players/rtmp_hls.html
Webgrafía
Obviamente para la instalación requieres tener instalado docker, si no lo tienes aún revísate .
Para instalar el contenedor simplemente descarga y activa la :
Este contenedor viene con varios reproductores web ya instalados (basados en y ) dentro de/usr/local/nginx/html/players
.
Instala VLC en tu ordenador host desde la .