Ta vadnica skuša to rešiti tako, da vam pokaže, kako nastaviti osebni strežnik za pretakanje v živo, ki izkorišča prednosti Nginxa, zmogljivega in lahkega spletnega strežnika in povratnega proxyja ter protokola RTMP.
Preden nadaljujemo, zagotovimo:
- Uporabljate strežnik Ubuntu ali Debian
- Dostop do strežnika prek SSH
- Root uporabnik ali sudo privilegiji
Začnimo.
Kaj je Nginx
Kot je bilo omenjeno zgoraj, je Nginx hiter in lahek odprtokodni spletni strežnik in povratni strežnik proxy, ki se uporablja za preprosta statična spletna mesta ali velike aplikacije. Nginx je visoko zmogljiv spletni strežnik z neverjetno hitrostjo in varnostjo. Zaradi svoje majhne narave je zelo učinkovita izbira za pretočne storitve in promet z velikim prometom.
Več o Nginxu lahko izveste v spodnjem viru:
https: // nginx.org / en / docs /
Kaj je Nginx RTMP
Nginx RTMP je odprtokodni in zmogljiv modul za spletni strežnik Nginx. Omogoča RTMP protokol, HTTP Live Streaming (HLS) in Dynamic Adaptive Streaming over HTTP (DASH).
Več o HLS in DASH lahko izveste na strani z viri:
https: // www.oblačnost.com / learning / video / what-is-mpeg-dash /
Zdaj, ko veste, kaj sta Nginx in Nginx RTMP, naj nastavimo strežnik:
Konfigurirajte na strežnik
Prvi korak je dostop do strežnika. Prepričajte se, da je SSH na vašem strežniku omogočen in imate dodane ključe za lažjo prijavo.
ssh debian @ 34.73.160.42[zaščiteno po e-pošti]: ~ $
Ko imamo dostop do strežnika, lahko začnemo nameščati zahtevane pakete in knjižnice. Najprej preverite, ali je strežnik posodobljen:
posodobitev sudo apt-getsudo apt-get upgrade -y
Namestitev potrebne programske opreme
Za nastavitev strežnika za pretakanje bomo morali Nginx zgraditi iz vira in omogočiti modul RTMP. Za to bomo uporabili osnove gradnje in druge pakete. Za namestitev vseh odvisnosti uporabite spodnji ukaz apt.
sudo apt-get install -y build-bistveni libpcre3 libpcre3-dev libssl-dev git zlib1g-devNaslednji korak je prevajanje in namestitev Nginxa z omogočenim modulom RTMP. Če želite ostati organizirani, ustvarite imenik za postopek.
mkdir ~ / Makecd ~ / Znamka /
Nato klonirajte modul nginx-RTMP:
git klon git: // github.com / arut / nginx-rtmp-module.gitZdaj moramo prenesti nginx.
Pojdite na http: // nginx.org / en / download.html in izberite možnost prenosa.
wget http: // nginx.org / download / nginx-1.19.8.katran.gztar xzf nginx-1.19.8.katran.gz
cd nginx-1.19.8
Zadnji korak v tem poglavju je prevajanje Nginxa z omogočenim modulom RMTP. Uporabite spodnje ukaze:
sudo ./ configure --with-http_ssl_module --add-module =… / nginx-rtmp-modulesudo make
sudo make install
Nastavitev pretočnega predvajanja v živo
Če želimo omogočiti podporo RTMP, moramo urediti konfiguracijsko datoteko nginx in določiti blok RTMP.
sudo nano / usr / local / nginx / conf / nginx.confV blok za podporo RTMP vnesite kot:
rtmpstrežnik
poslušaj 1935;
ping 30-ih;
prijava v živo
živi naprej;
prepletati naprej;
hls naprej;
hls_path / tmp / hls;
hls_sync 100ms;
hls_fragment 15s;
http
default_type aplikacija / oktet-tok;
strežnik
poslušaj 80;
lokacija / tv
koren / tmp / hls;
vrste
prijava / vnd.jabolko.mpegurl m3u8;
video / mp2t ts;
besedilo / html html;
V zgornji konfiguraciji omogočimo modul RTMP in HLS. V dokumentaciji se naučite, kako omogočiti DASH.
Ko imate konfiguracijo, shranite datoteko in zaženite storitev Nginx.
sudo / usr / local / nginx / sbin / nginxZačni pretakanje
Ko ste vse pravilno konfigurirali, lahko začnete pretakati z uporabo FFmpeg - to je najlažje. Lahko konfigurirate tudi druga orodja, kot je OBS studio, vendar tega v tej vadnici ne bom obravnaval.
Ukaz FFmpeg uporabite kot:
sudo ffmpeg -re -i vzorec-mp4-datoteka.mp4 -c copy -f hls rtmp: // localhost / live / streamPredvajajte tok z uporabo predvajalnika FFplay ali VLC Media na viru.
ffplay rtmp: // IP / live / streamKo zaženete tok, lahko storitev izpostavite zunanjemu omrežju.
OPOMBA: Preden omogočite javni dostop, zagotovite, da ste zavarovali svoj strežnik.
Zaključek
V tej vadnici je opisano, kako nastaviti strežnik za pretakanje z uporabo Nginxa in modula Nginx RTMP. Upoštevajte, da pri nastavitvi storitve pretakanja sodeluje veliko zobnikov, ki jih lahko prilagodite svojim potrebam.
Upoštevajte naslednje vire, da raziščete več.
- https: // ffmpeg.org / ffmpeg.html
- https: // ffmpeg.org / ffplay.html
- https: // ffmpeg.org / ffmpeg-formati.html
- https: // obsproject.com / docs /
- https: // wiki.videolan.org / dokumentacija: Streaming_HowTo