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 liveinnhold 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 apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
Lag en arbeidskatalog og bytt til den.
mkdir ~/working
cd ~/working
Last ned Nginx- og Nginx-RTMP-kilden.
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Installer Unzip-pakken.
sudo apt-get install unzip
Pakk ut Nginx- og Nginx-RTMP-kilden.
tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip
Bytt til Nginx-katalogen.
cd nginx-1.7.5
Legg til moduler som Nginx vil bli kompilert med. Nginx-RTMP er inkludert.
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Kompiler og installer Nginx med Nginx-RTMP.
make
sudo make install
Installer Nginx init-skriptene.
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
Start og stopp Nginx for å generere konfigurasjonsfiler.
sudo service nginx start
sudo service nginx stop
Installerer FFmpeg
Legg til FFmpeg PPA.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
Oppdater pakkelistene.
sudo apt-get update
Installer 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.
Konfigurere Nginx-RTMP og FFmpeg
Åpne Nginx-konfigurasjonsfilen.
sudo nano /usr/local/nginx/conf/nginx.conf
Legg til følgende.
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 ovenstående, 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.
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.
Lagre filen ved å trykke Ctrl og X samtidig. Start Nginx på nytt.
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.
Sikkerhetsmerknad
Hvis du bruker en brannmur, må du sørge for at TCP 1935 er tillatt.
Den nåværende konfigurasjonen lar hvem som helst streame til serveren din. Vi kan fikse dette ved å bare gi visse IP-adresser tillatelse til å publisere. Å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.0 til din IP-adresse.
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
Konfigurasjonen skal 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 og X samtidig. 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ømmer, åpne følgende lenker 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
Å sette opp en spiller for å vise live video på et nettsted er utenfor denne veiledningens omfang. Det kan hjelpe deg å søke etter begrepet 'RTMP web player'.