Lo streaming di video dal vivo è incredibilmente popolare e continua a crescere. Piattaforme come Twitch di Amazon e YouTube di Google vantano milioni di utenti che trasmettono in streaming e consumano innumerevoli ore di contenuti multimediali live e registrati. Questi servizi sono spesso gratuiti, ma richiedono di avere un account e generalmente di mantenere i tuoi contenuti dietro annunci pubblicitari. Alcune persone non hanno bisogno che i loro video siano disponibili al pubblico o vogliono semplicemente un maggiore controllo sui loro contenuti. Per fortuna, con la potenza del software open source, chiunque può configurare un server di streaming live.
Per iniziare
In questo tutorial spiegherò come configurare un server di live streaming di base con un sistema operativo Linux o BSD.
Questo porta all'inevitabile questione dei requisiti di sistema. Questi possono variare, poiché ci sono molte variabili coinvolte nello streaming live, come:
- Qualità del flusso: Vuoi trasmettere in streaming in alta definizione o la definizione standard soddisferà le tue esigenze?
- Visualizzazione: Quanti spettatori ti aspetti per i tuoi video?
- Archiviazione: Hai intenzione di conservare le copie salvate del tuo streaming video?
- Accesso: Il tuo stream sarà privato o aperto al mondo?
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Non ci sono regole fisse quando si tratta di requisiti di sistema, quindi ti consiglio di sperimentare e trovare ciò che funziona meglio per le tue esigenze. Ho installato il mio server su una macchina virtuale con 4 GB di RAM, un disco rigido da 20 GB e un singolo core del processore Intel i7.
Questo progetto utilizza il protocollo di messaggistica in tempo reale (RTMP) per gestire lo streaming audio e video. Sono disponibili altri protocolli, ma ho scelto RTMP perché ha un ampio supporto. Man mano che standard aperti come WebRTC diventano più compatibili, consiglierei questo percorso.
È anche molto importante sapere che "live" non significa sempre istantaneo. Un flusso video deve essere codificato, trasferito, memorizzato nel buffer e visualizzato, il che spesso aggiunge ritardi. Il ritardo può essere ridotto o allungato a seconda del tipo di stream che stai creando e dei suoi attributi.
Configurazione di un server Linux
Puoi utilizzare molte diverse distribuzioni di Linux, ma io preferisco Ubuntu, quindi ho scaricato l'edizione Ubuntu Server per il mio sistema operativo. Se preferisci che il tuo server abbia un'interfaccia utente grafica (GUI), sentiti libero di usare Ubuntu Desktop o uno dei suoi tanti gusti. Quindi, ho avviato il programma di installazione di Ubuntu sul mio computer o macchina virtuale e ho scelto le impostazioni che meglio si adattavano al mio ambiente. Di seguito sono riportati i passaggi che ho eseguito.
Nota:poiché questo è un server, probabilmente vorrai impostare alcune impostazioni di rete statiche.
Al termine del programma di installazione e al riavvio del sistema, verrai accolto con un nuovo adorabile sistema Ubuntu. Come con qualsiasi sistema operativo appena installato, installa tutti gli aggiornamenti disponibili:
sudo apt update
sudo apt upgrade
Questo server di streaming utilizzerà il server web Nginx molto potente e versatile, quindi dovrai installarlo:
sudo apt install nginx
Quindi dovrai ottenere il modulo RTMP in modo che Nginx possa gestire il tuo flusso multimediale:
sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp
Modifica la configurazione del tuo server web in modo che possa accettare e fornire il tuo flusso multimediale.
sudo nano /etc/nginx/nginx.conf
Scorri fino in fondo al file di configurazione e aggiungi il seguente codice:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
Salva la configurazione Poiché sono un eretico, utilizzo Nano per modificare i file di configurazione. In Nano, puoi salvare la tua configurazione premendo Ctrl+X , S , quindi Invio.
Questa è una configurazione molto minima che creerà un server di streaming funzionante. Aggiungerai a questa configurazione in seguito, ma questo è un ottimo punto di partenza.
Tuttavia, prima di poter iniziare il tuo primo stream, dovrai riavviare Nginx con la sua nuova configurazione:
sudo systemctl restart nginx
Configurazione di un server BSD
Se sei un tipo da "bestia", anche mettere in funzione un server di streaming è diabolicamente facile.
Vai al sito web di FreeBSD e scarica l'ultima versione. Avvia il programma di installazione di FreeBSD sul tuo computer o macchina virtuale e segui i passaggi iniziali e scegli le impostazioni che meglio si adattano al tuo ambiente. Poiché questo è un server, probabilmente vorrai impostare alcune impostazioni di rete statiche.
Dopo che il programma di installazione è terminato e il tuo sistema si è riavviato, dovresti avere un nuovo brillante sistema FreeBSD. Come qualsiasi altro sistema appena installato, probabilmente vorrai aggiornare tutto (da questo passaggio in avanti, assicurati di aver effettuato l'accesso come root):
pkg update
pkg upgrade
Installo Nano per modificare i file di configurazione:
pkg install nano
Questo server di streaming utilizzerà il server web Nginx molto potente e versatile. Puoi creare Nginx usando gli eccellenti port sistema che vanta FreeBSD.
Per prima cosa, aggiorna l'albero delle porte:
portsnap fetch
portsnap extract
Passare alla directory delle porte di Nginx:
cd /usr/ports/www/nginx
E inizia a creare Nginx eseguendo:
make install
Vedrai una schermata che chiede quali moduli includere nella build di Nginx. Per questo progetto, dovrai aggiungere il modulo RTMP. Scorri verso il basso fino a selezionare il modulo RTMP e premi Barra spaziatrice . Quindi premi Invio per procedere con il resto della compilazione e dell'installazione.
Una volta terminata l'installazione di Nginx, è il momento di configurarlo per scopi di streaming.
Innanzitutto, aggiungi una voce in /etc/rc.conf per garantire che il server Nginx si avvii all'avvio del sistema:
nano /etc/rc.conf
Aggiungi questo testo al file:
nginx_enable="YES"
Quindi, crea una directory webroot da cui Nginx servirà il suo contenuto. Io chiamo il mio stream :
cd /usr/local/www/
mkdir stream
chmod -R 755 stream/
Ora che hai creato la tua directory di flusso, configura Nginx modificando il suo file di configurazione:
nano /usr/local/etc/nginx/nginx.conf
Carica i tuoi moduli di streaming nella parte superiore del file:
load_module /usr/local/libexec/nginx/ngx_stream_module.so;
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;
Sotto il Server sezione, cambia la posizione della webroot in modo che corrisponda a quella che hai creato in precedenza:
Location / {
root /usr/local/www/stream
}
E infine, aggiungi le tue impostazioni RTMP in modo che Nginx sappia come gestire i tuoi flussi multimediali:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
Salva la configurazione In Nano, puoi farlo premendo Ctrl+X , S , quindi Invio.
Come puoi vedere, questa è una configurazione molto minima che creerà un server di streaming funzionante. Successivamente, aggiungerai questa configurazione, ma questo ti fornirà un ottimo punto di partenza.
Tuttavia, prima di poter iniziare il tuo primo stream, dovrai riavviare Nginx con la sua nuova configurazione:
service nginx restart
Configura il tuo software di streaming
Trasmissione con OBS
Ora che il tuo server è pronto per accettare i tuoi flussi video, è il momento di configurare il tuo software di streaming. Questo tutorial utilizza il potente e open source Open Broadcast Studio (OBS).
Vai al sito Web di OBS e trova la build per il tuo sistema operativo e installala. Una volta avviato OBS, dovresti vedere una procedura guidata per la prima esecuzione che ti aiuterà a configurare OBS con le impostazioni più adatte al tuo hardware.
OBS non sta acquisendo nulla perché non gli hai fornito una fonte. Per questo tutorial, acquisirai semplicemente il tuo desktop per lo streaming. Basta fare clic su + pulsante in Fonte , scegli Acquisizione schermo e seleziona il desktop che desideri acquisire.
Fai clic su OK e dovresti vedere OBS che esegue il mirroring del desktop.
Ora è il momento di inviare il flusso video appena configurato al tuo server. In OBS, fai clic su File> Impostazioni . Fai clic su Stream sezione e imposta Tipo di stream a Server di streaming personalizzato .
Nella casella dell'URL, inserisci il prefisso rtmp:// seguito dall'indirizzo IP del tuo server di streaming seguito da /live . Ad esempio, rtmp://INDIRIZZO-IP/live .
Successivamente, probabilmente vorrai inserire una chiave Stream, un identificatore speciale richiesto per visualizzare il tuo stream. Inserisci la chiave che desideri (e che ricordi) nella Chiave stream casella.
Fai clic su Applica e poi OK .
Ora che OBS è configurato per inviare il tuo stream al tuo server, puoi avviare il tuo primo stream. Fai clic su Avvia streaming .
Se tutto ha funzionato, dovresti vedere il pulsante cambiare in Interrompi streaming e alcune metriche della larghezza di banda verranno visualizzate nella parte inferiore di OBS.
Se ricevi un errore, ricontrolla le Impostazioni flusso in OBS per errori di ortografia. Se tutto sembra a posto, potrebbe esserci un altro problema che ne impedisce il funzionamento.
Visualizzazione del tuo stream
Un video dal vivo non è molto buono se nessuno lo sta guardando, quindi sii il tuo primo spettatore!
Esistono numerosi lettori multimediali open source che supportano RTMP, ma il più noto è probabilmente il lettore multimediale VLC.
Dopo aver installato e avviato VLC, apri il tuo stream facendo clic su Media> Apri flusso di rete . Inserisci il percorso del tuo stream, aggiungendo la Stream Key che hai impostato in OBS, quindi fai clic su Riproduci . Ad esempio, rtmp://IP-ADDRESS/live/SECRET-KEY .
Ora dovresti vedere il tuo streaming video live!
Dove andare dopo?
Questa è una configurazione molto semplice che ti farà decollare. Ecco altre due funzionalità che probabilmente vorrai utilizzare.
-
Limitare l'accesso: Il passaggio successivo che potresti voler compiere è limitare l'accesso al tuo server, poiché l'impostazione predefinita consente a chiunque di eseguire lo streaming da e verso il server. Esistono vari modi per configurarlo, come un firewall del sistema operativo, un file .htaccess o persino utilizzando i controlli di accesso integrati nel modulo RTMP.
-
Registra stream: Questa semplice configurazione di Nginx eseguirà solo lo streaming e non salverà i tuoi video, ma è facile da aggiungere. Nella configurazione di Nginx, nella sezione RTMP, imposta le opzioni di registrazione e la posizione in cui desideri salvare i tuoi video. Assicurati che il percorso che hai impostato esista e che Nginx sia in grado di scrivervi.
application live {
live on;
record all;
record_path /var/www/html/recordings;
record_unique on;
}
Il mondo del live streaming è in continua evoluzione e se sei interessato a usi più avanzati, ci sono molte altre fantastiche risorse che puoi trovare in giro per Internet. Buona fortuna e buon streaming!