¿Tu transmisión en vivo se está cortando cada vez? Si es así, necesitarás encontrar una forma confiable de alojar tu transmisión. ¡Pero si no puedes permitirte opciones costosas, no te preocupes! NGINX RTMP vendrá al rescate. NGINX RTMP es un módulo de código abierto confiable, así que ya sabes lo que eso significa: ¡es GRATIS!
En este tutorial, aprenderás cómo configurar un servidor NGINX RTMP para que puedas establecer una transmisión en vivo confiable con tu sitio web.
¿Listo? ¡Sigue leyendo y comienza a configurar tu transmisión en vivo!
Requisitos previos
Este tutorial será una demostración práctica. Si deseas seguirlo, asegúrate de tener lo siguiente:
- A Linux server – This demo uses Ubuntu 20.04 LTS, but you can use any other Linux distribution with NGINX.
- NGINX instalado en el servidor Linux.
- A non-root user with sudo privileges.
- Recursos mínimos necesarios para ejecutar un servidor de transmisión en vivo: 2 GB de RAM, 2 núcleos de CPU y 20 GB de HDD.
Estos valores son solo sugerencias. Los valores exactos dependen de tus necesidades de tráfico reales. Cuanto más tráfico tengas, más potentes serán los servidores que necesitarás para alojar y transmitir tu video en vivo. En un entorno de desarrollo, un servidor NGINX RTMP con 2 CPU y 2 GB de RAM es suficiente para realizar pruebas.
Configurando un Servidor RTMP
Ahora que los requisitos previos están fuera del camino, puedes pasar a instalar y configurar tu servidor RTMP. Primero, instalarás un módulo NGINX para convertir tu servidor NGINX en un servidor RTMP, luego configurarás el archivo de configuración de NGINX para habilitar transmisiones en vivo para los usuarios.
1. Abre tu terminal y ejecuta el comando apt update
para actualizar todos tus paquetes. Este comando sincroniza tu base de datos de paquetes con la última base de datos de Ubuntu.

2. A continuación, ejecuta el siguiente comando para instalar un servidor RTMP en tu servidor Linux.
El módulo libnginx-mod-rtmp
es un módulo NGINX que convierte tu servidor NGINX en un servidor RTMP. Este módulo permite que NGINX se comunique con el reproductor de Adobe Flash para que puedas transmitir tu video o audio en vivo, y es oficialmente compatible con su equipo de desarrollo.

3. Abre el archivo /etc/nginx/nginx.conf en tu editor favorito para configurar tu programa en vivo RTMP. El archivo nginx.conf es un archivo de configuración de NGINX, que contiene varias directivas o bloques para definir el comportamiento del servicio de NGINX.
4. Finalmente, llena el archivo nginx.conf con el siguiente código, guarda los cambios y sale del editor.
El código a continuación indica a NGINX que actúe como un servidor RTMP y habilite transmisiones en vivo para tus usuarios.
Securizando la Red mediante la Configuración de un Cortafuegos
Ya has configurado tu servidor NGINX RTMP, pero necesitarás asegurar tu red y controlar el flujo de tráfico. ¿Cómo? Configurando un cortafuegos, Uncomplicated Firewall (UFW), que es el cortafuegos predeterminado en Ubuntu.
Si colocas tu servidor NGINX RTMP detrás de un cortafuegos, deberás permitir que el puerto del servidor NGINX RTMP esté abierto. Dado que has configurado tu servidor NGINX RTMP para escuchar en el puerto 1935
, permitirás que este puerto esté accesible a través de tu cortafuegos.
1. Ejecuta el siguiente comando para agregar una regla de cortafuegos que abra el puerto 1935
en tu cortafuegos. Esta regla de cortafuegos permite que el puerto 1935
de tu servidor NGINX RTMP sea accesible para todas las solicitudes entrantes y salientes.

2. A continuación, ejecuta el siguiente comando para desactivar y volver a habilitar tu cortafuegos. Este comando reinicia básicamente el cortafuegos para que cualquier cambio surta efecto.
3. Finalmente, ejecuta el siguiente comando para verificar el estado de tu cortafuegos y comprobar si el puerto 1935
es accesible desde todas las direcciones IP (En cualquier lugar).

Transmisión de video usando FFmpeg
Tu servidor NFINX RTMP está listo, así que es hora de usar FFmpeg para crear un ejemplo de video y transmitirlo a través de tu servidor NGINX RTMP. FFmpeg es una solución completa para grabar, convertir y transmitir audio y video en muchas aplicaciones diferentes como VLC, OMXPlayer, VobSub, entre otras.
Estarás probando la transmisión de video en tu servidor, y puedes usar cualquier video que sea pequeño en tamaño para la transmisión.
1. Ejecute el comando apt install
a continuación para instalar las dependencias necesarias para que FFmpeg funcione correctamente.
El siguiente comando instala lo siguiente:
libpcre3
– Una biblioteca de expresiones regulares utilizada por la caja de herramientas de ffmpeg para ayudar a analizar y compilar expresiones regulares.libpcre3-dev
– Este paquete contiene los encabezados de desarrollo del paquete libpcre3.libssl-dev
– La biblioteca criptográfica OpenSSL utilizada para crear conexiones SSL/TLS en su servidor RTMP.zlib1g-dev
: La biblioteca zlib es una biblioteca de compresión y descompresión que acelera la transferencia de archivos de audio y video a través de Internet.

2. A continuación, ejecute el siguiente comando para instalar ffmpeg
en su servidor.

3. Por último, ejecute el comando ffmpeg
para realizar lo siguiente y crear un nuevo flujo en vivo:
- Lea la entrada (
re
) del archivo fuente (i
) a la velocidad de fotogramas original. Asegúrese de reemplazarvideo.mp4
con la ruta y el nombre de archivo de su video. - Copie el formato de video literalmente (
c:v copy
), y codifique el audio con el códec AAC (c:a aac
). - Establezca la frecuencia de muestreo de audio en 44100 Hz (
ar 44100
). Si la frecuencia de muestreo de su video es menor que este valor (44100 Hz), FFmpeg realiza interpolación para aumentar la frecuencia de muestreo. - Establezca los canales de audio a un canal (mono) (
ac 1
), y el formato de video que FFmpeg transmitirá (-f flv
). - Configure su programa en vivo RTMP (
rtmp://localhost/live/streamname.flv
) que configuró en la sección “Configuración de un servidor RTMP” (paso cuatro). Puede cambiarstreamname.flv
por el nombre que prefiera.
Como se muestra a continuación, el comando ffmpeg
imprime los cuadros por segundo que detecta, el bitrate, y los fps del flujo en vivo RTMP recién creado.

Conclusión
En este tutorial, has aprendido cómo configurar tu servidor NGINX RTMP y habilitar transmisiones en vivo en tu servidor modificando el archivo de configuración de NGINX. También has abordado la configuración de una transmisión de video en vivo utilizando la herramienta FFmpeg a través de tu servidor NGINX RTMP.
Acabas de darte cuenta de que configurar una transmisión en vivo no tiene por qué costarte cada centavo. En este punto, ¿por qué no integrar tu transmisión en tu página web utilizando HTML5 y el elemento <video>? O configurar OBS Studio para tu transmisión RTMP?