Formato SDP per piano unificato - Piano di transizione

Google ha in programma di eseguire la transizione dell'implementazione WebRTC di Chrome dal l'attuale formato SDP (chiamato "Piano B") in un formato conforme agli standard ("Piano unificato", bozza-ietf-rtcweb-jsep) nei prossimi due trimestri.

Il piano prevede cinque fasi e una funzionalità API temporanea.

Chi sarà interessato

Persone che utilizzano più tracce audio o più tracce video con una singola traccia PeerConnection dovrà testare il proprio prodotto in base al Piano unificato e adattare di conseguenza. Nel caso in cui una chiamata venga avviata da un endpoint non Chrome e a cui ha risposto Chrome, la forma dell'offerta potrebbe dover cambiare. Persone che l'analisi SDP dettagliata e gli attributi msid, dovranno verificare che il loro codice di analisi prende il nuovo formato (a=msid). I dettagli su se le modifiche necessarie e il modo in cui le app devono essere dipendono da te. Riteniamo che quasi tutte le applicazioni che utilizzano un solo audio mentre una singola traccia video per RTCPeerConnection non sarà interessata dalla modifica.

Funzionalità API

Stiamo aggiungendo una nuova funzionalità alla RTCConfiguration di RTCPeerConnection:

enum SdpSemantics {
  "plan-b",
  "unified-plan"
};


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

RTCConfiguration può essere passata al costruttore di una RTCPeerConnection, e tutte le offerte e le risposte create saranno in formato Piano unificato. Anche le chiamate a setLocalDescription e setRemoteDescription prevedono l'SDP nel formato Piano unificato; se è nel formato Chrome precedente, tutte le tracce audio e video, tranne la prima, verranno ignorate.

È presente anche un flag della riga di comando (–enable-features=RTCUnifiedPlanByDefault in Chrome M71 e versioni successive, –enable-blink-features=RTCUnifiedPlanByDefault in precedenti) che permette di impostare il valore predefinito di questo flag "piano unificato".

Le fasi

Fase 1: implementa il piano unificato

In questa fase, è stato sviluppato il Piano unificato a fronte di un flag della sperimentazione disponibili dalla versione M65. Fino alla fase 2, era più saggio eseguire test con Chrome Canary utilizzando "–enable-blink-features=RTCUnifiedPlan".

Fase 2: rendi la funzionalità dell'API disponibile a livello generale

Rilasciato in M69 (beta, agosto 2018, versione stabile a settembre 2018)

In questa fase, il valore predefinito del flag sdpSemantics era "plan-b". Nella Nella fase 2, le persone le cui implementazioni dipendevano dal formato SDP dovrebbe eseguire test per vedere se le applicazioni funzionano quando è attivo il piano unificato per gli utilizzi odierni. Per le applicazioni che supportano Firefox, ci aspettiamo che questa sia una procedura esercizio: fai come per Firefox.

Il valore predefinito del flag sdpSemantics può essere modificato in "chrome://flags". cerca la funzionalità "WebRTC: utilizza la semantica SDP del piano unificato per impostazione predefinita".

Fase 3: cambia l'impostazione predefinita

La data per il passaggio era M72 (beta dicembre 2018, stabile a gennaio 2019).

In questa fase, abbiamo modificato il valore predefinito del flag sdpSemantics in "piano unificato". che hanno scoperto di aver bisogno di più tempo per convert imposta il flag sdpSemantics esplicitamente su "plan-b" per recuperare il comportamento precedente.

Fase 4: realizza il "Piano B"

In questa fase, l'impostazione del flag sdpSemantics su "plan-b" genera un'eccezione essere lanciate. Ha inserito Canary da M93. A partire dalla versione M96, l'eccezione in tutti i canali, incluso il canale stabile.

Durante questa fase, una prova relativa al ritiro era disponibile che consentiva di utilizzare il Piano B senza che venisse creata un'eccezione, ma di prova ha smesso di funzionare il 25 maggio 2022.

Fase 5: rimuovi il "Piano B" da Chromium

Al termine della prova, il Piano B verrà rimosso da Chrome. A questo punto, il flag sdpSemantics verrà rimosso. Tentativo di impostarlo su "plan-b" non genera un'eccezione, che però non avrà più alcun effetto.

Il piano B è ancora disponibile dietro a flag o build speciali, ma la rimozione del codice avverrà nella seconda metà del 2022.

Fase 6: depreca e rimuovi "Piano B" da WebRTC

Il piano B è già contrassegnato come deprecato in WebRTC, ma è ancora disponibile. La rimozione dovrebbe avvenire nel 2023.

Preparazione della tua applicazione per il piano unificato

Per informazioni dettagliate sulle differenze tra i piani B e i piani unificato e su come potrebbe essere necessario aggiornare l'applicazione in preparazione per il piano unificato, consulta Guida alla transizione "Piano unificato" (JavaScript)

Per le applicazioni native (C++), consulta il documento "Migrazione di un'applicazione nativa/mobile al Piano unificato"