Instal·lant Nginx i Nginx-RTMP
Instal·lant FFmpeg
Configuració de Nginx-RTMP i FFmpeg
Nota de seguretat
Configuració del programari per treballar amb Nginx-RTMP
RTMP és ideal per mostrar contingut en directe. Quan RTMP es combina amb FFmpeg, els fluxos es poden convertir en diverses qualitats. Vultr és ideal per a aquestes aplicacions, ja que ofereixen un rendiment de CPU ràpid i dedicat. La xarxa global de Vultr també garanteix que podeu oferir contingut en directe d'alta qualitat amb un retard mínim. Comencem!
Instal·lant Nginx i Nginx-RTMP
Instal·leu les eines necessàries per compilar Nginx i Nginx-RTMP des de la font.
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
Feu un directori de treball i canvieu-hi.
mkdir ~/working
cd ~/working
Baixeu la font Nginx i Nginx-RTMP.
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Instal·leu el paquet Unzip.
sudo apt-get install unzip
Extraieu la font Nginx i Nginx-RTMP.
tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip
Canvia al directori Nginx.
cd nginx-1.7.5
Afegiu mòduls amb els quals es compilarà Nginx. Nginx-RTMP està inclòs.
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Compileu i instal·leu Nginx amb Nginx-RTMP.
make
sudo make install
Instal·leu els scripts d'inici de Nginx.
sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults
Inicieu i atureu Nginx per generar fitxers de configuració.
sudo service nginx start
sudo service nginx stop
Instal·lant FFmpeg
Afegiu el PPA FFmpeg.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
Actualitzeu les llistes de paquets.
sudo apt-get update
Instal·leu FFmpeg.
sudo apt-get install ffmpeg
Note:
The apt-add-repository command may not be installed in some cases. To install it run sudo apt-get install software-properties-common.
Configuració de Nginx-RTMP i FFmpeg
Obriu el fitxer de configuració de Nginx.
sudo nano /usr/local/nginx/conf/nginx.conf
Afegiu el següent.
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
}
application live360p {
live on;
record off;
}
}
}
Després d'haver afegit l'anterior, podeu personalitzar la configuració, com ara la taxa de bits de vídeo, la taxa de bits d'àudio i la resolució. Aquests canvis només s'aplicaran al flux de qualitat inferior. Per afegir més qualitats, copieu i enganxeu la línia exec ffmpeg i canvieu la configuració. També haureu de crear una aplicació nova. Podeu fer-ho copiant i enganxant l'exemple de live360 que s'ha inclòs. No oblideu actualitzar la línia exec ffmpeg amb l'adreça de la nova aplicació. Podeu fer-ho canviant l'adreça RTMP final a la línia exec ffmpeg.
Note:
Changing the value after -b:v will change the video bitrate. This is measured in kilobits per second.
Changing the value after -b:a will change the audio bitrate. This is measured in kilobits per second.
Changing the value after -s will change the resolution.
Deseu el fitxer prement Control i X junts. Reinicieu Nginx.
sudo service nginx restart
Note:
For best performance, each stream being converted should have its own CPU core. For example two qualities, 360P and 480P are being created from a 720P stream. A Vultr instance with at least two CPU cores should be used.
Nota de seguretat
Si utilitzeu un tallafoc, haureu d'assegurar-vos que TCP 1935 està permès.
La configuració actual permet que qualsevol pugui reproduir al vostre servidor. Podem solucionar-ho només permetent a determinades adreces IP el permís de publicació. Obriu la configuració de Nginx.
sudo nano /usr/local/nginx/conf/nginx.conf
Busca les següents línies.
live on;
record off;
Afegiu el següent a cada conjunt de les línies anteriors. Canvieu 0.0.0.0 a la vostra adreça IP.
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
Ara la configuració hauria de semblar a aquesta.
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
}
application live360p {
live on;
record off;
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
}
}
}
Deseu el fitxer prement Control i X junts. Reinicieu Nginx.
sudo service nginx restart
Configuració del programari per treballar amb Nginx-RTMP
Les aplicacions de streaming solen tenir dos camps per a la informació de connexió. El primer camp sol ser per a la informació del servidor i el segon camp sol ser per al nom o la clau del flux. Es mostra la informació que heu de col·locar a cada camp. El nom o la clau del flux es pot definir amb qualsevol cosa.
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set
Per veure les reproduccions, obriu els enllaços següents en un reproductor que admeti RTMP.
rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set
Configurar un reproductor per mostrar vídeo en directe en un lloc web està fora de l'abast d'aquesta guia. La cerca del terme "reproductor web RTMP" us pot ajudar.