- 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 oferece suporte a 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 acompanhar o 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. O AV1 melhora 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".
![Estatísticas para nerds com AV1 no YouTube](https://developer.chrome.com/static/blog/media-updates-in-chrome-70/image/stats-nerds-featuring-av-e72e6556d0087.png?hl=pt-br)
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 tocar com buffer e reprodução de um elemento de áudio entre codecs e fluxos de bytes.
Intent to Ship | Rastreador do Chromestatus | Bug do Chromium
Opus em MP4 para MSE
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 do site "conteúdo protegido" muda de "Perguntar primeiro" para "Permitido", reduzindo a fricção associada à 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.
![ALT_TEXT_HERE](https://developer.chrome.com/static/blog/media-updates-in-chrome-70/image/alttexthere-6f92715b450a1.png?hl=pt-br)