- Gli sviluppatori web possono controllare la funzionalità Picture in picture per i video.
- Il decoder AV1 è ora supportato in Chrome per computer 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 i video con la funzionalità Picture in picture
La funzionalità Picture in picture (PIP) consente agli utenti di guardare i video in una finestra mobile (sempre in cima alle altre finestre) in modo da poter 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.
Leggi questo articolo per scoprire di più.
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 decodificatore AV1 a Chrome Desktop x86-64 in base alla specifica ufficiale del flusso di bit. Al momento, il supporto è limitato al profilo 0 "Principale" e non include le funzionalità di codifica. Il contenitore supportato è MP4 (ISO-BMFF) (consulta Contenitori e codec per una breve spiegazione dei contenitori).
Per provare AV1:
- Vai alla pagina di YouTube TestTube.
- Seleziona "Preferisci AV1 per SD" o "Preferisci sempre AV1" per ottenere la risoluzione AV1 che preferisci. Tieni presente che, a risoluzioni più elevate, è più probabile che AV1 abbia problemi di prestazioni di riproduzione su alcuni dispositivi.
- Prova a riprodurre i clip di YouTube della playlist di lancio della versione beta di AV1.
- Verifica il codec av01 in "Statistiche per nerd".
![Statistiche per nerd che mostrano AV1 su YouTube](https://developer.chrome.com/static/blog/media-updates-in-chrome-70/image/stats-nerds-featuring-av-e72e6556d0087.png?hl=it)
Supporto per il passaggio da codec e container in MSE
Chrome sta aggiungendo il supporto per transizioni tra codec o stream di byte migliorate nella riproduzione delle Estensioni di origine media utilizzando un nuovo metodo changeType()
su SourceBuffer
. Consente di modificare in un secondo momento il tipo di media
byte aggiunti a SourceBuffer
.
La versione corrente 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 questo tipo e gli eventuali segmenti di inizializzazione analizzati in precedenza devono rimanere invariati. Ciò significa che il sito web deve adottare passaggi espliciti per eseguire il passaggio da un codec o da un bytestream all'altro (utilizzando più elementi multimediali o tracce SourceBuffer
e passando da uno all'altro), aumentando la complessità dell'applicazione e la latenza visibile all'utente. Queste transizioni richiedono che l'app web prenda 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ò mettere in buffer e supportare la riproduzione su diversi formati di stream di byte e codec. Questo nuovo metodo conserva i contenuti multimediali memorizzati nella cache in precedenza, a parte l'eventuale espulsione o rimozione futura dei frame codificati MSE, 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 all'esempio per riprodurre il buffering e la riproduzione di un elemento audio con codec e stream di byte diversi.
Intent to Ship | Chromestatus Tracker | Bug di Chromium
Opus in MP4 per MSE
Il codec audio aperto e altamente versatile Opus è supportato negli elementi <audio>
e <video>
da Chrome 33. Il supporto di Opus in ISO-BMFF (noto anche come Opus in MP4) è stato aggiunto in un secondo momento. Ora Opus in MP4 è disponibile in Chrome 70 per le Estensioni di origine media.
Ecco come puoi 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.
}
Per un esempio completo, dai un'occhiata al nostro esempio ufficiale.
A causa della mancanza di strumenti per il muxing di Opus in MP4 con valori corretti di taglio finale e pre-salto, se questa precisione è importante per te, dovrai utilizzare SourceBuffer.appendWindow{Start,End}
e SourceBuffer.timestampOffset
in Chrome per ottenere una riproduzione accurata a livello di sample.
Intent to Ship | Chromestatus Tracker | Bug di Chromium
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 le difficoltà associate alla riproduzione di questi contenuti multimediali. Questa modifica è possibile, in parte, grazie ai passaggi aggiuntivi intrapresi per cancellare le licenze multimediali insieme ai cookie e ai dati dei siti, garantendo che le licenze multimediali non vengano utilizzate dai siti per monitorare gli utenti che hanno cancellato i dati di navigazione.
![ALT_TEXT_HERE](https://developer.chrome.com/static/blog/media-updates-in-chrome-70/image/alttexthere-6f92715b450a1.png?hl=it)