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.

Grave vídeos dos seus apps da Web

Há muito tempo, a API MediaStreamRecorder é a principal solicitação da chromium.org, com mais de 2.500 estrelas. A gravação de mídia foi adicionada ao Chrome por trás da sinalização de recursos experimentais da Plataforma Web, embora ele só esteja disponível para computadores por enquanto. Isso permite que você grave, reproduza ou faça o download de um vídeo. Há uma demonstração simples no repositório de exemplos do WebRTC (em inglês) e você pode saber mais no anúncio sobre webrtc (em inglês). Um app de exemplo 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 talvez ainda existam bugs a serem resolvidos: registre os problemas no repositório se encontrar problemas.

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

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

Lançamento de MediaDevices.enumerateDevices(). Mais detalhes estão disponíveis no problema 504280 do Chromium. Agora, além dos dispositivos de entrada de áudio e vídeo já fornecidos pelo MediaStreamTrack.getSources(), é possível enumerar dispositivos de saída de áudio. Saiba mais sobre o uso nesta atualização.

Suporte para dispositivos no Windows

O suporte a dispositivos de comunicação padrão no Windows foi adicionado. 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 dos dispositivos de áudio padrão e das comunicações no Windows não serão mais criptografados com hash (problema 535980). Em vez disso, dois IDs reservados, "default" e "communications", são compatíveis e são os mesmos em todas as origens de segurança. Os identificadores de dispositivo vão ser traduzidos para a localidade do navegador. Assim, os desenvolvedores não podem esperar que os marcadores tenham um valor predeterminado. A precisão da renderização de vídeo foi aprimorada pela propagação do carimbo de data/hora da captura até o algoritmo de renderização, onde 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.

Gerenciamento de proxy

O Chrome 47 adiciona uma nova preferência para forçar o envio do tráfego WebRTC por um servidor proxy local, se um estiver configurado, o que é importante para alguns usuários que navegam por uma VPN. Isso significa que o aplicativo WebRTC verá apenas o endereço IP do proxy. Esteja ciente de que isso prejudicará o desempenho do aplicativo e não funcionará, a menos que o aplicativo seja compatível com TURN/TCP ou ICE-TCP. Procure uma nova versão da extensão limitador de rede WebRTC em breve para fornecer uma interface para essa preferência. Há mais informações sobre "vazamento" de endereços IP em Próximas etapas para o WebRTC.

Extensão do Chrome para o limitador de rede WebRTC

...E mais

A capacidade de processamento do canal de dados foi bastante aprimorada para conexões de alta latência.

Lançaremos gradualmente a compatibilidade com o DTLS 1.2 no Chrome 47.

Embora não haja suporte para o VP9 nem H.264 nessa versão, o trabalho continua sendo feito. Esperamos implementar a compatibilidade com o VP9 e uma versão inicial do H.264 (por trás de uma flag) no Chrome 48.

Avisos de utilidade pública

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

Como em todas as versões, recomendamos que os desenvolvedores testem o Chrome nos canais Canary, Dev e Beta e relatem qualquer problema encontrado. A ajuda que recebemos é inestimável. Para saber como enviar um bom relatório do bug, consulte a página do bug WebRTC.

Demonstrações

Saiba mais