Is jouw livestream elke keer aan het crashen? Zo ja, dan moet je een betrouwbare manier vinden om je stream te hosten. Maar als je geen dure opties kunt veroorloven, geen zorgen! NGINX RTMP komt te hulp. NGINX RTMP is een betrouwbare open-source module, dus je weet wat dat betekent – het is GRATIS!
In deze tutorial leer je hoe je een NGINX RTMP-server kunt opzetten, zodat je een betrouwbare livestream kunt opzetten met jouw website.
Klaar? Lees verder en begin met het opzetten van een livestream!
Vereisten
Deze tutorial zal een hands-on demonstratie zijn. Als je wilt meedoen, zorg er dan voor dat je het volgende hebt:
- A Linux server – This demo uses Ubuntu 20.04 LTS, but you can use any other Linux distribution with NGINX.
- NGINX geïnstalleerd op de Linux-server.
- A non-root user with sudo privileges.
- Minimale bronnen die nodig zijn om een livestreamserver te draaien – 2G RAM, 2 CPU-kernen en 20 GB HDD.
Deze waarden zijn slechts suggesties. De exacte waarden hangen af van jouw werkelijke verkeersbehoeften. Hoe meer verkeer je hebt, hoe krachtiger servers je nodig zult hebben om jouw live video te hosten en streamen. In een ontwikkelomgeving is een NGINX RTMP-server met 2 CPU’s en 2 GB RAM voldoende om te testen.
Configureren van een RTMP-server
Nu de vereisten uit de weg zijn, kun je doorgaan met het installeren en configureren van je RTMP-server. Je zult eerst een NGINX-module installeren om je NGINX-server om te zetten in een RTMP-server en vervolgens het NGINX-configuratiebestand configureren om live streams voor gebruikers mogelijk te maken.
1. Open je terminal en voer het apt update
-commando uit om al je pakketten bij te werken. Dit commando synchroniseert je pakketdatabase met de nieuwste database van Ubuntu.

2. Voer vervolgens het volgende commando uit om een RTMP-server op je Linux-server te installeren.
De libnginx-mod-rtmp
-module is een NGINX-module die je NGINX-server omzet in een RTMP-server. Deze module maakt communicatie tussen NGINX en Adobe Flash Player mogelijk, zodat je live video of audio kunt streamen, en wordt officieel ondersteund door het ontwikkelingsteam.

3. Open het /etc/nginx/nginx.conf-bestand in je favoriete editor om je RTMP live programma te configureren. Het nginx.conf-bestand is een NGINX-configuratiebestand, dat verschillende richtlijnen of blokken bevat om het gedrag van de NGINX-service te definiëren.
4. Vul ten slotte het nginx.conf-bestand met de onderstaande code, sla de wijzigingen op en sluit de editor af.
De onderstaande code vertelt NGINX om als een RTMP-server te fungeren en live streams voor je gebruikers mogelijk te maken.
Netwerk beveiligen door een firewall in te stellen
U hebt uw NGINX RTMP-server al geconfigureerd, maar u moet uw netwerk beveiligen en het verkeer regelen. Hoe? Door een firewall in te stellen, Uncomplicated Firewall (UFW), dat de standaard firewall is in Ubuntu.
Als je je NGINX RTMP-server achter een firewall plaatst, moet je de poort van de NGINX RTMP-server openstellen. Aangezien je je NGINX RTMP-server hebt geconfigureerd om te luisteren op poort 1935
, zul je deze poort moeten toestaan via je firewall.
1. Voer de volgende opdracht uit om een firewallregel toe te voegen die poort 1935
opent op je firewall. Deze firewallregel staat toe dat poort 1935
van je NGINX RTMP-server toegankelijk is voor alle inkomende en uitgaande verzoeken.

2. Voer vervolgens de volgende opdracht uit om je firewall uit te schakelen en opnieuw in te schakelen. Deze opdracht herstart in feite de firewall voor eventuele wijzigingen op de firewall van kracht worden.
3. Voer tot slot de onderstaande opdracht uit om de status van je firewall te controleren en te verifiëren of poort 1935
toegankelijk is vanaf alle IP-adressen (Overal).

Video streamen met behulp van FFmpeg
Je NFINX RTMP-server is nu actief, dus het is tijd om FFmpeg te gebruiken om een voorbeeldvideo te maken en deze te streamen via je NGINX RTMP-server. FFmpeg is een complete oplossing voor het opnemen, converteren en streamen van audio en video in vele verschillende toepassingen zoals VLC, OMXPlayer, VobSub, enzovoort.
Je gaat video streamen op je server, en je kunt elke video gebruiken die klein van formaat is voor het streamen.
1. Voer de apt install
-opdracht hieronder uit om de vereiste afhankelijkheden te installeren voor een correcte werking van FFmpeg.
De onderstaande opdracht installeert het volgende:
libpcre3
– Een regex-bibliotheek die door de ffmpeg-toolkit wordt gebruikt om reguliere expressies te parseren en compileren.libpcre3-dev
– Dit pakket bevat de ontwikkelingsheaders van het libpcre3-pakket.libssl-dev
– De OpenSSL-cryptografische bibliotheek die wordt gebruikt om SSL/TLS-verbindingen te maken in uw RTMP-server.zlib1g-dev
: De zlib-bibliotheek is een compressie- en decompressiebibliotheek die de overdracht van audiobestanden en videobestanden via internet versnelt.

2. Voer vervolgens de volgende opdracht uit om ffmpeg
op uw server te installeren.

3. Voer tot slot de ffmpeg
-opdracht uit om het volgende uit te voeren en een nieuwe live stream te maken:
- Lees de invoer (
re
) uit het bronbestand (i
) met de oorspronkelijke framerate. Zorg ervoor datvideo.mp4
wordt vervangen door het pad en de bestandsnaam van uw video. - Kopieer het videoformaat woordelijk (
c:v copy
) en codeer de audio met AAC-codec (c:a aac
). - Stel de audiobemonsteringsfrequentie in op 44100 Hz (
ar 44100
). Als de bemonsteringsfrequentie van uw video lager is dan deze waarde (44100 Hz), voert FFmpeg interpolatie uit om de bemonsteringsfrequentie te verhogen. - Stel de audiokanalen in op één kanaal (mono) (
ac 1
), en het videoformaat dat FFmpeg zal streamen (-f flv
). - Stel uw RTMP live programma in (
rtmp://localhost/live/streamname.flv
) dat u hebt geconfigureerd in de sectie “Een RTMP-server configureren” (stap vier). U kuntstreamname.flv
wijzigen in elke naam die u verkiest.
Zoals u hieronder ziet, geeft het ffmpeg
commando het aantal frames per seconde weer dat het detecteert, de bitrate en de fps van de nieuw gemaakte RTMP live stream.

Conclusie
In deze tutorial hebt u geleerd hoe u uw NGINX RTMP-server kunt opzetten en live streams kunt inschakelen op uw server door het NGINX-configuratiebestand aan te passen. U hebt ook aangeraakt hoe u een video live stream kunt opzetten met behulp van de FFmpeg-tool via uw NGINX RTMP-server.
U hebt zojuist gerealiseerd dat het opzetten van een live stream u niet per se elke cent hoeft te kosten. Waarom zou u op dit punt niet uw stream integreren in uw webpagina met behulp van de HTML5 <video> element. Of een OBS Studio opzetten voor uw RTMP-stream?