Ricerca nel sito web

Come configurare un server di streaming video utilizzando Nginx-RTMP su Ubuntu 22.04


Su questa pagina

  1. Requisiti
  2. Installa il server Web Nginx
  3. Installa e configura Nginx-RTMP
  4. Invia video al server RTMP
  5. Riproduci video in streaming su VLC Player
  6. Configura le statistiche RTMP per il monitoraggio
  7. Accedi alla pagina delle statistiche RTMP
  8. Conclusione

RTMP chiamato anche \protocollo di messaggistica in tempo reale\ è una tecnologia di trasmissione dati che supporta lo streaming video online in diretta. Viene utilizzato per trasmettere file video da un codificatore a una piattaforma di hosting video online. RTMP utilizza TCP per viaggiare e utilizza un handshake a tre vie durante il trasporto dei dati. RTMP viene utilizzato con molti diversi tipi di media, tra cui trasmissioni televisive in diretta, video in streaming e servizi di telefonia Internet.

Caratteristiche

  • Produci video live di alta qualità senza buffering
  • Facile da installare e configurare.
  • Compatibile con la maggior parte dei software di live streaming e dei servizi video.

Questo tutorial ti mostrerà come configurare un server di streaming video utilizzando Nginx-RTMP sul server Ubuntu 22.04.

Requisiti

  • Un server che esegue Ubuntu 22.04.
  • Una password di root è impostata per il tuo server.

Installa il server Web Nginx

Prima di iniziare, il server web Nginx deve essere installato sul tuo server. Se non è installato, puoi installarlo con il seguente comando.

apt install nginx -y

Dopo aver installato il pacchetto Nginx, avvia il servizio Nginx e abilitalo per l'avvio al riavvio del sistema.

systemctl start nginx
systemctl enable nginx

Puoi verificare lo stato del servizio Nginx con il seguente comando.

systemctl status nginx

Otterrai il seguente output.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-01-09 14:54:55 UTC; 28s ago
       Docs: man:nginx(8)
    Process: 43294 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)
   Main PID: 43005 (nginx)
      Tasks: 3 (limit: 4575)
     Memory: 8.5M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ??43005 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??43295 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??43296 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jan 09 14:54:55 vultr systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 09 14:54:55 vultr systemd[1]: Started A high performance web server and a reverse proxy server.
Jan 09 14:55:04 vultr systemd[1]: Reloading A high performance web server and a reverse proxy server...
Jan 09 14:55:04 vultr systemd[1]: Reloaded A high performance web server and a reverse proxy server.

Installa e configura Nginx-RTMP

Per impostazione predefinita, il pacchetto Nginx-RTMP è incluso nel repository predefinito di Ubuntu. Puoi installarlo con il seguente comando.

apt install libnginx-mod-rtmp -y

Una volta installato il pacchetto Nginx-RTMP, modifica il file di configurazione principale di Nginx e definisci il tuo stream.

nano /etc/nginx/nginx.conf

Aggiungere le seguenti righe alla fine del file:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish all;               

                application live {
                        live on;
                        record off;
                }
        }
}

Salva e chiudi il file, quindi verifica Nginx per eventuali errori di configurazione utilizzando il seguente comando.

nginx -t

Dovresti vedere il seguente output.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Infine, riavvia il servizio Nginx per applicare le modifiche.

systemctl restart nginx

A questo punto, Nginx-RTMP è installato ed è in ascolto sulla porta 1935. Puoi verificarlo con il seguente comando.

ss -antpl | grep 1935

Dovresti vedere il seguente output.

LISTEN 0      511          0.0.0.0:1935      0.0.0.0:*    users:(("nginx",pid=43388,fd=8),("nginx",pid=43387,fd=8),("nginx",pid=43386,fd=8))

Invia video al server RTMP

Successivamente, dovrai scaricare un video di esempio da YouTube e inviarlo al tuo server RTMP utilizzando FFmpeg.

Innanzitutto, installa il pacchetto youtube-dl ad FFmpeg con il seguente comando.

apt install python3-pip ffmpeg -y
pip install youtube-dl

Successivamente, scarica qualsiasi video da YouTube utilizzando lo strumento da riga di comando youtube-dl.

youtube-dl https://www.youtube.com/watch?v=oNEwEQ0uU1Y

Una volta scaricato il video sul tuo sistema, puoi inviare il video scaricato al server RTMP utilizzando il comando FFmpeg.

ffmpeg -re -i "How to Install Ubuntu 22.04 LTS-oNEwEQ0uU1Y.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://your-server-ip/live/stream &

A questo punto, il video scaricato viene inviato a rtmp://your-server-ip/live/stream

Trasmetti video al lettore VLC

In questa sezione, ti mostreremo come eseguire lo streaming del tuo video dal server RTMP sul software del lettore VLC.

Innanzitutto, accedi al tuo sistema desktop e apri il lettore VLC. Quindi, fai clic su Media => Apri flusso di rete. Dovresti vedere la seguente schermata.

Definisci l'URL del tuo server RTMP e fai clic sul pulsante Riproduci. Se tutto funziona, dovresti vedere il tuo video nella schermata seguente.

Configura le statistiche RTMP per il monitoraggio

A questo punto, il tuo server RTMP è installato e funzionante. Ora dovrai configurare la pagina delle statistiche RTMP per monitorare il tuo streaming.

Innanzitutto, crea una directory per salvare il file stat RTMP utilizzando il seguente comando.

mkdir /var/www/html/rtmp

Successivamente, copia il file stat RTMP nella directory creata.

cp /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl /var/www/html/rtmp/stat.xsl

Successivamente, modifica il file di configurazione dell'host virtuale predefinito di Nginx.

nano /etc/nginx/sites-available/default

Rimuovi tutte le righe predefinite e aggiungi le seguenti righe:

server {
    listen 8080;
    server_name  _;

    # rtmp stat
    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        root /var/www/html/rtmp;
    }

    # rtmp control
    location /control {
        rtmp_control all;
    }
}

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Nginx per applicare le modifiche.

systemctl restart nginx

Accedi alla pagina delle statistiche RTMP

Ora, apri il tuo browser web e accedi alla pagina delle statistiche RTMP utilizzando l'URL http://your-server-ip:8080/stat. Dovresti vedere le statistiche RTMP nella schermata seguente.

Dovrai aggiornare la pagina ogni volta che trasmetti in streaming un video e guardi mentre cambiano le statistiche dello streaming.

Conclusione

Questo post ha spiegato come configurare un server di streaming video utilizzando Nginx-RTMP su Ubuntu 22.04. Testiamo anche il server RTMP tramite lettore VLC. Ora puoi eseguire lo streaming di qualsiasi video sul server RTMP e accedervi da qualsiasi lettore multimediale supportato. Non esitate a chiedermi se avete domande.