Passa al contenuto principale

3.7. Simulcast (Trasmissione simultanea)

3.7. Simulcast (Trasmissione simultanea)

JSEP supporta la trasmissione simulcast di un MediaStreamTrack, dove più codifiche del media sorgente possono essere trasmesse nel contesto di una singola sezione "m=". L'attuale API JSEP è progettata per consentire alle applicazioni di inviare media in simulcast ma solo di ricevere una singola codifica. Questo consente scenari multi-utente in cui ogni client mittente invia più codifiche a un server, che poi, per ogni client ricevente, sceglie la codifica appropriata da inoltrare.

Le applicazioni richiedono il supporto per il simulcast configurando più codifiche su un RtpSender. Alla generazione di un'offerta o di una risposta, queste codifiche sono indicate tramite marcature SDP sulla sezione "m=" corrispondente, come descritto di seguito. I ricevitori che comprendono il simulcast e sono disposti a riceverlo includeranno anche marcature SDP per indicare il loro supporto, e gli endpoint JSEP utilizzeranno queste marcature per determinare se il simulcast è consentito per un determinato RtpSender. Se il supporto del simulcast non viene negoziato, l'RtpSender utilizzerà solo la prima codifica configurata.

Si noti che i parametri simulcast esatti dipendono dall'applicazione mittente. Mentre le suddette marcature SDP sono fornite per garantire che il lato remoto possa ricevere e demultiplexare più codifiche simulcast, le risoluzioni e i bitrate specifici da utilizzare per ciascuna codifica sono puramente una decisione lato mittente in JSEP.

JSEP attualmente non fornisce un meccanismo per configurare la ricezione del simulcast. Ciò significa che se il simulcast è offerto dall'endpoint remoto, la risposta generata da un endpoint JSEP non indicherà il supporto per la ricezione del simulcast, e come tale l'endpoint remoto invierà solo una singola codifica per sezione "m=".

Inoltre, JSEP non fornisce un meccanismo per gestire un'offerta in arrivo che richiede simulcast dall'endpoint JSEP. Ciò significa che la configurazione del simulcast nel caso in cui l'endpoint JSEP riceva l'offerta iniziale richiede segnalazione fuori banda o ispezione SDP. Tuttavia, nel caso in cui l'endpoint JSEP configuri il simulcast nella sua offerta iniziale, tutti i flussi simulcast stabiliti continueranno a funzionare alla ricezione di una nuova offerta in arrivo. Le versioni future di questa specifica potrebbero aggiungere API aggiuntive per gestire lo scenario dell'offerta iniziale in arrivo.

Quando si utilizza JSEP per trasmettere più codifiche da un RtpSender, vengono utilizzate le tecniche di [RFC8853] e [RFC8851]. In particolare, quando sono state configurate più codifiche per un RtpSender, la sezione "m=" per l'RtpSender includerà un attributo "a=simulcast", come definito in [RFC8853], Sezione 5.1, con una descrizione del flusso simulcast "send" che elenca ciascuna codifica desiderata, e nessuna descrizione del flusso simulcast "recv". La sezione "m=" includerà anche un attributo "a=rid" per ciascuna codifica, come specificato in [RFC8851], Sezione 4; l'uso degli identificatori di restrizione (RID, chiamati anche rid-ids o RtpStreamIds) consente di disambiguare le singole codifiche anche se fanno tutte parte della stessa sezione "m=".