WebRTC do Chrome 47: gravação de mídia, origens seguras e gerenciamento de proxy

O Chrome 47 inclui várias melhorias e atualizações significativas do WebRTC.

Gravar vídeos dos seus apps da Web

A API MediaStreamRecorder é há muito tempo a solicitação mais popular do chromium.org, com mais de 2.500 estrelas. A gravação de mídia agora foi adicionada ao Chrome por trás da flag de recursos experimentais da plataforma da Web, mas por enquanto ela está disponível apenas para computadores. Isso permite gravar, reproduzir ou baixar vídeos. Há uma demonstração simples no repositório de amostras do WebRTC. Saiba mais no anúncio do discuss-webrtc. Um exemplo de app do Chrome para gravar vídeos da captura de tela está disponível em github.com/niklasenbom/RecordingApp. Essas são implementações totalmente novas, e ainda pode haver bugs a serem corrigidos. Se você encontrar problemas, registre-os nos repositórios.

Captura de tela da demonstração do MediaRecorder no repositório de amostras do WebRTC no GitHub

Seleção do dispositivo de saída de áudio

O MediaDevices.enumerateDevices() foi lançado. Mais detalhes estão disponíveis no problema 504280 do Chromium. Agora você pode enumerar dispositivos de saída de áudio, além dos dispositivos de entrada de áudio e vídeo que o MediaStreamTrack.getSources() já oferece. Saiba mais sobre como usar nesta atualização.

Compatibilidade de dispositivos no Windows

Agora há suporte para o dispositivo de comunicação padrão no Windows. Isso significa que, ao enumerar dispositivos de áudio no Windows, haverá uma entrada adicional para o dispositivo de comunicação cujo ID será "communications".

Os IDs do dispositivo de áudio padrão (e comunicações no Windows) não serão mais hashados (problema 535980). Em vez disso, dois IDs reservados, "default" e "communications", são compatíveis e iguais em todas as origens de segurança. Os rótulos dos dispositivos serão traduzidos para a localidade do navegador. Portanto, os desenvolvedores não devem esperar que eles tenham um valor predeterminado. A precisão da renderização de vídeo foi melhorada com a propagação do carimbo de data/hora da captura até o algoritmo de renderização, em que o vsync correto pode ser escolhido com base nisso. Para a plataforma Windows, o carimbo de data/hora da captura também é mais preciso no Chrome 47.

Processamento de proxy

O Chrome 47 adiciona uma nova preferência para forçar o tráfego WebRTC a ser enviado por um servidor proxy local, se um estiver configurado. Isso é importante para alguns usuários que navegam por uma VPN. Isso significa que o aplicativo WebRTC só vai ver o endereço IP do proxy. Isso prejudica o desempenho do aplicativo e não funciona a menos que ele seja compatível com TURN/TCP ou ICE-TCP. Em breve, uma nova versão da Extensão WebRTC Network Limiter vai oferecer uma interface para essa preferência. Há mais informações sobre o "vazamento" de endereços IP em O que vem a seguir para o WebRTC.

Extensão do Chrome WebRTC Network Limiter

…e muito mais

A capacidade de transferência do canal de dados foi muito melhorada para conexões de alta latência.

Vamos lançar gradualmente o suporte para DTLS 1.2 no período do Chrome 47.

Embora nem o VP9 nem o H.264 sejam compatíveis nesta versão, o trabalho nesses formatos continua, e esperamos implementar o suporte ao VP9 e uma versão inicial do H.264 (atrás de uma flag) no Chrome 48.

Avisos de utilidade pública

  • A partir do Chrome 47, as solicitações getUserMedia() só são permitidas de origens seguras: HTTPS ou localhost.
  • O suporte ao canal de dados RTP foi removido. Os aplicativos restantes que ainda usam canais de dados RTP precisam usar os canais de dados padrão.

Como em todos os lançamentos, incentivamos os desenvolvedores a testar o Chrome nos canais Canary, Dev e Beta e informar qualquer problema encontrado. A ajuda que recebemos é muito importante. Para saber como enviar um bom relatório de bug, consulte a página de bugs do WebRTC (em inglês).

Demonstrações

Saiba mais