Deze tutorial probeert dat op te lossen door je te laten zien hoe je een persoonlijke live streaming-server opzet die gebruik maakt van Nginx, een krachtige en lichtgewicht webserver en reverse proxy en het RTMP-protocol.
Voordat we verder gaan, zorg ervoor dat:
- U gebruikt een Ubuntu- of Debian-server
- Toegang hebben tot je server via SSH
- Root-gebruiker of sudo-privileges
Laten we beginnen.
Wat is Nginx
Zoals hierboven vermeld, is Nginx een snelle en lichtgewicht open-source webserver en reverse proxy die wordt gebruikt om eenvoudige statische websites of enorme applicaties te bedienen. Nginx is een krachtige webserver met ongelooflijke snelheid en veiligheid. Dankzij het lichtgewicht karakter is het een zeer efficiënte keuze voor streamingdiensten en verkeer met veel verkeer.
U kunt meer informatie over Nginx vinden in de onderstaande bron:
https://nginx.org/nl/docs/
Wat is Nginx RTMP
Nginx RTMP is een open-source en krachtige module voor de Nginx-webserver. Het maakt het RTMP-protocol, HTTP Live Streaming (HLS) en Dynamic Adaptive Streaming over HTTP (DASH) mogelijk.
U kunt meer leren over HLS en DASH op de bronnenpagina:
https://www.wolkbreuk.com/leren/video/wat-is-mpeg-dash/
Nu je weet wat Nginx en Nginx RTMP zijn, laten we de server instellen:
Configureren naar server
De eerste stap is om toegang te krijgen tot de server. Zorg ervoor dat SSH naar uw server is ingeschakeld en dat u de sleutels hebt toegevoegd om gemakkelijker in te loggen.
ssh [email protected][e-mail beveiligd]:~$
Zodra we toegang hebben tot de server, kunnen we beginnen met het installeren van de vereiste pakketten en bibliotheken. Zorg er eerst voor dat uw server up-to-date is:
sudo apt-get updatesudo apt-get upgrade -y
Vereiste software installeren
Om de streamingserver in te stellen, moeten we Nginx vanaf de bron bouwen en de RTMP-module inschakelen. Hiervoor zullen we build-essentials en andere pakketten gebruiken. Gebruik de onderstaande opdracht apt om alle afhankelijkheden te installeren.
sudo apt-get install -y build-essentiële libpcre3 libpcre3-dev libssl-dev git zlib1g-devDe volgende stap is het compileren en installeren van Nginx met de RTMP-module ingeschakeld. Maak een map voor het proces om georganiseerd te blijven.
mkdir ~/Maakcd ~/Maak/
Kloon vervolgens de nginx-RTMP-module:
git kloon git://github.com/arut/nginx-rtmp-module.gitNu moeten we nginx downloaden.
Ga naar http://nginx.org/nl/download.html en selecteer uw downloadoptie.
wget http://nginx.org/download/nginx-1.19.8.teer.gztar xzf nginx-1.19.8.teer.gz
cd nginx-1.19.8
De laatste stap in deze sectie is om Nginx te compileren met de RMTP-module ingeschakeld. Gebruik de onderstaande commando's:
sudo ./configure --with-http_ssl_module --add-module=… /nginx-rtmp-modulesudo maken
sudo make install
Live streamen instellen
Om de RTMP-ondersteuning in te schakelen, moeten we het nginx-configuratiebestand bewerken en het RTMP-blok specificeren.
sudo nano /usr/local/nginx/conf/nginx.confVoer het RTMP-ondersteuningsblok in als:
rtmpserver
luister 1935;
ping 30s;
applicatie live
leef voort;
interleave op;
hls aan;
hls_path /tmp/hls;
hls_sync 100ms;
hls_fragment 15s;
http
default_type applicatie/octet-stream;
server
luister 80;
locatie /tv
root /tmp/hls;
types
applicatie/vnd.appel.mpegurl m3u8;
video/mp2t ts;
tekst/html-html;
In de bovenstaande configuratie schakelen we de RTMP-module en HLS . in. Bekijk de documentatie om te leren hoe u DASH . inschakelt.
Zodra je de configuratie hebt, sla je het bestand op en start je de Nginx-service.
sudo /usr/local/nginx/sbin/nginxBegin met streamen
Zodra je alles correct hebt geconfigureerd, kun je beginnen met streamen met FFmpeg - dat is het gemakkelijkst. Je kunt ook andere tools configureren, zoals OBS studio, maar dat zal ik in deze tutorial niet behandelen.
Gebruik de opdracht FFmpeg als:
sudo ffmpeg -re -i voorbeeld-mp4-bestand.mp4 -c copy -f hls rtmp://localhost/live/streamSpeel de stream af met FFplay of VLC Media Player op de bron.
ffplay rtmp://IP/live/streamZodra de stream actief is, kunt u de service blootstellen aan een extern netwerk.
OPMERKING: Zorg ervoor dat u uw server hebt beveiligd voordat u openbare toegang toestaat.
Conclusie
In deze tutorial is beschreven hoe je een streamingserver opzet met Nginx en de Nginx RTMP-module. Houd er rekening mee dat er veel dingen bij komen kijken bij het opzetten van een streamingdienst, en dat u deze kunt aanpassen aan uw behoeften.
Overweeg de volgende bronnen om meer te ontdekken:.
- https://ffmpeg.org/ffmpeg.html
- https://ffmpeg.org/ffplay.html
- https://ffmpeg.org/ffmpeg-formaten.html
- https://obsproject.com/docs/
- https://wiki.videolan.org/Documentation:Streaming_HowTo