Cómo configurar Nginx RTMP

Cómo configurar Nginx RTMP
Durante la última década, la transmisión en vivo se ha vuelto cada vez más popular a medida que los usuarios se comunican con familiares y amigos, miran contenido en línea y realizan operaciones comerciales. Aunque hay servicios y plataformas populares para realizar transmisiones en vivo, puede ser un desafío y costoso establecer una sesión privada.

Este tutorial busca resolver eso mostrándole cómo configurar un servidor de transmisión en vivo personal que aproveche NGINX, un servidor web poderoso y liviano y proxy inverso y el protocolo RTMP.

Antes de continuar, asegúrese:

  • Estás ejecutando Ubuntu o Debian Server
  • Tener acceso a su servidor a través de SSH
  • Usuarios raíz o privilegios de sudo

Empecemos.

Que es nginx

Como se mencionó anteriormente, NGINX es un servidor web de código abierto rápido y ligero y proxy inverso utilizado para servir sitios web estáticos simples o aplicaciones masivas. Nginx es un servidor web de alto rendimiento con una velocidad y seguridad increíbles. Gracias a su naturaleza ligera, es una opción muy eficiente para los servicios de transmisión y el tráfico con tráfico masivo.

Puede obtener más información sobre NGINX del recurso proporcionado a continuación:

https: // nginx.org/en/docs/

¿Qué es Nginx RTMP?

Nginx RTMP es un módulo de código abierto y potente para el servidor web NGINX. Habilita el protocolo RTMP, la transmisión en vivo HTTP (HLS) y la transmisión adaptativa dinámica a través de HTTP (Dash).

Puede obtener más información sobre HLS y Dash desde la página de recursos:

https: // www.marco de la nube.com/aprendizaje/video/what-is-mpeg-dash/

Ahora que sabe qué son Nginx y Nginx RTMP, configuremos el servidor:

Configurar en el servidor

El primer paso es obtener acceso al servidor. Asegúrese de que SSH en su servidor esté habilitado y tenga las claves agregadas para un inicio de sesión más fácil.

SSH [email protected]
Debian@streaming: ~ $

Una vez que tengamos acceso al servidor, podemos comenzar a instalar los paquetes y bibliotecas requeridos. Primero, asegúrese de que su servidor esté actualizado:

actualización de sudo apt-get
sudo apt -get actualización -y

Instalación del software requerido

Para configurar el servidor de transmisión, necesitaremos construir Nginx desde la fuente y habilitar el módulo RTMP. Para esto, utilizaremos los esencias de construcción y otros paquetes. Use el comando APT a continuación para instalar todas las dependencias.

sudo apt-get install -y construye libpcre3 libpcre3-dev libssl-dev git zlib1g-devev

El siguiente paso es compilar e instalar NGINX con el módulo RTMP habilitado. Para mantenerse organizado, cree un directorio para el proceso.

mkdir ~/make
CD ~/Make/

A continuación, clone el módulo Nginx-RTMP:

Git clon git: // github.com/arut/nginx-rtmp-módulo.git

Ahora necesitamos descargar nginx.

Dirígete a http: // nginx.org/en/descargar.html y seleccione su opción de descarga.

wget http: // nginx.org/descargar/nginx-1.19.8.alquitrán.GZ
tar xzf nginx-1.19.8.alquitrán.GZ
CD nginx-1.19.8

El paso final en esta sección es compilar NGINX con el módulo RMTP habilitado. Use los comandos a continuación:

sudo ./Configurar-with-http_ssl_module --add-module = ... /nginx-rtmp-module
sudo haz
sudo haz instalar

Configuración de transmisión en vivo

Para habilitar el soporte RTMP, necesitamos editar el archivo de configuración de Nginx y especificar el bloque RTMP.

sudo nano/usr/local/nginx/conf/nginx.confusión

Ingrese el bloque de soporte RTMP como:

RTMP
servidor
escucha 1935;
Ping 30s;
Aplicación en vivo
vivir;
entrelazarse;
HLS ON;
hls_path /tmp /hls;
HLS_SYNC 100MS;
HLS_FRAGMENT 15S;



http
APLICACIÓN DE LA APLICACIÓN/OCTETA DEFORT_TYPE;
servidor
Escucha 80;
Ubicación /TV
raíz /tmp /hls;


tipos
Aplicación/VND.manzana.MPEGURL M3U8;
video/mp2t ts;
texto/html html;

En la configuración anterior, habilitamos el módulo RTMP y HLS. Considere la documentación para aprender a habilitar Dash.

Una vez que tenga la configuración, guarde el archivo e inicie el servicio NGINX.

sudo/usr/local/nginx/sbin/nginx

Comience a transmitir

Una vez que tenga todo configurado correctamente, puede comenzar a transmitirse usando ffmpeg-es el más fácil. También puede configurar otras herramientas como OBS Studio, pero no lo cubriré en este tutorial.

Use el comando ffmpeg como:

sudo ffmpeg -re -i muestra -mp4 -archivo.MP4 -C COPY -F HLS RTMP: // localhost/live/stream

Reproducir la transmisión usando el reproductor multimedia FFPlay o VLC en el recurso.

ffplay rtmp: // ip/live/stream

Una vez que tenga la transmisión en ejecución, puede exponer el servicio a una red externa.

NOTA: Asegúrese de haber asegurado su servidor antes de permitir el acceso público.

Conclusión

Este tutorial ha cubierto cómo configurar un servidor de transmisión utilizando NGINX y el módulo NGINX RTMP. Tenga en cuenta que hay muchos engranajes involucrados en la configuración de un servicio de transmisión, y puede personalizarlo de acuerdo con sus necesidades.

Considere los siguientes recursos para explorar más.

  • https: // ffmpeg.org/ffmpeg.html
  • https: // ffmpeg.org/ffplay.html
  • https: // ffmpeg.org/ffmpeg-formats.html
  • https: // obsproject.com/docs/
  • https: // wiki.videolán.org/documentación: streaming_howto