Torino ITA)
+39 01119115797
info@netpic.it

Streaming con YouTube di una sessione BigBlueButton

Streaming con YouTube di una sessione BigBlueButton

Perché fare streaming di una sessione

BigBlueButton implementa le funzionalità di web conference di base, consente la connessione di un certo numero di utenti, ma indipendentemente dalla risorse hardware a disposizione, se si ha l’esigenza di distribuire il contenuto a centinaia o addirittura migliaia di utenti di una singola sessione (lezione o conferenza che sia) lo strumento che si può utilizzare è lo streaming  RTMP., ovvero lo Real Time Messaging Protocol, uno stack pensato per effettuare lo streaming su internet di contenuti audio/video.

Sappiamo bene che il fulcro delle funzionalità di BigBlueButton risiede nel coinvolgimento degli utenti, fornendo strumenti quali la chat, lavagna multiutente, note condivise, sondaggi, stanze per sottogruppi di lavoro. Ma questo strumento funziona bene per sessioni di piccole e medie dimensioni e attualmente si sconsiglia, proprio per la struttura globale del progetto, di superare i 100 utenti nella stessa sessione. Inoltre è bene usare le pratiche di risparmio risorse hardware e di banda, attivando la webcam solo per il moderatore e limitando l’uso della voce agli utenti quando necessario. Anche lo sharing del desktop può impattare molto sulle performance per quello consigliamo di usare il più possibile la condivisione di documenti, se possibile in formato PDF.

A volte, tuttavia, si desidera trasmettere una sessione a un numero molto maggiore di utenti. Ovviamente saranno utenti passivi, potranno solo seguire la sessione ma non interagire, ma questo è reso possibile grazie ad uno strumento sviluppato per BigBlueButton che si può facilmente integrare sul server su cui girà.

Questo progetto è bbb-streaming ed il codice necessario può essere scaricato dalla home del progetto.
Installarlo è semplice e normalmente il nostro server ha già i prerequisiti necessari, ma nel caso non li avesse, questi sono i passaggi per adattare la nostra distribuzione Ubuntu 16.

I. Installare Docker (se non già presente sul sistema)

# apt install apt-transport-https ca-certificates curl software-properties-common
# apt install apt-transport-https ca-certificates curl software-properties-common

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable”
# apt update
# apt install docker-ce

2. Installare Docker Compose (se non già presente sul sistema)

# curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose

3. Scaricare bbb-streaming

# wget -O docker-compose.yml https://raw.githubusercontent.com/manishkatyan/bbb-streaming/master/examples/docker-compose.yml.example

4 .Adattare la configurazione al nostro sistema

# nano docker-compose.yml

(Configurazioni minime)
BBB_URL - URL to BBB including http/https e.g. https://your_BigBlueButton_server/bigbluebutton/api
BBB_MEETING_ID - ID of the BBB Meeting (You can get the ID via an API call: https://your_bbb_server/bigbluebutton/api/getMeetings?checksum=)
BBB_SECRET - Secret of your BBB installation (You can get the secret with: bbb-conf --secret)
 # Stream url from Facebook or Youtube:
- BBB_STREAM_URL=rtmp://a.rtmp.youtube.com/live2/pd7h-2v6z-6a93-uz9e-dc4a
# Stream URL for viewers to watch live video:
- BBB_VIEWER_STREAM_URL=https://www.youtube.com/watch?v=WqGUrKDrde0

Per ottenere i parametri indispensabili (BBB_STREAM_URL) occorre avere disposizione un servizio di streaming. Basta che supporti la trasmissione con il protocollo RTMP. Un metodo molto utilizzato è farlo attraverso la “Trasmissione in diretta” di YouTube.
Per poter trasmettere in diretta su YouTube occorre fare richiesta e ci vogliono 24 ore per attivare il servizio ed necessario non avere segnalazioni o violazioni delle policy del contratto. Il servizio è molto efficiente ma ovviamente ci obbliga a sottostare alle sue regole.

Accediamo al nostro profilo YouTube Studio e scegliamo [Crea]>>[Trasmetti dal vino]


A questo punto ci sono tre sistemi per trasmettere, no ovviamente utilizziamo “Stream”.

La schermata che si apre presenta due campi essenziali per ottenere il nostro BBB_STREAM_URL, che sono Chiave Stream e URL dello Stream. Combinati insieme ci permettono di ottenere il valore da mettere nella configurazione di docker-compose.yml

5. Avviare il live streaming da BigBlueButton

A questo punto, una volta adattato il nostro file docker-compose.yml, abbiamo tutto per avviare il docker-compose:

# docker-compse up -d

6. Avviare la trasmissione in diretta su YouTube

Se tutto ha funzionato possiamo avviare la trasmissione in diretta su YouTube

Nello stesso momento sulla piattaforma BigBlueButton avremo lo streaming da YouTube connesso in piattaforma come utente (Live).

Inoltre, se configurata l’opzione “BBB_VIEWER_STREAM_URL”, sarà possibile vedere il link per raggiungere direttamente la diretta in streaming su YouTube. .
Ci sono anche delle controindicazioni che è bene conoscere:

  • bisogna tenere conto delle latenze, ma normalmente se la connessione è fluida non rappresentano un problema.
  • se la connessione a BigBlueButton viene persa, lo streaming si interrompe, va riconnesso manualmente
  • quando si utilizzano i sottogruppi di lavoro, nella schermata di streaming comparirà una finestra di popup di invito e non saremo in grado di tornare alla conferenza. E’ sconsigliato usarli.

7. Verificare la connessione e la riproduzione sulla diretta YouTube

A questo punto possiamo vedere se YouTube ritrasmette la nostra sessione di BigBlueButton. Ma sulla piattaforma avremo un solo utente connesso con grande risparmio di risorse di sistema e la possibilità di raggiungere un elevato numero di utenti.

Esiste ovviamente la possibilità di fare streaming attraverso altri servizi, quello che è importante è ampliare le possibilità di servizio di BigBluButton che ancora una colta colpisce per l’estrema potenza e versatilità.