- Os desenvolvedores da Web podem controlar o picture-in-picture para vídeos.
- Agora, o decodificador AV1 tem suporte no Chrome para computador x86-64.
- O armazenamento em buffer e a reprodução entre codecs e bytestreams 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ídeos usando o picture-in-picture
Com o recurso picture-in-picture (PiP), os usuários podem assistir vídeos em uma janela flutuante (sempre por cima de outras janelas) para ficar de olho no que estão assistindo enquanto interagem com outros sites ou aplicativos. Com a nova API Web Picture-in-Picture, você pode iniciar e controlar o recurso Picture-in-Picture para vídeos no seu site.
Leia nosso artigo para saber mais.
Decodificador AV1
O AV1 é um codec de última geração desenvolvido pela Alliance for Open Media (link em inglês). O AV1 melhorou a eficiência de compactação em mais de 30% em relação ao codec de vídeo mais avançado atualmente, o VP9. O Chrome 70 adiciona um decodificador AV1 ao Chrome Desktop x86-64 com base na especificação oficial de bitstream. No momento, o suporte é 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 contêineres.
Para testar o AV1:
- Acesse a página do YouTube TestTube.
- Selecione "Dar preferência a AV1 para SD" ou "Sempre dar preferência a AV1" para receber 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 na playlist de lançamento da versão Beta do AV1.
- Confirme o codec av01 em "Estatísticas para nerds".
Suporte para a troca de codec e contêiner no MSE
O Chrome adicionou suporte para transições aprimoradas de codec ou de fluxo de bytes
em reprodução de extensões de origem de mídia usando um novo
método changeType()
em SourceBuffer
. Ele permite que o tipo de bytes
de mídia anexados ao SourceBuffer
seja alterado depois.
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
esteja em conformidade com o tipo MIME fornecido ao criar
o SourceBuffer
pela 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 tomar medidas explícitas para
alternar o codec ou o fluxo de bytes (usando vários elementos de mídia ou
faixas 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
tome uma ação síncrona na linha de execução principal do renderizador. Essa latência de transição
prejudica a fluidez da reprodução de mídia em transições.
Com o novo método changeType()
, um SourceBuffer
pode armazenar em buffer e oferecer suporte
à reprodução em diferentes codecs e formatos de fluxo de bytes. Esse novo método
retém a mídia armazenada em buffer anterior, modulo de remoção ou
eviction de frames codificados MSE futuros e aproveita a lógica de emenda e armazenamento em buffer no algoritmo de processamento de frames codificados MSE
atual.
Veja 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 tipo transmitido não tiver suporte do navegador, esse método
gerará uma exceção NotSupportedError
.
Confira o exemplo para brincar com o buffer de vários codecs e bytestreams e a reprodução de um elemento de áudio.
Intent to Ship | Rastreador do Chromestatus | Bug do Chromium
Opus em MP4 para EQM
O codec de áudio aberto e altamente versátil Opus tem suporte nos elementos
<audio>
e <video>
desde o Chrome 33. O suporte a Opus no ISO-BMFF
(também conhecido como Opus no MP4) foi adicionado depois. Agora, o Opus em MP4 está disponível no Chrome 70 para extensões de origem de mídia.
Veja como detectar se o Opus em MP4 tem suporte para MSE:
if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
// TODO: Fetch data and feed it to a media source.
}
Para conferir um exemplo completo, consulte nossa amostra oficial.
Devido à falta de ferramentas para mesclar Opus em MP4 com valores corretos de corte final e pré-pular, 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.
Intent to Ship | Rastreador do Chromestatus | 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 de 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 outras etapas tomadas para limpar licenças de mídia junto com cookies e dados do site, garantindo que as licenças de mídia não sejam usadas por sites para rastrear usuários que limparam os dados de navegação.