Šioje pamokoje siekiama išspręsti tai parodant, kaip sukurti asmeninį tiesioginio srauto serverį, kuris naudojasi „Nginx“, galingo ir lengvo interneto serverio ir atvirkštinio tarpinio serverio bei RTMP protokolo pranašumais.
Prieš tęsdami, įsitikinkite:
- Jūs naudojate „Ubuntu“ arba „Debian“ serverį
- Turėkite prieigą prie savo serverio per SSH
- Šakninio vartotojo arba sudo privilegijos
Pradėkime.
Kas yra Nginx
Kaip minėta aukščiau, „Nginx“ yra greitas ir lengvas atviro kodo interneto serveris ir atvirkštinis tarpinis serveris, naudojamas paprastoms statinėms svetainėms ar masinėms programoms aptarnauti. „Nginx“ yra aukštos kokybės interneto serveris, turintis neįtikėtiną greitį ir saugumą. Dėl savo lengvo pobūdžio jis yra labai efektyvus pasirinkimas srautinio perdavimo paslaugoms ir srautui, kuriame yra didelis srautas.
Daugiau apie „Nginx“ galite sužinoti iš toliau pateikto šaltinio:
https: // nginx.org / lt / docs /
Kas yra „Nginx RTMP“
„Nginx RTMP“ yra atviro kodo ir galingas „Nginx“ tinklo serverio modulis. Tai įgalina RTMP protokolą, HTTP tiesioginį srautą (HLS) ir dinaminį adaptyvųjį srautą per HTTP (DASH).
Daugiau apie HLS ir DASH galite sužinoti iš išteklių puslapio:
https: // www.debesėlis.com / learning / video / what-is-mpeg-dash /
Dabar, kai žinote, kas yra „Nginx“ ir „Nginx RTMP“, nustatykime serverį:
Konfigūruoti prie serverio
Pirmasis žingsnis yra prieiga prie serverio. Įsitikinkite, kad SSH į jūsų serverį yra įjungtas ir kad turite raktus, kad būtų lengviau prisijungti.
ssh debian @ 34.73.160.42[apsaugotas el. paštas]: ~ $
Kai turime prieigą prie serverio, galime pradėti diegti reikiamus paketus ir bibliotekas. Pirmiausia įsitikinkite, kad jūsų serveris yra atnaujintas:
sudo apt-get atnaujinimassudo apt-get upgrade -y
Reikiamos programinės įrangos diegimas
Norėdami nustatyti srautinio perdavimo serverį, turėsime sukurti „Nginx“ iš šaltinio ir įgalinti RTMP modulį. Tam naudosime pagrindinius komponentus ir kitus paketus. Norėdami įdiegti visas priklausomybes, naudokite žemiau esančią komandą apt.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devKitas žingsnis - sukompiliuoti ir įdiegti „Nginx“ su įjungtu RTMP moduliu. Norėdami išlikti tvarkingi, sukurkite proceso katalogą.
mkdir ~ / PadarytiCD ~ / Padaryti /
Tada klonuokite „nginx-RTMP“ modulį:
git klonas git: // github.com / arut / nginx-rtmp-module.gitDabar turime atsisiųsti „nginx“.
Eikite į http: // nginx.org / lt / atsisiųsti.HTML ir pasirinkite atsisiuntimo parinktį.
wget http: // nginx.org / download / nginx-1.19.8.degutas.gzdegutas xzf nginx-1.19.8.degutas.gz
cd nginx-1.19.8
Paskutinis žingsnis šiame skyriuje yra „Nginx“ kompiliavimas su įgalintu RMTP moduliu. Naudokite toliau pateiktas komandas:
sudo ./ configure --with-http_ssl_module --add-module =… / nginx-rtmp-modulesudo padaryti
sudo make install
Tiesioginio srauto nustatymas
Norėdami įgalinti RTMP palaikymą, turime redaguoti „nginx“ konfigūracijos failą ir nurodyti RTMP bloką.
sudo nano / usr / local / nginx / conf / nginx.konfĮveskite RTMP palaikymo bloką kaip:
rtmpserveris
klausyk 1935 m
ping 30s;
paraiška tiesiogiai
gyventi toliau;
persipinti;
hls ant;
hls_path / tmp / hls;
hls_sync 100ms;
hls_fragment 15s;
http
default_type application / octet-stream;
serveris
klausytis 80;
vieta / tv
šaknis / tmp / hls;
tipai
taikymas / vnd.obuolys.mpegurl m3u8;
vaizdo / mp2t ts;
tekstas / html html;
Pirmiau pateiktoje konfigūracijoje įgaliname RTMP modulį ir HLS. Apsvarstykite dokumentus, kad sužinotumėte, kaip įgalinti DASH.
Kai sukonfigūruosite, išsaugokite failą ir paleiskite „Nginx“ paslaugą.
sudo / usr / local / nginx / sbin / nginxPradėti perduoti srautu
Kai viską sukonfigūravote teisingai, galite pradėti transliuoti naudodami „FFmpeg“ - tai lengviausia. Taip pat galite sukonfigūruoti kitus įrankius, pvz., OBS studiją, tačiau šioje instrukcijoje to nenagrinėsiu.
Naudokite komandą FFmpeg kaip:
sudo ffmpeg -re -i pavyzdys-mp4-failas.mp4 -c copy -f hls rtmp: // localhost / live / streamLeiskite srautą naudodami šaltinį „FFplay“ arba „VLC Media“ grotuvu.
„ffplay rtmp“: // IP / tiesioginis / srautasVykdydami srautą, galite paveikti paslaugą išoriniame tinkle.
PASTABA: Prieš leisdami viešai pasiekti, įsitikinkite, kad apsaugojote savo serverį.
Išvada
Šioje pamokoje aptarta, kaip nustatyti srautinio perdavimo serverį naudojant „Nginx“ ir „Nginx RTMP“ modulį. Atminkite, kad nustatant srautinio perdavimo paslaugą yra daugybė įrankių, kuriuos galite pritaikyti pagal savo poreikius.
Apsvarstykite šiuos išteklius, kad galėtumėte daugiau sužinoti.
- https: // ffmpeg.org / ffmpeg.HTML
- https: // ffmpeg.org / ffplay.HTML
- https: // ffmpeg.org / ffmpeg-formatai.HTML
- https: // obsproject.com / docs /
- https: // wiki.videolan.org / Dokumentacija: Streaming_HowTo