Sett opp Nginx-RTMP på CentOS 7

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

Legg igjen en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer