Mi è capitato che mi chiedessero di fare lo streaming video di alcuni eventi su più piattaforme tipo youtube, facebook, …. . Ora fino a che si tratta di una piattaforma la cosa è fattibile in modo semplice utilizzando un singolo software o anche direttamente lo streaming del software con cui facciamo la call, ma quando si tratta di più piattaforme in contemporanea ci sono svariate scelte.
La prima scelta da fare è quella di scegliere se usare un software per la regia con un servizio di multistreaming tipo Wirecast o Xsplit oppure utilizzare delle piattaforme di restraming tipo restream appunto. Potendo sceglliere è sempre meglio utilizzare la tecnica del restream appunto in quanto la sorgente del flusso di stream in questo caso rimane una sola. Questo evidentemente consente un notevole risparmio di banda per chi da origine al flusso di streaming. Capita infatti che chi da origine ai flussi video di streaming non abbia una capienza di banda sufficiente con conseguente perdita di segnale.
Esiste però anche la possibilità che magari abbiate a disposizione, per altri motivi, un server con IP pubblico sul quale possiate installare un software. Bhé allora in questo caso vediamo come sia possibile trasformare questa macchina nel nostro personale server di restreaming.
La procedura che adesso vedremo è per un server Debian 10 ma può andare bene anche su server Ubuntu. Per prima cosa andiamo ad installare il nostro server web NGINX:
# apt install nginx
poi dobbiamo installare il modulo nginx che lo abilita a fare lo streaming
# apt install libnginx-mod-rtmp
a questo punto dobbiamo andare a modificare il file /etc/nginx/nginx.conf inserendo questa sezione alla fine del file
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# Sotto a questa riga si possono mettere le indicazioni per il restreaming
# push rtmp://x.rtmp.youtube.com/live2/<copia_la streamkey_da_youtube>;
}
}
}
Quindi possiamo riavviare il server web NGINX
systemctl restart nginx
A questo punto il server di streaming sarebbe pronto e lo stream viene avviato inserendo alla voce server del vostro software (tipo OBS-Studio) la stringa
rtmp://<IP_pubblico_del_vostro_server>/live
alla voce codice della diretta potete mettere un codice o una parola a caso che volete. Lo streaming lo potete, in questo caso, vedere da un qualsiasi software video che supporti lo streaming, tipo VLC, insterendo alla voce URL di rete il seguente URL.
rtmp://<IP_pubblico_del_vostro_server>/live/<codice_streaming_inserito in OBS_Studio>
Avviate e dopo qualche secondo potrete vedere la vostra diretta streaming.
Se vogliamo avviare, contemporaneamente, il restaream del video su Youtube dobbiamo, nel file visto soopra /etc/nginx/nginx.conf, abilitare la riga
push rtmp://x.rtmp.youtube.com/live2/<copia_la streamkey_da_youtube>;
cancellando il carattere # e inserendo la corretta streamkey fornita da youtube.
Ora una volta riavviato il server web NGINX con il comando
systemctl restart nginx
tutto ciò che verrà convogliato nel canale rtmp://<IP_pubblico_del_vostro_server>/live verrà anche restreammato anche su youtube con quei parametri.
Per fare lo streaming anche su facebook, però, la questione è leggermente diversa in quanto facebook accetta solo flussi su canale certificato rtmps. Per far questoo dobbiamo prevedere una ulteriore configurazione.
Installiamo un ulteriore pacchetto
apt install stunnel4
Controlliamo che nel file /etc/default/stunnel4 sia presente
ENABLE=1
e che nel file /etc/stunnel/stunnel.conf siano presenti le seguenti configurazioni
pid = /var/run/stunnel4/stunnel.pid
output = /var/log/stunnel4/stunnel.log
setuid = stunnel4
setgid = stunnel4
# https://www.stunnel.org/faq.html
socket = r:TCP_NODELAY=1
socket = l:TCP_NODELAY=1
debug = 4
[fb-live]
client = yes
accept = 1936
connect = live-api-s.facebook.com:443
verifyChain = no
Abilitiamo il servizio all’avvio automatico
systemctl enable stunnel4.service
Riavviamolo
systemctl restart stunnel4.service
Inseriamo nel file /etc/nginx/nginx.conf un ulteriore push per il restream, sotto a quella eventuale di youtube,
push rtmp://127.0.0.1:1936/rtmp/<Facebook_persistent_stream_key>
Riavviamo nginx
systemctl restart nginx
a questo punto tutto il flusso mandato sul canale
rtmp://<IP_pubblico_del_vostro_server>/live
viene restreammato su youtube e su facebook.
Buon Restream a tutti!!!!