Il tuo live stream si blocca ogni volta? In tal caso, dovrai trovare un modo affidabile per ospitare il tuo stream. Ma se non puoi permetterti opzioni costose, niente paura! NGINX RTMP verrà in tuo soccorso. NGINX RTMP è un modulo open source affidabile, quindi sai cosa significa — è GRATUITO!
In questo tutorial, imparerai come configurare un server NGINX RTMP in modo da poter avviare uno streaming live affidabile sul tuo sito web.
Pronto? Continua a leggere e inizia a configurare uno streaming live!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri seguirci, assicurati di avere quanto segue:
- A Linux server – This demo uses Ubuntu 20.04 LTS, but you can use any other Linux distribution with NGINX.
- NGINX installato sul server Linux.
- A non-root user with sudo privileges.
- Risorse minime richieste per eseguire un server di streaming live – 2 GB di RAM, 2 CPU Core e 20 GB di HDD.
Questi valori sono solo suggerimenti. I valori esatti dipendono dalle effettive esigenze di traffico. Più traffico hai, più potenti server avrai bisogno di ospitare e trasmettere il tuo video live. In un ambiente di sviluppo, un server NGINX RTMP con 2 CPU e 2 GB di RAM è sufficiente per i test.
Configurazione di un Server RTMP
Ora che i prerequisiti sono stati completati, puoi passare all’installazione e alla configurazione del tuo server RTMP. Innanzitutto, installerai un modulo NGINX per convertire il tuo server NGINX in un server RTMP, quindi configurerai il file di configurazione NGINX per abilitare lo streaming live per gli utenti.
1. Apri il terminale e esegui il comando apt update
per aggiornare tutti i pacchetti. Questo comando sincronizza il database dei pacchetti con l’ultimo database da Ubuntu.

2. Successivamente, esegui il seguente comando per installare un server RTMP sul tuo server Linux.
Il modulo libnginx-mod-rtmp
è un modulo NGINX che converte il tuo server NGINX in un server RTMP. Questo modulo consente a NGINX di comunicare con Adobe Flash player in modo da poter trasmettere video o audio in diretta ed è ufficialmente supportato dal suo team di sviluppo.

3. Apri il file /etc/nginx/nginx.conf nel tuo editor preferito per configurare il tuo programma live RTMP. Il file nginx.conf è un file di configurazione NGINX, che contiene diverse direttive o blocchi per definire il comportamento del servizio NGINX.
4. Infine, popola il file nginx.conf con il seguente codice, salva le modifiche ed esci dall’editor.
Il codice sottostante indica a NGINX di agire come un server RTMP e abilita lo streaming live per gli utenti.
Sicurezza di rete mediante l’installazione di un firewall
Hai già configurato il tuo server NGINX RTMP, ma dovrai proteggere la tua rete e controllare il flusso di traffico. Come? Installando un firewall, Uncomplicated Firewall (UFW), che è il firewall predefinito in Ubuntu.
Se posizionate il vostro server NGINX RTMP dietro un firewall, dovrete consentire l’apertura della porta del server NGINX RTMP. Poiché avete configurato il vostro server NGINX RTMP per ascoltare sulla porta 1935
, consentirete a questa porta di attraversare il vostro firewall.
1. Eseguite il seguente comando per aggiungere una regola del firewall che apre la porta 1935
sul vostro firewall. Questa regola del firewall consente alla porta del vostro server NGINX RTMP 1935
di essere accessibile per tutte le richieste in entrata e in uscita.

2. Successivamente, eseguite il seguente comando per disabilitare e riabilitare il vostro firewall. Questo comando riavvia essenzialmente il firewall per far sì che qualsiasi modifica al firewall abbia effetto.
3. Infine, eseguite il comando sottostante per verificare lo stato del vostro firewall e verificare se la porta 1935
è accessibile da tutti gli indirizzi IP (Anywhere).

Streaming Video utilizzando FFmpeg
Il vostro server NFINX RTMP è ora attivo, è quindi il momento di utilizzare FFmpeg per creare un esempio di video e trasmetterlo attraverso il vostro server NGINX RTMP. FFmpeg è una soluzione completa per registrare, convertire e trasmettere audio e video in molte applicazioni diverse come VLC, OMXPlayer, VobSub, ecc.
Testerete lo streaming video sul vostro server e potete utilizzare qualsiasi video di dimensioni ridotte per lo streaming.
1. Esegui il comando apt install
di seguito per installare le dipendenze necessarie affinché FFmpeg funzioni correttamente.
Il comando seguente installa quanto segue:
libpcre3
– Una libreria regex utilizzata dal toolkit ffmpeg per analizzare e compilare espressioni regolari.libpcre3-dev
– Questo pacchetto contiene gli header di sviluppo del pacchetto libpcre3.libssl-dev
– La libreria crittografica OpenSSL utilizzata per creare connessioni SSL/TLS nel tuo server RTMP.zlib1g-dev
: La libreria zlib è una libreria di compressione e decompressione che velocizza il trasferimento di file audio e video su Internet.

2. Successivamente, esegui il seguente comando per installare ffmpeg
sul tuo server.

3. Infine, esegui il comando ffmpeg
per eseguire le seguenti operazioni e creare un nuovo flusso live:
- Leggi l’input (
re
) dal file sorgente (i
) al frame rate originale. Assicurati di sostituirevideo.mp4
con il percorso e il nome del tuo video. - Copia il formato video integralmente (
c:v copy
), e codifica l’audio con il codec AAC (c:a aac
). - Imposta il sample rate audio a 44100 Hz (
ar 44100
). Se il sample rate del tuo video è inferiore a questo valore (44100 Hz), FFmpeg esegue un’ interpolazione per aumentare il sample rate. - Imposta i canali audio su un canale (mono) (\texttt{ac 1}), e il formato video che FFmpeg trasmetterà (\texttt{-f flv}).
- Configura il tuo programma live RTMP (\texttt{rtmp://localhost/live/streamname.flv}) che hai configurato nella sezione “Configurazione di un server RTMP” (passo quattro). Puoi cambiare \texttt{streamname.flv} con qualsiasi nome preferisci.
Come vedi di seguito, il comando \texttt{ffmpeg} stampa il frame al secondo che rileva, il bitrate, e gli fps del flusso live RTMP appena creato.

Conclusione
In questo tutorial, hai imparato come configurare il tuo server RTMP NGINX e abilitare i flussi live sul tuo server modificando il file di configurazione NGINX. Hai anche toccato la configurazione di un flusso video live utilizzando lo strumento FFmpeg attraverso il tuo server RTMP NGINX.
Ti sei appena reso conto che creare un flusso live non deve costarti ogni centesimo. A questo punto, perché non integrare il tuo flusso nella tua pagina web utilizzando l’HTML5 elemento \texttt{