Instalacija Nginxa i Nginx-RTMP
Instalacija FFmpeg
Konfiguriranje Nginx-RTMP i FFmpeg
Sigurnosna napomena
Konfiguriranje softvera za rad s Nginx-RTMP
RTMP je izvrstan za posluživanje sadržaja uživo. Kada je RTMP uparen s FFmpeg, streamovi se mogu pretvoriti u različite kvalitete. Vultr je izvrstan za ove aplikacije jer pružaju brze i namjenske CPU performanse. Vultrova globalna mreža također osigurava da možete isporučiti visokokvalitetni sadržaj uživo s minimalnim kašnjenjem. Započnimo!
Instalacija Nginxa i Nginx-RTMP
Instalirajte alate potrebne za prevođenje Nginxa i Nginx-RTMP iz izvora.
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
Napravite radni direktorij i prijeđite na njega.
mkdir ~/working
cd ~/working
Preuzmite Nginx i Nginx-RTMP izvor.
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Instalirajte Unzip paket.
sudo apt-get install unzip
Izdvojite Nginx i Nginx-RTMP izvor.
tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip
Prijeđite na Nginx direktorij.
cd nginx-1.7.5
Dodajte module s kojima će Nginx biti preveden. Nginx-RTMP je uključen.
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Prevedite i instalirajte Nginx s Nginx-RTMP.
make
sudo make install
Instalirajte Nginx init skripte.
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
Pokrenite i zaustavite Nginx za generiranje konfiguracijskih datoteka.
sudo service nginx start
sudo service nginx stop
Instalacija FFmpeg
Dodajte FFmpeg PPA.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
Ažurirajte popise paketa.
sudo apt-get update
Instalirajte 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.
Konfiguriranje Nginx-RTMP i FFmpeg
Otvorite Nginx konfiguracijsku datoteku.
sudo nano /usr/local/nginx/conf/nginx.conf
Dodajte sljedeće.
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;
}
}
}
Nakon što dodate gore navedeno, možete prilagoditi postavke kao što su brzina prijenosa videa, brzina prijenosa zvuka i razlučivost. Ove promjene će se primijeniti samo na stream niže kvalitete. Da biste dodali više kvaliteta, kopirajte i zalijepite redak exec ffmpeg i promijenite postavke. Također ćete morati izraditi novu aplikaciju. To možete učiniti kopiranjem i lijepljenjem primjera live360 koji je uključen. Nemojte zaboraviti ažurirati redak exec ffmpeg adresom nove aplikacije. To možete učiniti promjenom konačne RTMP adrese u retku 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.
Spremite datoteku pritiskom na Control i X zajedno. Ponovno pokrenite 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.
Sigurnosna napomena
Ako koristite vatrozid, morat ćete provjeriti je li TCP 1935 dopušten.
Trenutna konfiguracija svakome dopušta strujanje na vaš poslužitelj. To možemo popraviti tako da samo određenim IP adresama dopuštamo dopuštenje za objavljivanje. Otvorite konfiguraciju Nginxa.
sudo nano /usr/local/nginx/conf/nginx.conf
Potražite sljedeće retke.
live on;
record off;
Dodajte sljedeće u svaki skup gornjih redaka. Promijenite 0.0.0.0 u svoju IP adresu.
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
Konfiguracija bi sada trebala izgledati otprilike ovako.
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;
}
}
}
Spremite datoteku pritiskom na Control i X zajedno. Ponovno pokrenite Nginx.
sudo service nginx restart
Konfiguriranje softvera za rad s Nginx-RTMP
Streaming aplikacije obično imaju dva polja za informacije o vezi. Prvo polje je obično za informacije o poslužitelju, a drugo polje je obično za naziv ili ključ streama. Navedene su informacije koje trebate staviti u svako polje. Naziv ili ključ streama može se postaviti na bilo što.
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set
Za pregled streamova otvorite sljedeće veze u playeru koji podržava RTMP.
rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set
Postavljanje playera za prikazivanje videa uživo na web-mjestu je izvan dosega ovog vodiča. Pretraživanje pojma "RTMP web player" moglo bi vam pomoći.