Este tutorial busca resolver eso mostrándole cómo configurar un servidor de transmisión en vivo personal que aprovecha Nginx, un servidor web potente y liviano y un proxy inverso y el protocolo RTMP.
Antes de continuar, asegúrese de:
- Está ejecutando un servidor Ubuntu o Debian
- Tener acceso a su servidor a través de SSH
- Privilegios de usuario root o sudo
Empecemos.
¿Qué es Nginx?
Como se mencionó anteriormente, Nginx es un servidor web de código abierto rápido y ligero y un proxy inverso que se utiliza 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 liviana, es una opción muy eficiente para servicios de transmisión y tráfico con tráfico masivo.
Puede obtener más información sobre Nginx en el recurso que se proporciona a continuación:
https: // nginx.org / en / docs /
¿Qué es Nginx RTMP?
Nginx RTMP es un módulo potente y de código abierto para el servidor web Nginx. Habilita el protocolo RTMP, HTTP Live Streaming (HLS) y Dynamic Adaptive Streaming sobre HTTP (DASH).
Puede obtener más información sobre HLS y DASH en la página de recursos:
https: // www.nube.com / learning / video / what-is-mpeg-dash /
Ahora que sabe qué son Nginx y Nginx RTMP, permítanos configurar el servidor:
Configurar al servidor
El primer paso es acceder al servidor. Asegúrese de que SSH en su servidor esté habilitado y de que tenga las claves agregadas para facilitar el inicio de sesión.
ssh debian @ 34.73.160.42[correo electrónico protegido]: ~ $
Una vez que tenemos acceso al servidor, podemos comenzar a instalar los paquetes y bibliotecas requeridos. Primero, asegúrese de que su servidor esté actualizado:
sudo apt-get updatesudo apt-get upgrade -y
Instalación del software necesario
Para configurar el servidor de transmisión, necesitaremos compilar Nginx desde la fuente y habilitar el módulo RTMP. Para esto, usaremos build-essentials y otros paquetes. Use el comando apt a continuación para instalar todas las dependencias.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devEl siguiente paso es compilar e instalar Nginx con el módulo RTMP habilitado. Para mantenerse organizado, cree un directorio para el proceso.
mkdir ~ / Hacercd ~ / Hacer /
A continuación, clone el módulo nginx-RTMP:
git clon git: // github.com / arut / nginx-rtmp-module.gitAhora necesitamos descargar nginx.
Dirígete a http: // nginx.org / en / download.html y seleccione su opción de descarga.
wget http: // nginx.org / download / nginx-1.19.8.alquitrán.gzalquitrán xzf nginx-1.19.8.alquitrán.gz
cd nginx-1.19.8
El último paso de esta sección es compilar Nginx con el módulo RMTP habilitado. Utilice los siguientes comandos:
sudo ./ configure --with-http_ssl_module --add-module =… / nginx-rtmp-modulesudo hacer
sudo make install
Configuración de transmisión en vivo
Para habilitar el soporte RTMP, necesitamos editar el archivo de configuración nginx y especificar el bloque RTMP.
sudo nano / usr / local / nginx / conf / nginx.confIngrese el bloque de soporte de RTMP como:
rtmpservidor
escuchar 1935;
ping 30;
aplicación en vivo
vivir;
intercalar en;
hls encendido;
hls_path / tmp / hls;
hls_sync 100ms;
hls_fragment 15s;
http
tipo_predeterminado application / octet-stream;
servidor
escucha 80;
location / tv
root / 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 cómo habilitar DASH.
Una vez que tenga la configuración, guarde el archivo e inicie el servicio Nginx.
sudo / usr / local / nginx / sbin / nginxComenzar a transmitir
Una vez que tenga todo configurado correctamente, puede comenzar a transmitir usando FFmpeg, es lo más fácil. También puede configurar otras herramientas como OBS Studio, pero no lo cubriré en este tutorial.
Utilice el comando FFmpeg como:
sudo ffmpeg -re -i sample-mp4-file.mp4 -c copy -f hls rtmp: // localhost / live / streamReproduzca la transmisión usando FFplay o VLC Media Player en el recurso.
ffplay rtmp: // IP / live / streamUna 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 usando 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 según sus necesidades.
Considere los siguientes recursos para explorar más.
- https: // ffmpeg.org / ffmpeg.html
- https: // ffmpeg.org / ffplay.html
- https: // ffmpeg.org / ffmpeg-formatos.html
- https: // obsproject.com / docs /
- https: // wiki.videolan.org / Documentation: Streaming_HowTo