Entonces, desea transmitir sus juegos o tal vez una cámara web, pero no le gustan los servicios como youtube o twitch. O tal vez le preocupa la privacidad o simplemente desea tener más control sobre su contenido. En este artículo te mostraré cómo crear un servidor de streaming en FreeBSD, con Nginx, usando el protocolo RTMP.
Paso uno:instalar Nginx
Afortunadamente, el puerto Nginx incluye un módulo que implementa el protocolo RTMP para transmitir audio y video a través de Internet. Para instalar el servidor Nginx, ejecute:
[gonz@gonz ~]$ su -
Password:
[root@gonz ~]# cd /usr/ports/www/nginx
[root@gonz /usr/ports/www/nginx]# make config install clean
En la pantalla de configuración del puerto, desplácese hacia abajo y seleccione la opción RTMP:
Unos minutos más tarde, se completará la compilación y la instalación:
Paso 2:configurar Nginx
2.a:directorio Webroot
Necesitamos un directorio webroot desde donde Nginx transmitirá nuestros contenidos, no me siento muy creativo, así que llamaré al mío simplemente "en vivo":
[root@gonz ~]# mkdir /usr/local/www/live
[root@gonz ~]# chown www:www /usr/local/www/live/
2.b:Archivos de configuración
Edite el archivo /usr/local/etc/nginx/nginx.conf y agregue las siguientes líneas en la parte superior:
load_module /usr/local/libexec/nginx/ngx_stream_module.so; load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;
Con esas líneas, nginx cargará los módulos necesarios para la transmisión.
Si está utilizando el editor ee, presione ctrl-y para buscar "ubicación /" y cambie la ruta webroot a la creada anteriormente:
location / {
root /usr/local/www/live;
}
En la parte inferior del archivo, agregue la configuración de RTMP:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
2.c:habilitar e iniciar nginx
Guarde los cambios en el archivo nginx.conf y ejecute lo siguiente:
[root@gonz ~]# /usr/local/etc/rc.d/nginx enable
nginx enabled in /etc/rc.conf
[root@gonz ~]# /usr/local/etc/rc.d/nginx start
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.
Paso 3:configurar el software de transmisión
Con Nginx listo para aceptar transmisiones de video, necesitamos configurar el software de transmisión. Cuando estaba aprendiendo a crear un servidor de transmisión, leí muchos tutoriales (muy enfocados en Linux, particularmente en Ubuntu) y para este paso todos recomendaron OBS (Open Broadcaster Software) Studio.
Vaya al sitio web para descargar y encontrar las instrucciones adecuadas para su sistema operativo de escritorio. Tengo Gentoo Linux en esta computadora portátil y mis instrucciones no oficiales para instalarlo son tan simples como:
# emerge media-video/obs-studio
Cuando inicie OBS, habrá un asistente por primera vez:
El asistente intentará ayudarlo a determinar la mejor configuración según su computadora. La siguiente pantalla es sobre la resolución y la siguiente es importante:
Elija un servicio personalizado y en el servidor complete con RTMP://IP.or.FQDN of your nginx/live
. La clave de flujo es opcional.
Prueba tu transmisión
Vaya a la parte inferior izquierda de la ventana OBS y agregue una fuente haciendo clic en el signo +:
Elegí capturar una ventana xterm. Ahora, con todo configurado, podemos comenzar a enviar nuestra transmisión al servidor. En los controles en la parte inferior derecha, haga clic en Iniciar transmisión, debería ver un bloque verde en la barra de estado si todo es correcto:
Último paso:ver tu transmisión
El propósito de este tutorial es que puedas transmitir a algún lugar. En algún lugar de este ejemplo será la misma PC que está transmitiendo, en mi caso estoy accediendo con VLC. La URL que necesito abrir es RTMP://IP.or.FQDN.of.your nginx/live
/SuperSecretKey
y esto es todo:
Esta PC es un poco lenta, así que en mi xterm acabo de ejecutar el juego de arte ascii alienwave para tener algo que mostrar.
Y así es como creé un servidor de transmisión en FreeBSD solo por el placer de aprender algo nuevo.