Sådan konfigureres en videostreaming-server ved hjælp af Nginx-RTMP på Ubuntu 22.04

Sådan konfigureres en videostreaming-server ved hjælp af Nginx-RTMP på Ubuntu 22.04

Indledning

Videostreaming er blevet en integreret del af moderne web og underholdning. Uanset om det er live-begivenheder, film eller tv-serier, er streaming blevet den foretrukne metode til at konsumere videoindhold. For at håndtere den stigende efterspørgsel har videohosting-platforme og indholdsudbydere brug for kraftfulde og pålidelige videostreaming-servere.

En af de førende løsninger til videostreaming er Nginx-RTMP. Nginx-RTMP er et open source-mediaserver-modul, der understøtter Real-Time Messaging Protocol (RTMP). RTMP er en applikationsprotokol, der er specielt designet til at overføre lyd- og videoindhold over internettet i realtid. Ved at bruge Nginx-RTMP kan du oprette en pålidelig og skalerbar videostreaming-server, der kan håndtere store mængder samtidige brugere.

I denne tutorial vil vi guide dig gennem trinene til at konfigurere en videostreaming-server ved hjælp af Nginx-RTMP på Ubuntu 22.04. Vi vil dække installationen af de nødvendige softwarekomponenter, konfigurationen af Nginx-RTMP og test af streaming-serveren. Lad os komme i gang!

Forudsætninger

* En Ubuntu 22.04-server med en ikke-rod-bruger, der har sudo-privilegier
* En firewall, der tillader indgående trafik på port 1935 og 8080

  De bedste smarte soundbars

Opsætning

1. Opdater systemet

Før du installerer nogen software, skal du opdatere pakkelisten og opgradere det installerede system:


sudo apt update
sudo apt upgrade

2. Installer Nginx

Nginx er en webserver med høj ydeevne, der også understøtter streaming af mediefiler. Lad os installere Nginx:


sudo apt install nginx

3. Installer Nginx-RTMP-modulet

Nginx-RTMP-modulet er en udvidelse til Nginx, der giver RTMP-understøttelse. Lad os installere det:


sudo apt install nginx-module-rtmp

4. Opret et Nginx-konfigurationsfil

Lad os oprette en ny konfigurationsfil til vores videostreaming-server under Nginx’s conf.d-katalog:


sudo nano /etc/nginx/conf.d/videostreaming.conf

5. Indsæt konfiguration

Indsæt følgende konfiguration i filen:


server {
listen 1935;

rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}

http {
listen 8080;
hls on;
hls_path /hls;
hls_fragment 5;
hls_playlist_length 3;

location /hls {
rtmp_hls live;
}
}
}

Konfiguration forklaret:

* rtmp { … }: Denne blok konfigurerer RTMP-serveren. Vi lytter på port 1935 og definerer et program kaldet “live”, der er aktiveret for live streaming.
* http { … }: Denne blok konfigurerer HTTP-serveren. Vi lytter på port 8080, aktiverer HTTP Live Streaming (HLS) og definerer en placering for HLS-manifestfilerne.

6. Aktiver Nginx-RTMP-modulet

For at aktivere Nginx-RTMP-modulet skal du redigere Nginx’s hovedkonfigurationsfil:


sudo nano /etc/nginx/nginx.conf

7. Indsæt inkluder

Indsæt følgende linje nederst i filen:


include /etc/nginx/conf.d/videostreaming.conf;

8. Genstart Nginx

Genstart Nginx for at indlæse de nye konfigurationer:


sudo systemctl restart nginx

Testning

1. Send RTMP-feed

Brug en RTMP-pusher, såsom OBS Studio eller ffmpeg, til at sende en live-RTMP-feed til serveren. Konfigurer pusherens RTMP-URL som:


rtmp://[din_server_ip]:1935/live

2. Kontroller streaming

Du kan kontrollere, om streaming er i gang ved at bruge følgende kommando:


sudo lsof -i :1935

3. Afspil HLS-streamen

For at afspille HLS-streamen skal du åbne en webbrowser og gå til følgende URL:


http://[din_server_ip]:8080/hls/[stream_navn].m3u8

Konklusion

Tillykke! Du har nu konfigureret en videostreaming-server ved hjælp af Nginx-RTMP på Ubuntu 22.04. Denne server giver dig mulighed for at streame live indhold og distribuere HLS-streams til dine brugere. Konfigurationen er fleksibel, så du kan justere den for at opfylde dine specifikke krav.

For at forbedre din streaming-server yderligere kan du implementere sikkerhedsforanstaltninger som SSL-certifikater, konfigurere load balancing for at håndtere øget trafik og undersøge caching-strategier for at optimere ydeevnen.

Ofte stillede spørgsmål

1. Kan jeg streame MP4-filer i stedet for RTMP-feeds? Ja, du kan bruge HLS-modul til at streame MP4-filer.
2. Hvilke video- og lydformater understøttes? Nginx-RTMP understøtter en bred vifte af video- og lydformater, herunder H.264, H.265, AAC og MP3.
3. Hvordan kan jeg begrænse antallet af samtidige brugere? Du kan bruge Nginx’s begrænsningsmoduler til at begrænse antallet af samtidige forbindelser.
4. Kan jeg bruge Nginx-RTMP til at streame til sociale medier? Ja, du kan bruge Nginx-RTMP til at streame til platforme som YouTube og Facebook Live.
5. Hvordan kan jeg sikre min streaming-server? Du kan implementere SSL-certifikater, aktivere IP-begrænsning og bruge et webapplikationsfirewall.
6. Kan jeg bruge Nginx-RTMP til at levere video on demand (VOD)? Ja, men det er mere almindeligt at bruge en HTTP-baseret server som Nginx med MPEG-DASH eller HLS til VOD.
7. Hvilke andre RTMP-servere findes der? Andre RTMP-servere inkluderer Wowza Media Server og Red5 Pro.
8. Hvordan kan jeg fejlfinde problemer med min streaming-server? Undersøg Nginx’s logfiler, kontroller firewallindstillingerne, og test din streamingkonfiguration.