Google is committed to advancing racial equity for Black communities. See how.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Formato SDP do Plano Unificado - plano de transição

O Google planeja fazer a transição da implementação WebRTC do Chrome do formato SDP atual (chamado "Plano B") para um formato compatível com os padrões ("Plano Unificado", draft-ietf-rtcweb-jsep) nos próximos trimestres.

O plano envolve 4 fases e um recurso de API transitório.

Quem será afetado

As pessoas que usam várias trilhas de áudio ou várias trilhas de vídeo em um único PeerConnection terão que testar seus produtos no Plano Unificado e adaptar-se de acordo. No caso de uma chamada ser iniciada a partir de um ponto de extremidade que não seja o Chrome e respondida pelo Chrome, talvez a forma da oferta seja alterada. As pessoas que analisam detalhadamente o SDP e se preocupam com os atributos msid precisarão verificar se o código de análise seleciona o novo formato (a = msid). Os detalhes sobre se as alterações serão necessárias e como os aplicativos precisam ser alterados dependerão do aplicativo. Acreditamos que quase todos os aplicativos que usam apenas um único áudio e uma única faixa de vídeo por RTCPeerConnection não serão afetados pela alteração.

O recurso da API

Estamos adicionando um novo recurso à configuração RTCCeerConnection do RTCPeerConnection:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}
 

A configuração RTCC pode ser transmitida ao construtor de um RTCPeerConnection, e todas as ofertas e respostas construídas estarão no formato de plano unificado. As chamadas para setLocalDescription e setRemoteDescription também esperam que o SDP esteja no formato do Plano Unificado; se estiver no formato herdado do Chrome, todos, exceto a primeira faixa de áudio e a primeira faixa de vídeo, serão ignorados.

Há também um sinalizador de linha de comando (–enable-features = RTCUnifiedPlanByDefault no Chrome M71 e acima, –enable-blink-features = RTCUnifiedPlanByDefault nas versões anteriores) que permite que o valor padrão desse sinalizador seja definido como “plano unificado”.

As fases

Fase 1: implementar o plano unificado

O Plano Unificado está atualmente desenvolvido e a bandeira para experimentação está disponível na M65. Até a fase 2, é mais prudente testar com o Canary. Se você executar o Chrome com "–enable-blink-features = RTCUnifiedPlan", terá acesso ao recurso "sdpSemantics" descrito acima e poderá começar a testar com o Unified Plan.

Fase 2: disponibilizar o recurso da API em geral

Lançado no M69 (beta em agosto de 2018, estável em setembro de 2018)

Nesta fase, o valor padrão do sinalizador sdpSemantics é "plan-b". Na Fase 2, esperamos que pessoas com implementações que dependem do formato SDP executem testes para ver se seus aplicativos funcionam quando o Unified Plan está em uso. Para aplicativos que suportam o Firefox, esperamos que este seja um exercício muito simples: faça como faria no Firefox.

O valor padrão do sinalizador sdpSemantics pode ser alterado em "chrome: // flags"; procure o recurso "WebRTC: use a Semântica do Unified Plan SDP por padrão".

Fase 3: alternar o padrão

A data da troca será definida em consulta com os usuários, após extensos testes. Nosso plano atual é o M72 (beta dezembro de 2018, estável em janeiro de 2019).

Nesta fase, alteraremos o valor padrão do sinalizador sdpSemantics para "plano unificado". Os aplicativos que descobrem que precisam de mais tempo para converter podem definir explicitamente o sinalizador sdpSemantics como "plan-b" para recuperar o comportamento anterior.

Como parte do teste, esperamos tentar alterar o valor padrão da bandeira no Canary várias vezes durante o ciclo de desenvolvimento de M71 e M72.

Monitoraremos o uso da bandeira e a quantidade de SDP que está sendo recebida com a semântica do "Plano B", para definir a data da fase 4.

Fase 4: Remova o "plano B"

Nesta fase, o sinalizador sdpSemantics e todo o código de suporte ao Plano B serão removidos do Chrome. Definir o sinalizador sdpSemantics não será um erro, mas não terá efeito.

Preparando seu aplicativo para o plano unificado

Para obter informações detalhadas sobre as diferenças entre o plano B e o plano unificado e como o aplicativo pode precisar ser atualizado na preparação do plano unificado, consulte o Guia de transição do "Plano unificado" (JavaScript)

Para aplicativos nativos (C ++), consulte o documento “Migrando seu aplicativo nativo / móvel para o Unified Plan”