Az Nginx és az Nginx-RTMP telepítése
FFmpeg telepítése
Az Nginx-RTMP és az FFmpeg konfigurálása
Biztonsági megjegyzés
Szoftver konfigurálása az Nginx-RTMP használatához
Az RTMP kiválóan alkalmas élő tartalom kiszolgálására. Ha az RTMP és az FFmpeg párosítva van, az adatfolyamok különféle minőségekké alakíthatók. A Vultr nagyszerű ezekhez az alkalmazásokhoz, mivel gyors és dedikált CPU-teljesítményt biztosítanak. A Vultr globális hálózata azt is biztosítja, hogy minimális késleltetéssel tudjon kiváló minőségű élő tartalmat szállítani. Lássunk neki!
Az Nginx és az Nginx-RTMP telepítése
Telepítse az Nginx és az Nginx-RTMP forrásból történő fordításához szükséges eszközöket.
sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y
Hozzon létre egy munkakönyvtárat, és váltson rá.
mkdir ~/working
cd ~/working
Töltse le az Nginx és Nginx-RTMP forrásokat.
wget http://nginx.org/download/nginx-1.9.7.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Telepítse a kicsomagoló csomagot.
sudo yum install unzip
Bontsa ki az Nginx és Nginx-RTMP forrást.
tar -xvf nginx-1.9.7.tar.gz
unzip v1.2.1.zip
Váltson az Nginx könyvtárra.
cd nginx-1.9.7
Adjon hozzá modulokat az Nginx-be fordításhoz. Az Nginx-RTMP tartalmazza.
./configure --add-module=../nginx-rtmp-module-1.2.1/
Fordítsa le és telepítse az Nginx-et az Nginx-RTMP-vel.
make
sudo make install
Hozzon létre egy SystemD egységfájlt az Nginx számára.
sudo nano /usr/lib/systemd/system/nginx.service
Töltse fel a fájlt a következő tartalommal.
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
Indítsa el és engedélyezze az Nginx szolgáltatást.
sudo systemctl start nginx.service
Mondja meg a SystemD-nek, hogy indítsa el automatikusan az Nginx-szolgáltatásokat a rendszerindításkor.
systemctl enable nginx.service
FFmpeg telepítése
Telepítse epel-releaseés frissítse a rendszert.
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Telepítse a Nux adattárat.
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
Telepítse az FFmpeg-et és fejlesztői csomagjait.
sudo yum install ffmpeg ffmpeg-devel -y
Az Nginx-RTMP és az FFmpeg konfigurálása
Nyissa meg az Nginx konfigurációs fájlt.
sudo nano /usr/local/nginx/conf/nginx.conf
A konfigurációhoz csatolja a következőket.
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;
}
}
}
Miután hozzáadta a konfigurációs szöveget, testreszabhatja a beállításokat, például a videó bitsebességét, a hang bitsebességét és a felbontást. Ezek a változtatások csak a gyengébb minőségű adatfolyamra vonatkoznak. További minőségek hozzáadásához másolja ki és illessze be az exec FFmpeg sort, és módosítsa a beállításokat. Új alkalmazást is létre kell hoznia. Ezt a mellékelt live360 példa másolásával és beillesztésével teheti meg. Ne felejtse el frissíteni az exec FFmpeg sort az új alkalmazás címével. Ezt úgy teheti meg, hogy megváltoztatja a végső RTMP-címet az exec FFmpeg sorban.
Megjegyzés: Az érték módosítása után -b:vmegváltozik a videó bitsebessége. Ezt kilobit per másodpercben mérik. Az érték későbbi -b:amódosítása megváltoztatja az audio bitrátát. Ezt kilobit per másodpercben mérik. Az érték későbbi -smódosítása megváltoztatja a felbontást.
Mentse el a fájlt a CTRL+ gomb megnyomásával X.
Indítsa újra az Nginxet.
sudo service nginx restart
Megjegyzés: A legjobb teljesítmény érdekében minden konvertálandó adatfolyamnak saját CPU-maggal kell rendelkeznie. Például, ha két minőséget, a 360P-t és a 480P-t hoz létre egy 720P-s adatfolyamból, akkor legalább két CPU-maggal rendelkező Vultr-példányt kell használni.
Biztonsági megjegyzés
Ha tűzfalat használ, meg kell győződnie arról, hogy TCP 1935ez engedélyezett.
A jelenlegi konfiguráció lehetővé teszi, hogy bárki streameljen a szerverére. Ezt úgy tudjuk megoldani, hogy csak bizonyos IP-címekhez adunk közzétételi engedélyt. Nyissa meg az Nginx konfigurációját.
sudo nano /usr/local/nginx/conf/nginx.conf
Keresse meg a következő sorokat.
live on;
record off;
Adja hozzá a következőket a fenti sorok mindegyikéhez. Változtassa 0.0.0.0meg a tényleges IP-címét.
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
A konfiguráció most valahogy így fog kinézni.
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;
}
}
}
Mentse el a fájlt a CTRL+ gomb megnyomásával X.
Indítsa újra az Nginxet.
sudo service nginx restart
Szoftver konfigurálása az Nginx-RTMP használatához
A streaming alkalmazásoknak általában két mezője van a kapcsolati információk számára. Az első mező általában a kiszolgáló információit tartalmazza, a második mező pedig általában az adatfolyam nevét vagy kulcsát. Az egyes mezőkbe elhelyezendő információk listája. A stream neve vagy kulcsa bármire beállítható.
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set
A streamek megtekintéséhez nyissa meg a következő hivatkozásokat egy RTMP-t támogató lejátszóban.
rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set