100% encontró este documento útil (1 voto)
828 vistas4 páginas

Streaming Por RTMP Usando Nginx

Este documento describe cómo configurar un servidor de streaming mediante el protocolo RTMP utilizando el servidor web Nginx en Ubuntu. Explica los pasos para descargar e instalar Nginx y el módulo RTMP, compilar el código fuente, configurar el servicio para escuchar en el puerto 1935, y probar la transmisión de videos a un reproductor mediante una URL RTMP.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
828 vistas4 páginas

Streaming Por RTMP Usando Nginx

Este documento describe cómo configurar un servidor de streaming mediante el protocolo RTMP utilizando el servidor web Nginx en Ubuntu. Explica los pasos para descargar e instalar Nginx y el módulo RTMP, compilar el código fuente, configurar el servicio para escuchar en el puerto 1935, y probar la transmisión de videos a un reproductor mediante una URL RTMP.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Práctica: Creación de un servidor de

streaming mediante el protocolo RTMP


sobre Ubuntu, usando el servidor web
Nginx.

El protocolo de mensajería en tiempo real (RTMP) fue desarrollado por Macromedia como un
método para transferir datos, audio y vídeo para su propia tecnología Flash. Macromedia fue
adquirida posteriormente por Adobe, y a partir de ese momento la especificación del protocolo
ha sido parcialmente puesta a disposición de otros fabricantes. Esto ha traído consigo que la
tecnología del protocolo RTMP sea utilizada por un gran número de fabricantes, siendo uno de
los protocolos de streaming más utilizados en la actualidad.

Por otra parte, Nginx (pronunciado en inglés “engine X”) es un servidor web/proxy inverso ligero de
alto rendimiento y un proxy para protocolos de correo electrónico (IMAP/POP3).
Es software libre y de código abierto, licenciado bajo la Licencia BSD simplificada; también existe
una versión comercial distribuida bajo el nombre de nginx plus. Es multiplataforma, por lo que corre
en sistemas tipo Unix (GNU/Linux, BSD, Solaris, Mac OS X, etc.) y Windows.
Nginx es usado por una larga lista de sitios web conocidos,
como: WordPress, Netflix, Hulu, GitHub, Ohloh, SourceForge, TorrentReactor y partes de Facebook
(como el servidor de descarga de archivos zip pesados). En el siguiente gráfico se aprecia el alto
porcentaje de uso de este servidor web a nivel mundial de internet (Enero de 2018):

En esta práctica montaremos un servidor multimedia utilizando el servidor web Nginx con
RTMP sobre Linux Ubuntu.

Preparación, compilación e instalación de Nginx y el módulo


RTMP para Nginx
Nginx-RTMP es un módulo adicional del servidor web Nginx que se utiliza para transmisión de
flujos multimedia (streaming) tanto de vídeo como de audio, usando el protocolo RTMP. Este
módulo no viene preempaquetado para ser instalado por el sistema operativo, lo que significa
que tendremos que compilar Nginx a partir de su código fuente. Para ello escribiremos en la
máquina Ubuntu la siguiente línea de comandos:

sudo apt-get install build-essential libpcre3 libpcre3-dev


libssl-dev unzip

Esto se llevará algún tiempo. Con esta línea instalamos lo necesario para poder realizar la
compilación del código fuente y la creación de los correspondientes paquetes.

El siguiente paso es obtener el código fuente de Nginx. En esta práctica usaremos la versión
1.8.1. Para versiones más recientes el procedimiento es análogo.

1
Entonces haremos:

mkdir nginx

cd nginx

wget http://nginx.org/download/nginx-1.8.1.tar.gz

tar -zxvf nginx-1.8.1.tar.gz

Ahora necesitaremos el código fuente para el módulo Nginx-RTMP, el cual nos lo descargamos
con las siguientes órdenes:

wget https://github.com/arut/nginx-rtmp-
module/archive/master.zip

unzip master.zip

En este punto dispondremos de un directorio llamado nginx-1.8.1 que contiene el código fuente
de Nginx, y otro directorio denominado nginx-rtmp-module-master que contiene el código
fuente del módulo Nginx-RTMP. El siguiente paso es reconfigurar el código fuente de Nginx
para ser compilado junto con el módulo Nginx-RTMP, mediante:

cd nginx-1.8.1

./configure --with-http_ssl_module --add-module=../nginx-rtmp-


module-master

Al ejecutar la orden se verá cierta cantidad de texto en scroll en pantalla. Una vez que finalice,
se lleva a cabo la compilación y la instalación de Nginx con estas dos líneas de comando:

make

sudo make install

Llegados a este punto, Nginx quedará instalado en la carpeta /usr/local/nginx. Para comprobar
el funcionamiento, activamos el servicio web de Nginx:

sudo /usr/local/nginx/sbin/nginx

Si la instalación ha sido correcta, se puede obtener la página de prueba de Nginx si utilizamos


un navegador web y nos conectamos a la IP del servidor Ubuntu donde hemos realizado la
instalación.

Para parar Nginx, el comando para detener el servicio es:

sudo /usr/local/nginx/sbin/nginx -s stop

2
Configuración del servicio.
El siguiente paso es escribir las líneas necesarias en el archivo nginx.conf para configurar el
módulo RTMP, el cual abriremos con el editor de texto que deseemos, en este caso nano:

sudo nano /usr/local/nginx/conf/nginx.conf

Nos dirigimos al final del fichero y copiamos las siguientes líneas, guardando finalmente el
archivo una vez las hayamos copiado:

rtmp {

server {

listen 1935;

chunk_size 8192;

application vod {

play /usr/local/nginx/rtmp;

Con las líneas escritas, lo que hemos establecido en la configuración es que Nginx escuche las
peticiones de streaming por el puesto 1935, el cual es el puerto por defecto para el protocolo
RTMP.

También hemos establecido como tamaño de los paquetes de transmisión del audio o video a
8192 bits cada uno, que es un tamaño estándar adecuado.

Después hemos creado una “aplicación” llamada vod para vídeo a demanda (video on
demand). Se pueden tener tantas “aplicaciones” como se quiera, cada una con un nombre
distinto.

Como directorio donde se ubican los archivos de vídeo a transmitir hemos especificado la
carpeta /usr/local/nginx/rtmp Esta carpeta no existe, por lo cual hay que crearla e introducir los
archivos de video correspondientes, los cuales solamente pueden tener los formatos .mp4 o
.flv, que son los únicos formatos servidos por el módulo Nginx-RTMP:

sudo mkdir /usr/local/nginx/rtmp

Lo siguiente es volver a iniciar el servicio de Nginx, para que adquiera la configuración que
hemos cambiado:

sudo /usr/local/nginx/sbin/nginx

3
Prueba.
Para probar el funcionamiento, ejecutamos el reproductor multimedia VLC y seleccionamos la
opción Medio -> Abrir ubicación de red, escribiendo la URL del vídeo a transmitir mediante
streaming.

Dicha URL comenzará por rtmp:// para comunicar a VLC qué protocolo de streaming utilizar,
seguido del nombre de dominio o dirección IP del servidor Ubuntu, después el nombre de la
“aplicación” y finalmente el nombre del archivo de vídeo a transmitir. Por ejemplo:

rtmp://ipdelservidor/vod/test.mp4

rtmp://ipdelservidor/vod/test.flv

También podría gustarte