Hopp til innhald

Fagstoff

Konfigurasjon av Nginx for mottak av videostraum

Nginx er i utgangspunktet konfigurert til å fungere som ein enkel webserver. Nokre justeringar er derfor nødvendige for å få han til å få RTMP-videostraumar frå strøymarane og gjere om denne til HLS-strøymingsbitar (chunks) for sluttbrukarane.
Nettlesarvindauge med ei enkel nettside med tittelen "Welcome to nginx!". Skjermbilete.
Opne bilete i eit nytt vindauge

1. Sjekk mappa som skal brukast

Linux-kommandoane "cd /var/www" og "ls -la" er køyrde i Linux-kommandolinje. Ei mappe er merkt "html", og rootbrukar er eigar. Skjermbilete.
Opne bilete i eit nytt vindauge

Under installasjonen av Nginx blir det oppretta ei mappe for innhald (sjølve programvara ligg ein annan stad).

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

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

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

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

2. Lag mappe for HLS-chunks

For at strøymetenesta skal fungere, treng vi eit område der mellombelse HLS-strøymingsbitar (chunks) kan lagrast.

Vi startar med å lage ei mappe for filene:

sudo mkdir /var/www/hls

Vi sjekkar eigarstatus på den nye mappa:

ls -la /var/www

Utklipp som viser at ei mappe blir laga og etterpå blir sjekka i Linux. Skjermbilete.
Opne bilete i eit nytt vindauge

Som standard vil rootbrukaren stå som eigar. For at webserveren skal kunne lage og slette mellombelse HLS-strøymingsbitar (chunks) frå mappa, ønsker vi å gi brukaren av webserveren eigarskap over mappa:

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

Sjekk konfigurasjonen på nytt etterpå:

ls -la /var/www

Utklipp som viser at eigar av mappe blir sett til "www-data" og etterpå sjekka. Skjermbilete.
Opne bilete i eit nytt vindauge

3. Førebuingar til ny Nginx-konfigurasjon

I mappa /etc/nginx ligg sjølve konfigurasjonsfilene til Nginx. Den viktigaste av desse konfigurasjonsfilene heiter "nginx.conf".

I staden for å overskrive denne fila direkte ønsker vi å behalde ho i tilfelle vi vil reversere konfigurasjonen seinare. Dette gjer vi ved å gi fila eit nytt namn.

Først flyttar vi plasseringa vår til /etc/nginx.

cd /etc/nginx

Vi ser kva som er i mappa.

ls

Ved å bruke ein mv-kommando kan vi gi fila eit nytt namn.

sudo mv nginx.conf nginx.old

Vi sjekkar forandringa som er gjord.

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 kva systembrukar webserver skal bruke
2worker_processes auto; 
3pid /run/nginx.pid;
4include /etc/nginx/modules-enabled/*.conf; #aktiverer tillegga til webserveren
5events {
6        worker_connections 768;
7        # multi_accept on;
8}
9
10# RTMP-konfigurasjon for strøyming inn til serveren
11rtmp {
12    server {
13        listen 1935; # beskriver portnummer som RTMP-straum må bruke
14        chunk_size 4000;
15
16        application show { #namn på strøyming
17            live on; #skrur på oppsettet
18            hls on; #aktiverer hls-funksjonalitet
19            hls_path /var/www/hls/; #bestemmer kvar hls-chunks skal lagrast
20            hls_fragment 6; #antal sekund per chunk
21            hls_playlist_length 30; #antal sekund i speleliste
22            deny play all; #hindrar RTMP til å bli brukt for strøyming ut frå serveren
23        }
24    }
25}

Bruk tastane Ctrl + X for å gå ut av editoren. Vel "yes" for å lagre forandringar som er gjorde.

5. Restart Nginx for å aktivere ny konfigurasjon

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

sudo systemctl restart nginx

Viss du får opp feil, kan du bruke kommandoen under for å få meir informasjon om kvar feilen ligg i konfigurasjonen.

sudo systemctl status nginx

Bruk tastane Ctrl + Z for å komme ut av statusoversikta.

6. Test strøyming til serveren

Bruk OBS eller anna programvare og set opp ei strøyming mot serveren. Datamaskina du strøymer frå, må vere tilkopla det same lokale nettverket som strøymeserveren din.

Protokollen er RTMP, og standardporten 1935 blir brukt. Adressa blir forma som vist under.

rtmp://IP-adresse/show

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

Start strøyming og sjå om tilkoplinga er vellykka.

Korleis legge til strøymeserver i OBS

Start OBS (Open Broadcaster Software). Viss det er første gong du køyrer programmet, vil oppsettsrettleiaren starte automatisk. Gå ut av han for å følge resten av guiden.

Frå OBS-hovudvindauget trykker du på knappen "Innstillinger" nede til høgre i vindauget.

OBS-programvindauge med menylinje øvst, tom videoboks i midten og kontrollar, knappar og informasjon nede. Skjermbilete.
Opne bilete i eit nytt vindauge

I "Innstillinger" vel du "Strøm" frå menyen til venstre. Under valet "Tjeneste" vel du "Egendefinert". Fyll inn informasjonen og trykk "OK" for å lagre forandringa.

Innstillingsvindauge for strømmekonfigurasjon. Skjermbilete.
Opne bilete i eit nytt vindauge

Du kjem no tilbake til OBS sitt hovudvindauge.

Under videoboksen er boksen "Kilder". Trykk på plussteiknet under boksen og legg til ei kjelde frå menyen. For testing er det praktisk å bruke ei videofil, vel då "Mediekilde". Eit vindauge blir opna der du kan setje namn på mediekjelda. Vel namn og gå vidare. I neste vindauge kan du velje videofil. Når du har gjort dette, kjem du tilbake til hovudvindauget. Start avspelinga av kjelda og trykk på knappen "Start Strømming" nede til høgre.

Viss strøymeserveren tek imot videostraumen, vil det sjå ut som på biletet under.

Utklipp frå nedre del av OBS-hovudvindauge. Det viser at strøyming er på, og at tilkoplinga er i orden. Skjermbilete.
Opne bilete i eit nytt vindauge

For å sjekke at strøymeserveren gjer om RTMP-videostraumen til HLS-chunks, kan vi sjekke chunksmappa etter desse.

ls /var/www/hls

Kommandoen "ls /var/www/hls" blir køyrd og fleire filer kjem opp. Skjermbilete.
Opne bilete i eit nytt vindauge

Filene merkte "Stream-XX.ts" er HLS-strøymingsbitar (chunks). Fila "Stream.m3u8" er ei spelelistefil. Denne bruker vi når vi koplar oss til strøymeserveren med avspelarane.

CC BY-SASkrive av Tron Bårdgård.
Sist fagleg oppdatert 27.03.2022

Læringsressursar

Enkeltressursar for oppsett av strøymeserver