Hopp til innhold

Fagstoff

Konfigurasjon av Nginx for mottak av videostrøm

Nginx er i utgangspunktet konfigurert til å fungere som en enkel webserver. Noen justeringer er derfor nødvendig for å få den til å motta RTMP-videostrømmer fra strømmerne og omgjøre denne til HLS-strømmingsbiter (chunks) for sluttbrukerne.
Nettleservindu med en enkel nettside med tittelen "Welcome to nginx!". Skjermbilde.
Åpne bilde i et nytt vindu

1. Sjekk mappa som skal brukes

Linux-kommandoene "cd /var/www" og "ls -la" er kjørt i Linux-kommandolinje. Ei mappe merket "html" vises, og rootbruker vises som eier. Skjermbilde.
Åpne bilde i et nytt vindu

Under installasjonen av Nginx opprettes det ei mappe for innhold (selve programvaren ligger et annet sted).

Bruk kommandoen cd /var/www til å flytte deg til webservermappa for webfiler. Bruk kommandoen ls -la for å se innholdet i mappa.

Standard-HTML-siden for Nginx ligger i undermappa "html". Hvis du ønsker, kan du sjekke denne ved å gå inn i mappa cd html og bruke kommandoen ls -la for å få opp informasjon om fila.

Hvis du ønsker å inspisere fila, kan du bruke sudo nano index.nginx-debian.html for å åpne fila i nano-editoren.

Trykk ned Ctrl + X for å gå ut av editoren når du har sjekket ut fila.

2. Lag mappe for HLS-chunks

For at strømmetjenesten skal fungere, trenger vi et område der midlertidige HLS-strømmingsbiter (chunks) kan lagres.

Vi starter med å lage ei mappe for filene:

sudo mkdir /var/www/hls

Vi sjekker eierstatus på den nye mappa:

ls -la /var/www

Utklipp som viser at ei mappe lages i Linux og etterpå sjekkes. Skjermbilde.
Åpne bilde i et nytt vindu

Som standard vil rootbrukeren stå som eier. For at webserveren skal kunne lage og slette midlertidige HLS-strømmingsbiter (chunks) fra mappa, ønsker vi å gi webserverens bruker eierskap over mappen:

sudo chown -R www-data:www-data /var/www/hls

Sjekk konfigurasjonen på nytt etterpå:

ls -la /var/www

Utklipp som viser at eier av mappe blir satt til "www-data" og etterpå sjekket. Skjermbilde.
Åpne bilde i et nytt vindu

3. Forbredelser til ny Nginx-konfigurasjon

I mappa /etc/nginx ligger selve konfigurasjonsfilene til Nginx. Den viktigste av disse konfigurasjonsfilene heter "nginx.conf".

I stedet for å overskrive denne fila direkte ønsker vi å beholde den i tilfelle vi vil reversere konfigurasjonen senere. Dette gjør vi ved å gi fila et nytt navn.

Først flytter vi vår plassering til /etc/nginx.

cd /etc/nginx

Vi ser hva som er i mappa.

ls

Ved å bruke en mv-kommando kan vi gi fila et nytt navn.

sudo mv nginx.conf nginx.old

Vi sjekker forandringen som er gjort.

ls

4. Lag ny nginx.conf-fil og legg inn RTMP basisconfigurasjon

Lag ny konfigurasjonsfil og legg inn konfigurasjonen under.

sudo nano nginx.conf

Start av Nginx-konfigurasjonsfil

1user www-data; #bestemmer hvilken systembruker webserver skal bruke
2worker_processes auto; 
3pid /run/nginx.pid;
4include /etc/nginx/modules-enabled/*.conf; #aktiverer tilleggene til webserveren
5events {
6        worker_connections 768;
7        # multi_accept on;
8}
9
10# RTMP-konfigurasjon for strømming inn til serveren
11rtmp {
12    server {
13        listen 1935; # beskriver portnummer som RTMP-strøm må bruke
14        chunk_size 4000;
15
16        application show { #navn på strømming
17            live on; #skrur på oppsettet
18            hls on; #aktiverer hls-funksjonalitet
19            hls_path /var/www/hls/; #bestemmer hvor hls-chunks skal lagres
20            hls_fragment 6; #antall sekunder per chunk
21            hls_playlist_length 30; #antall sekunder i spilleliste
22            deny play all; #hindrer RTMP til å bli brukt for strømming ut fra serveren
23        }
24    }
25}

Bruk tastene Ctrl + X for å gå ut av editoren. Velg "yes" for å lagre forandringer som er gjort.

5. Restart Nginx for å aktivere ny konfigurasjon

Bruk kommandoen under for å restarte Nginx med den nye konfigurasjonen.

sudo systemctl restart nginx

Hvis du får opp feil, kan du bruke kommandoen under for å få mer informasjon om hvor feilen ligger i konfigurasjonen.

sudo systemctl status nginx

Bruk tastene Ctrl + Z for å komme ut av statusoversikten.

6. Test strømming til serveren

Bruk OBS eller annen programvare og sett opp en strømming mot serveren. Datamaskinen du strømmer fra, må være tilkoblet det samme lokale nettverket som din strømmeserver.

Protokollen er RTMP, og standardporten 1935 brukes. Adressen utformes som vist under.

rtmp://IP-adresse/show

Nøkkelen (streaming key) kan du sette til stream.

Start strømming og se om tilkobling er vellykket.

Hvordan legge til strømmeserver i OBS

Start OBS (Open Broadcaster Software). Hvis det er første gang du kjører programmet, vil oppsettsveilederen starte automatisk. Gå ut av den for å følge resten av guiden.

Fra OBS-hovedvinduet trykker du på knappen "Innstillinger" nede til høyre i vinduet.

OBS-programvindu med menylinje øverst, tom videoboks i midten og kontroller, knapper og informasjon nede. Skjermbilde.
Åpne bilde i et nytt vindu

I "Innstillinger" velger du "Strøm" fra menyen til venstre. Under valget "Tjeneste" velger du "Egendefinert". Fyll inn informasjonen og trykk "OK" for å lagre forandringen.

Innstillingsvindu for strømmingskonfigurasjon. Skjermbilde.
Åpne bilde i et nytt vindu

Du kommer nå tilbake til OBS sitt hovedvindu.

Under videoboksen er boksen "Kilder". Trykk på plusstegnet under boksen og legg til en kilde fra menyen. For testing er det praktisk å bruke ei videofil, velg da "Mediekilde". Et vindu åpnes der du kan sette navn på mediekilden. Velg navn og gå videre. I neste vindu kan du velge videofil. Når du har gjort dette, kommer du tilbake til hovedvinduet. Start avspillingen av kilden og trykk på knappen "Start Strømming" nede til høyre.

Hvis strømmeserveren tar imot videostrømmen, vil det se ut som på bildet under.

Utklipp fra nedre del av OBS-hovedvindu. Det viser at strømming er på, og at tilkoblingen er i orden. Skjermbilde.
Åpne bilde i et nytt vindu

For å sjekke at strømmeserveren omgjør RTMP-videostrømmen til HLS-chunks, kan vi sjekke chunksmappa etter disse.

ls /var/www/hls

Kommandoen "ls /var/www/hls" kjøres og flere filer vises. Skjermbilde.
Åpne bilde i et nytt vindu

Filene merket "Stream-XX.ts" er HLS-strømmingsbiter (chunks). Fila "Stream.m3u8" er ei spillelistefil. Denne bruker vi når vi kobler oss til strømmeserveren med avspillerne.

CC BY-SASkrevet av Tron Bårdgård.
Sist faglig oppdatert 27.03.2022

Læringsressurser

Enkeltressurser for oppsett av strømmeserver