- Os desenvolvedores da Web podem controlar o modo picture-in-picture para vídeos.
- Decodificador AV1 agora é compatível com o Chrome para computador x86-64.
- A reprodução e o armazenamento em buffer entre codecs e cross-bytestream são possíveis no MSE.
- O Chrome agora é compatível com Opus em MP4 com MSE.
- A reprodução de conteúdo protegido é permitida por padrão no Android.
Assistir vídeo usando o picture-in-picture
O picture-in-picture (PiP) permite que os usuários assistam vídeos em uma janela flutuante (sempre por cima de outras janelas) para acompanhar o que estão assistindo enquanto interagem com outros sites ou apps. Com a nova API Picture-in-Picture Web, você pode iniciar e controlar esse recurso em vídeos no seu site.
Leia nosso artigo para saber tudo sobre isso.
Decodificador AV1
O AV1 é um codec de última geração desenvolvido pela Alliance for Open Media (link em inglês). O AV1 melhora a eficiência de compactação em mais de 30% em relação ao codec de vídeo de última geração, o VP9. O Chrome 70 adiciona um decodificador AV1 ao Chrome Desktop x86-64 com base na especificação oficial de bitstream (link em inglês). No momento, o suporte está limitado ao perfil 0 "Principal" e não inclui recursos de codificação. O contêiner compatível é MP4 (ISO-BMFF). Consulte Contêineres e codecs para uma breve explicação sobre os contêineres.
Para testar o AV1:
- Acesse a página do YouTube TestTube.
- Selecione "Preferir AV1 para SD" ou "Sempre preferir AV1" para ter a resolução AV1 desejada. Em resoluções mais altas, é mais provável que o AV1 tenha problemas de desempenho de reprodução em alguns dispositivos.
- Tente reproduzir clipes do YouTube da playlist de lançamento do AV1 Beta.
- Confirme o codec av01 em "Estatísticas para nerds".
Compatibilidade com codec e alternância de contêineres no MSE.
O Chrome está adicionando suporte a transições aprimoradas de codec ou cross-bytestream
na reprodução de extensões de origem de mídia usando um novo
método changeType()
no SourceBuffer
. Ele permite que o tipo de bytes
de mídia anexados ao SourceBuffer
seja mudado depois disso.
A versão atual do MSE oferece suporte
à reprodução adaptativa de mídia. No entanto, a adaptação exige que qualquer mídia anexada
a um SourceBuffer
precise estar em conformidade com o tipo MIME fornecido ao criar
inicialmente o SourceBuffer
via MediaSource.addSourceBuffer(type)
. Os codecs
desse tipo e todos os segmentos de inicialização analisados anteriormente precisam permanecer
os mesmos. Isso significa que o site precisa seguir etapas explícitas para
conseguir a alternância de codec ou de bytestream (usando vários elementos de mídia ou
faixas de SourceBuffer
e alternando entre eles), aumentando a complexidade
do aplicativo e a latência visível para o usuário. Essas transições exigem que o app da Web
realize uma ação síncrona na linha de execução principal do renderizador. Essa latência de transição
prejudica a suavidade da reprodução de mídia entre as transições.
Com o novo método changeType()
, um SourceBuffer
pode armazenar em buffer e oferecer suporte
à reprodução em diferentes formatos e codecs de bytecode. Esse novo método
mantém mídia previamente armazenada em buffer, remoção ou remoção de frames codificados pelo MSE
futuras e aproveita a lógica de mesclagem e armazenamento em buffer no
algoritmo de processamento de frames codificado do MSE atual.
Confira como usar o método changeType()
:
const sourceBuffer = myMediaSource.addSourceBuffer('video/webm; codecs="opus, vp09.00.10.08"');
sourceBuffer.appendBuffer(someWebmOpusVP9Data);
// Later on...
if ('changeType' in sourceBuffer) {
// Change source buffer type and append new data.
sourceBuffer.changeType('video/mp4; codecs="mp4a.40.5, avc1.4d001e"');
sourceBuffer.appendBuffer(someMp4AacAvcData);
}
Como esperado, se o navegador não oferecer suporte ao tipo transmitido, esse método
gerará uma exceção NotSupportedError
.
Confira o exemplo (link em inglês) para reproduzir com buffer cruzado e cross-bytestream e reprodução de um elemento de áudio.
Intent de envio | Rastreador de status do Chrome | Bug do Chromium
Opus em MP4 para MSE
O codec de áudio aberto e altamente versátil Opus oferece suporte aos elementos
<audio>
e <video>
desde o Chrome 33. O suporte à Opus em ISO-BMFF
(também conhecido como Opus em MP4) foi adicionado depois. Agora, o Opus em MP4 está disponível no Chrome
70 para Media Source Extensions.
Veja como detectar se o Opus no MP4 é compatível com o MSE:
if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
// TODO: Fetch data and feed it to a media source.
}
Se você quiser ver um exemplo completo, confira nossa amostra oficial.
Devido à falta de ferramentas para multiplicar o Opus em MP4 com valores de corte final e
pré-pulsão corretos, se essa precisão for importante para você, será necessário usar
SourceBuffer.appendWindow{Start,End}
e SourceBuffer.timestampOffset
no
Chrome para ter uma reprodução precisa de amostra.
Intent de envio | Rastreador de status do Chrome | Bug do Chromium
Permitir a reprodução de conteúdo protegido por padrão no Android
No Chrome 70 para Android, o valor padrão da configuração do site "Conteúdo protegido" muda de "Perguntar primeiro" para "Permitido", reduzindo o atrito associado à reprodução dessa mídia. Essa mudança é possível, em parte, devido a medidas extras tomadas para limpar licenças de mídia com cookies e dados de sites, garantindo que as licenças de mídia não sejam usadas pelos sites para rastrear usuários que limparam os dados de navegação.