Questo tutorial cerca di risolverlo mostrandoti come configurare un server di live streaming personale che sfrutta Nginx, un server web potente e leggero e un proxy inverso e il protocollo RTMP.
Prima di procedere, assicurati:
- Stai eseguendo un server Ubuntu o Debian
- Avere accesso al tuo server tramite SSH
- Privilegi utente root o sudo
Cominciamo.
Cos'è Nginx?
Come accennato in precedenza, Nginx è un server Web open source veloce e leggero e un proxy inverso utilizzato per servire semplici siti Web statici o applicazioni massicce. Nginx è un server web ad alte prestazioni con incredibile velocità e sicurezza. Grazie alla sua natura leggera, è una scelta molto efficiente per i servizi di streaming e il traffico con traffico massiccio.
Puoi saperne di più su Nginx dalla risorsa fornita di seguito:
https://nginx.org/it/docs/
Cos'è Nginx RTMP?
Nginx RTMP è un modulo open source e potente per il server web Nginx. Abilita il protocollo RTMP, HTTP Live Streaming (HLS) e Dynamic Adaptive Streaming su HTTP (DASH).
Puoi saperne di più su HLS e DASH dalla pagina delle risorse:
https://www.cloudflare.com/learning/video/cosa-è-mpeg-dash/
Ora che sai cosa sono Nginx e Nginx RTMP, configuriamo il server:
Configura su server
Il primo passo è ottenere l'accesso al server. Assicurati che SSH sul tuo server sia abilitato e che tu abbia aggiunto le chiavi per un accesso più semplice.
ssh [email protected][e-mail protetta]:~$
Una volta che abbiamo accesso al server, possiamo iniziare a installare i pacchetti e le librerie richiesti. Innanzitutto, assicurati che il tuo server sia aggiornato:
sudo apt-get updatesudo apt-get upgrade -y
Installazione del software richiesto
Per configurare il server di streaming, dovremo creare Nginx dalla sorgente e abilitare il modulo RTMP. Per questo, useremo build-essentials e altri pacchetti. Usa il comando apt di seguito per installare tutte le dipendenze.
sudo apt-get install -y build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-devIl prossimo passo è compilare e installare Nginx con il modulo RTMP abilitato. Per rimanere organizzato, crea una directory per il processo.
mkdir ~/Makecd ~/Crea/
Quindi, clona il modulo nginx-RTMP:
git clone git://github.com/arut/nginx-rtmp-module.idiotaOra dobbiamo scaricare nginx.
Vai su http://nginx.org/it/download.html e seleziona l'opzione di download.
wget http://nginx.org/download/nginx-1.19.8.catrame.gztar xzf nginx-1.19.8.catrame.gz
cd nginx-1.19.8
Il passaggio finale in questa sezione è compilare Nginx con il modulo RMTP abilitato. Usa i comandi qui sotto:
sudo ./configure --with-http_ssl_module --add-module=… /nginx-rtmp-modulesudo make
sudo make install
Configurazione del live streaming
Per abilitare il supporto RTMP, dobbiamo modificare il file di configurazione di nginx e specificare il blocco RTMP.
sudo nano /usr/local/nginx/conf/nginx.confImmettere il blocco di supporto RTMP come:
rtmpserver
ascolta 1935;
ping 30s;
applicazione dal vivo
continuare a vivere;
intercalare su;
hl acceso;
percorso_hls /tmp/hls;
hls_sync 100 ms;
hls_fragment 15s;
http
default_type application/octet-stream;
server
ascolta 80;
posizione /tv
radice /tmp/hls;
tipi
applicazione/vnd.Mela.mpegrl m3u8;
video/mp2t ts;
testo/html html;
Nella configurazione sopra, abilitiamo il modulo RTMP e HLS. Considera la documentazione per imparare come abilitare DASH.
Una volta che hai la configurazione, salva il file e avvia il servizio Nginx.
sudo /usr/local/nginx/sbin/nginxInizia lo streaming
Una volta che hai configurato tutto correttamente, puoi avviare lo streaming usando FFmpeg: è il più semplice. Puoi anche configurare altri strumenti come OBS studio, ma non lo tratterò in questo tutorial.
Usa il comando FFmpeg come:
sudo ffmpeg -re -i sample-mp4-file.mp4 -c copy -f hls rtmp://localhost/live/streamRiproduci lo streaming utilizzando FFplay o VLC Media player sulla risorsa.
ffplay rtmp://IP/live/streamUna volta che il flusso è in esecuzione, puoi esporre il servizio a una rete esterna.
NOTA: Assicurati di aver protetto il tuo server prima di consentire l'accesso pubblico.
Conclusione
Questo tutorial ha spiegato come configurare un server di streaming utilizzando Nginx e il modulo Nginx RTMP. Tieni presente che ci sono molti ingranaggi coinvolti nella creazione di un servizio di streaming e puoi personalizzarlo in base alle tue esigenze.
Considera le seguenti risorse per esplorare di più.
- https://ffmpeg.org/ffmpeg.html
- https://ffmpeg.org/ffplay.html
- https://ffmpeg.org/ffmpeg-formati.html
- https://obsproject.it/docs/
- https://wiki.videolan.org/Documentazione:Streaming_HowTo