- Gli sviluppatori web possono controllare la modalità Picture in picture per i video.
- Il decoder AV1 è ora supportato in Chrome Desktop x86-64.
- In MSE è possibile il buffering e la riproduzione cross-codec e cross-bytestream.
- Chrome ora supporta Opus in MP4 con MSE.
- La riproduzione di contenuti protetti è consentita per impostazione predefinita su Android.
Guardare video utilizzando la funzionalità Picture in picture
Picture in picture (PIP) consente agli utenti di guardare i video in una finestra mobile (sempre in cima alle altre finestre) in modo che possano tenere d'occhio ciò che stanno guardando mentre interagiscono con altri siti o applicazioni. Con la nuova API web Picture-in-Picture, puoi avviare e controllare la modalità Picture-in-Picture per i video sul tuo sito web.
Per saperne di più, leggi questo articolo.
Decoder AV1
AV1 è un codec di nuova generazione sviluppato dall'Alliance for Open Media. AV1 migliora l'efficienza della compressione di oltre il 30% rispetto al codec video attualmente più avanzato, VP9. Chrome 70 aggiunge un decoder AV1 a Chrome Desktop x86-64 basato sulla specifica ufficiale del bitstream. Al momento, l'assistenza è limitata al profilo 0 "Principale" e non include funzionalità di codifica. Il contenitore supportato è MP4 (ISO-BMFF) (vedi Dal video grezzo al video pronto per il web per una breve spiegazione dei contenitori).
Per provare AV1:
- Vai alla pagina di YouTube TestTube.
- Seleziona "Imposta AV1 come preferito per SD" o "Imposta sempre AV1 come preferito" per ottenere la risoluzione AV1 desiderata. Tieni presente che a risoluzioni più elevate, è più probabile che AV1 riscontri problemi di prestazioni di riproduzione su alcuni dispositivi.
- Prova a riprodurre i clip di YouTube dalla playlist di lancio della versione beta di AV1.
- Conferma il codec av01 in "Statistiche per nerd".
Supporto per il cambio di codec e container in MSE
Chrome sta aggiungendo il supporto per transizioni cross-codec o cross-bytestream migliorate nella riproduzione di Media Source Extensions utilizzando un nuovo metodo changeType() su SourceBuffer. Consente di modificare in un secondo momento il tipo di byte multimediali aggiunti a SourceBuffer.
La versione attuale di MSE supporta
la riproduzione adattiva dei contenuti multimediali; tuttavia, l'adattamento richiede che tutti i contenuti multimediali aggiunti
a un SourceBuffer siano conformi al tipo MIME fornito durante la creazione iniziale
del SourceBuffer tramite MediaSource.addSourceBuffer(type). I codec
di quel tipo e tutti i segmenti di inizializzazione analizzati in precedenza devono rimanere
gli stessi per tutta la durata. Ciò significa che il sito web deve adottare misure esplicite per
eseguire il cambio di codec o di bytestream (utilizzando più elementi multimediali o
tracce SourceBuffere passando da una all'altra), aumentando la complessità
dell'applicazione e la latenza visibile all'utente. Queste transizioni richiedono all'app web di
eseguire un'azione sincrona sul thread principale del renderer. Questa latenza di transizione
compromette la fluidità della riproduzione dei contenuti multimediali durante le transizioni.
Con il nuovo metodo changeType(), un SourceBuffer può memorizzare nel buffer e supportare
la riproduzione in streaming in diversi formati bytestream e codec. Questo nuovo metodo
mantiene i contenuti multimediali memorizzati nel buffer in precedenza, a meno che non vengano eliminati o rimossi in futuro, e sfrutta la logica di splicing e buffering nell'algoritmo di elaborazione dei frame codificati MSE esistente.
Ecco come utilizzare il metodo 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);
}
Come previsto, se il tipo passato non è supportato dal browser, questo metodo genera un'eccezione NotSupportedError.
Dai un'occhiata al campione per provare il buffering e la riproduzione cross-codec e cross-bytestream di un elemento audio.
Intent to Ship | Chromestatus Tracker | Chromium Bug
Opus in MP4 per MSE
Il codec audio aperto e altamente versatile Opus è supportato negli elementi
<audio> e <video> a partire da Chrome 33. Il supporto di Opus in ISO-BMFF
(ovvero Opus in MP4) è stato aggiunto in seguito. Ora Opus in MP4 è disponibile in Chrome 70 per le estensioni Media Source.
Ecco come rilevare se Opus in MP4 è supportato per MSE:
if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
// TODO: Fetch data and feed it to a media source.
}
Se vuoi vedere un esempio completo, consulta il nostro esempio ufficiale.
A causa della mancanza di strumenti per il muxing di Opus in MP4 con valori di taglio finale e preskip corretti, se questa precisione è importante per te, dovrai utilizzare SourceBuffer.appendWindow{Start,End} e SourceBuffer.timestampOffset in Chrome per ottenere una riproduzione accurata al campione.
Intent to Ship | Chromestatus Tracker | Chromium Bug
Consentire la riproduzione di contenuti protetti per impostazione predefinita su Android
In Chrome 70 per Android, il valore predefinito dell'impostazione del sito "contenuti protetti" cambia da "Chiedi prima" a "Consentito", riducendo l'attrito associato alla riproduzione di questi contenuti multimediali. Questo cambiamento è possibile, in parte, grazie a ulteriori passaggi eseguiti per cancellare le licenze dei contenuti multimediali insieme a cookie e dati dei siti, garantendo che le licenze dei contenuti multimediali non vengano utilizzate dai siti per monitorare gli utenti che hanno cancellato i dati di navigazione.