Installerer Nginx og Nginx-RTMP
Installerer FFmpeg
Konfigurere Nginx-RTMP og FFmpeg
Sikkerhetsmerknad
Konfigurere programvare for å fungere med Nginx-RTMP
RTMP er flott for å vise live-innhold. Når RTMP er sammenkoblet med FFmpeg, kan strømmer konverteres til ulike kvaliteter. Vultr er flott for disse applikasjonene da de gir rask og dedikert CPU-ytelse. Vultrs globale nettverk sikrer også at du kan levere høykvalitets live-innhold med minimal forsinkelse. La oss komme i gang!
Installerer Nginx og Nginx-RTMP
Installer verktøyene som kreves for å kompilere Nginx og Nginx-RTMP fra kilden.
sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y
Lag en arbeidskatalog og bytt til den.
mkdir ~/working
cd ~/working
Last ned Nginx- og Nginx-RTMP-kildene.
wget http://nginx.org/download/nginx-1.9.7.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Installer unzip-pakken.
sudo yum install unzip
Pakk ut Nginx- og Nginx-RTMP-kilden.
tar -xvf nginx-1.9.7.tar.gz
unzip v1.2.1.zip
Bytt til Nginx-katalogen.
cd nginx-1.9.7
Legg til moduler for å kompilere til Nginx. Nginx-RTMP er inkludert.
./configure --add-module=../nginx-rtmp-module-1.2.1/
Kompiler og installer Nginx med Nginx-RTMP.
make
sudo make install
Opprett en SystemD-enhetsfil for Nginx.
sudo nano /usr/lib/systemd/system/nginx.service
Fyll filen med følgende innhold.
[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
Start og aktiver Nginx-tjenesten.
sudo systemctl start nginx.service
Be SystemD om å starte Nginx-tjenester automatisk ved oppstart.
systemctl enable nginx.service
Installerer FFmpeg
Installer epel-releaseog oppdater systemet.
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Installer Nux-depotet.
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
Installer FFmpeg og dets utviklingspakker.
sudo yum install ffmpeg ffmpeg-devel -y
Konfigurere Nginx-RTMP og FFmpeg
Åpne Nginx-konfigurasjonsfilen.
sudo nano /usr/local/nginx/conf/nginx.conf
Legg til følgende til konfigurasjonen.
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;
}
}
}
Etter at du har lagt til konfigurasjonsteksten, kan du tilpasse innstillinger som videobithastighet, lydbithastighet og oppløsning. Disse endringene vil bare bli brukt på strømmen av lavere kvalitet. For å legge til flere kvaliteter, kopier og lim inn exec FFmpeg-linjen og endre innstillingene. Du må også opprette en ny applikasjon. Du kan gjøre dette ved å kopiere og lime inn live360-eksemplet som er inkludert. Ikke glem å oppdatere exec FFmpeg-linjen med adressen til den nye applikasjonen. Du kan gjøre dette ved å endre den endelige RTMP-adressen i exec FFmpeg-linjen.
Merk: Hvis du endrer verdien etter -b:v, endres videobithastigheten. Dette måles i kilobit per sekund. Hvis du endrer verdien etter -b:a, endres lydbithastigheten. Dette måles i kilobit per sekund. Endring av verdien etter -svil endre oppløsningen.
Lagre filen ved å trykke CTRL+ X.
Start Nginx på nytt.
sudo service nginx restart
Merk: For best ytelse bør hver strøm som konverteres ha sin egen CPU-kjerne. For eksempel, hvis to kvaliteter, 360P og 480P, lages fra en 720P-strøm, bør en Vultr-forekomst med minst to CPU-kjerner brukes.
Sikkerhetsmerknad
Hvis du bruker en brannmur, må du sørge for at den TCP 1935er tillatt.
Den nåværende konfigurasjonen lar hvem som helst streame til serveren din. Vi kan fikse dette ved kun å gi visse IP-adresser publiseringstillatelse. Åpne Nginx-konfigurasjonen.
sudo nano /usr/local/nginx/conf/nginx.conf
Se etter følgende linjer.
live on;
record off;
Legg til følgende til hvert sett av linjene ovenfor. Endre 0.0.0.0til din faktiske IP-adresse.
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
Konfigurasjonen vil nå se omtrent slik ut.
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;
}
}
}
Lagre filen ved å trykke CTRL+ X.
Start Nginx på nytt.
sudo service nginx restart
Konfigurere programvare for å fungere med Nginx-RTMP
Strømmeapplikasjoner har vanligvis to felt for tilkoblingsinformasjon. Det første feltet er vanligvis for serverinformasjon og det andre feltet er vanligvis for strømnavnet eller nøkkelen. Informasjonen du bør legge inn i hvert felt er oppført. Strømnavnet eller nøkkelen kan settes til hva som helst.
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set
For å se strømmene, åpne følgende koblinger i en spiller som støtter RTMP.
rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set