Home » Sviluppo Siti Web » Configurare un Server Streaming Video con Nginx-RTMP su Ubuntu 20.04

Configurare un Server Streaming Video con Nginx-RTMP su Ubuntu 20.04

In questo articolo, esploriamo come configurare un server di streaming video utilizzando Nginx RTMP su un sistema Ubuntu 20.04. Tratteremo i passaggi necessari per installare e configurare Nginx con il modulo RTMP, come configurare i flussi di streaming e come integrare un player video con Video.js. Questa guida dettagliata è pensata per aiutare sia i…

Due dispositivi in posizione per riprendere una persona durante una sessione di live streaming.

Se vuoi configurare un server di streaming video utilizzando Nginx-RTMP su Ubuntu 20.04, allora questa guida è per te. Nel mondo moderno dello streaming video, una delle configurazioni più popolari è Nginx-RTMP, che è ciò che coprirà questa guida, assieme alla visualizzazione tramite player VIDEO JS.

Prerequisiti per configurare Nginx-RTMP su Ubuntu 20.04:

  • Un server Ubuntu 20.04 con utente che ha i privilegi sudo;
  • Server Web Nginx installato.

Aggiorniamo la macchina ubuntu 20.04

Inizia aggiornando il repository apt:

sudo apt-get update

Considera l’aggiornamento del software di sistema:

sudo apt-get upgrade

Installazione e configurazione di Nginx-RTMP su Ubuntu 20.04

Installare il modulo per il protocollo RTMP su Nginx:

sudo apt install libnginx-mod-rtmp

Dovrai aggiungere un blocco di codice al tuo file di configurazione Nginx che definisce dove e come sarà disponibile il flusso.

Apri il file con nano:

sudo nano /etc/nginx/nginx.conf

e aggiungi alla fine del file questo codice sotto:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

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

Premi Ctrl+X, poi Y e Invio per salvare e chiudere il file.

Ora dovrai aprire la porta predefinita nel firewall:

sudo ufw allow 1935/tcp

Per concludere questa prima fase di configurazione, riavviate il server web Nginx:

sudo systemctl restart nginx

Live Streaming: come inviare video al server RTMP

Installa OBS e configurarlo con i seguenti parametri:

Servizio: Personalizzato
Server: rtmp://www.example.com/live
Chiave Stream: test

Apri nuovamente il file di configurazione principale di Nginx:

sudo nano /etc/nginx/nginx.conf

e aggiungi questo:

. . .
allow publish 127.0.0.1;
allow publish indirizzo_IP_locale;

deny publish all;

# abilita sotto per consentire tutto
#allow publish all; 
. . .

Ctrl+X, poi Y e Invio per salvare e chiudere il file, quindi ricarica Nginx:

sudo systemctl reload nginx.service

Prova a visualizzare il tuo stream in un lettore multimediale tipo VLC Media Player.

Clicca File, VLC Media, e poi apri flusso di rete e inserisci:

rtmp://www.example.com/live/test

Visualizzazione del live stream su una pagina HTML con Ubuntu 20.04 e Nginx-RTMP

Potresti fare in modo che gli utenti possano eseguire lo streaming di un video dal tuo server caricando una semplice pagina del tuo dominio utilizzando direttamente un browser web.

Segui le istruzioni sotto:

sudo nano /etc/nginx/nginx.conf

e aggiorna nginx.conf:

...
rtmp {
        server {
                ...

                application live {
                        ...
                        ...
                        hls on;
                        hls_path           
                        /var/www/example.com/html/stream;
                        hls_sync 100ms;
                        hls_fragment 3;
                        hls_playlist_length 60;
                        allow play all;
                }
        }
}
...

Salva e chiudi il file.

Per essere incorporato su altri domini diversi dal tuo aggiungi questo al tuo sites-available/example.com:

sudo nano /etc/nginx/sites-available/example.com

incolla:

server {
    ...
    ...
    add_header Access-Control-Allow-Origin *;
    ...
    ...
}

Puoi limitare accesso solo ad alcuni siti:

server {
    ...
    ...
    add_header Access-Control-Allow-Origin "example1.com";
    add_header Access-Control-Allow-Origin "example2.com";
    add_header Access-Control-Allow-Origin "example3.com";
    ...
    ...
}

Aggiungi il player VIDEO JS alla pagina HTML

Crea una pagina sul tuo dominio e incolla il codice sotto per il player VIDEO JS:

<html>
<head>
  <link href="https://vjs.zencdn.net/7.20.2/video-js.css" rel="stylesheet" />

  <!-- If you'd like to support IE8 (for Video.js versions prior to v7) -->
  <!-- <script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script> -->
</head>

<body>
  <video
    id="my-video"
    class="video-js"
    controls
    preload="auto"
    width="640"
    height="264"
    poster="MY_VIDEO_POSTER.jpg"
    data-setup="{}"
  >
        <source src="https://www.example.com/stream/test.m3u8" type='application/x-mpegURL' />
    <p class="vjs-no-js">
      To view this video please enable JavaScript, and consider upgrading to a
      web browser that
      <a href="https://videojs.com/html5-video-support/" target="_blank"
        >supports HTML5 video</a
      >
    </p>
  </video>

  <script src="https://vjs.zencdn.net/7.20.2/video.min.js"></script>
</body>
</html>

Buon Live Streaming a tutti.