Audio-/video-updates in Chrome 70

François Beaufort
François Beaufort

Bekijk video met Picture-in-Picture

Met Picture-in-Picture (PiP) kunnen gebruikers video's bekijken in een zwevend venster (altijd boven andere vensters), zodat ze in de gaten kunnen houden wat ze bekijken terwijl ze andere sites of applicaties gebruiken. Met de nieuwe Picture-in-Picture Web API kunt u Picture-in-Picture voor video's op uw website starten en beheren.

Lees ons artikel om er alles over te weten te komen.

AV1-decoder

AV1 is een codec van de volgende generatie, ontwikkeld door de Alliance for Open Media . AV1 verbetert de compressie-efficiëntie met meer dan 30% ten opzichte van de huidige geavanceerde videocodec, VP9. Chrome 70 voegt een AV1-decoder toe aan Chrome Desktop x86-64, gebaseerd op de officiële bitstreamspecificatie . Momenteel is de ondersteuning beperkt tot "Main" -profiel 0 en omvat deze geen coderingsmogelijkheden. De ondersteunde container is MP4 ( ISO-BMFF ) (zie Van onbewerkte video naar webklaar voor een korte uitleg over containers).

Om AV1 te proberen:

  • Ga naar de YouTube TestTube-pagina .
  • Selecteer "Voorkeur AV1 voor SD" of "Altijd AV1" om de gewenste AV1-resolutie te krijgen. Houd er rekening mee dat AV1 bij hogere resoluties op sommige apparaten vaker problemen met de afspeelprestaties zal ondervinden.
  • Probeer YouTube-clips af te spelen uit de AV1 Beta Launch Playlist .
  • Bevestig de codec av01 in "Statistieken voor nerds".
Statistieken voor nerds met AV1 op YouTube.
Figuur 1. Statistieken voor nerds die AV1 op YouTube gebruiken.

Ondersteuning voor codec- en containerschakeling in MSE

Chrome voegt ondersteuning toe voor verbeterde cross-codec- of cross-bytestream-overgangen in de weergave van Media Source Extensions met behulp van een nieuwe changeType() -methode op SourceBuffer . Hiermee kan het type mediabytes dat aan de SourceBuffer wordt toegevoegd, achteraf worden gewijzigd.

De huidige versie van MSE ondersteunt adaptieve mediaweergave; adaptatie vereist echter dat alle media die aan een SourceBuffer worden toegevoegd, voldoen aan het MIME-type dat is opgegeven bij het aanmaken van de SourceBuffer via MediaSource.addSourceBuffer(type) . Codecs van dat type en eerder geparseerde initialisatiesegmenten moeten overal hetzelfde blijven. Dit betekent dat de website expliciete stappen moet ondernemen om codec- of bytestream-switching te realiseren (door meerdere media-elementen of SourceBuffer tracks te gebruiken en daartussen te switchen), wat de complexiteit van de applicatie en de voor de gebruiker zichtbare latentie verhoogt. (Dergelijke overgangen vereisen dat de webapp synchrone actie uitvoert op de hoofdthread van de renderer). Deze overgangslatentie belemmert de vloeiende mediaweergave over overgangen heen.

Met de nieuwe changeType() methode kan een SourceBuffer bufferen en afspelen ondersteunen in verschillende bytestreamformaten en codecs. Deze nieuwe methode behoudt eerder gebufferde media, modulo toekomstige MSE-gecodeerde frame-uitzetting of -verwijdering en maakt gebruik van de splicing- en bufferlogica in het bestaande MSE-gecodeerde frameverwerkingsalgoritme.

Hier leest u hoe u de changeType() methode gebruikt:

    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);
    }

Zoals verwacht genereert deze methode een NotSupportedError uitzondering als het doorgegeven type niet door de browser wordt ondersteund.

Bekijk het voorbeeld om te experimenteren met cross-codec en cross-bytestream buffering en het afspelen van een audio-element.

Intentie tot verzending | Chromestatus Tracker | Chromium-bug

Opus in MP4 voor MSE

De open en zeer veelzijdige audiocodec Opus wordt al sinds Chrome 33 ondersteund in de <audio> - en <video> -elementen. Ondersteuning voor Opus in ISO-BMFF (ook bekend als Opus in MP4) werd later toegevoegd. En nu is Opus in MP4 beschikbaar in Chrome 70 voor Media Source Extensions .

Zo kunt u controleren of Opus in MP4 wordt ondersteund voor MSE:

if (MediaSource.isTypeSupported('audio/mp4; codecs="opus"')) {
  // TODO: Fetch data and feed it to a media source.
}

Wilt u een volledig voorbeeld zien, bekijk dan ons officiële voorbeeld .

Omdat er geen hulpmiddelen zijn om Opus in MP4 te multiplexen met de juiste eind-trimming en preskip-waarden, moet u SourceBuffer.appendWindow{Start,End} en SourceBuffer.timestampOffset in Chrome gebruiken om een ​​sample-nauwkeurige weergave te verkrijgen als dergelijke precisie voor u belangrijk is.

Intentie tot verzending | Chromestatus Tracker | Chromium-bug

Standaard beschermde inhoud afspelen op Android

In Chrome 70 voor Android verandert de standaardwaarde van de site-instelling 'Beveiligde content' van 'Eerst vragen' naar 'Toegestaan', waardoor de problemen bij het afspelen van dergelijke media afnemen. Deze wijziging is deels mogelijk dankzij extra maatregelen om medialicenties te wissen, naast cookies en sitegegevens. Zo wordt voorkomen dat medialicenties door sites worden gebruikt om gebruikers te volgen die hun browsegegevens hebben gewist.

Instelling voor beveiligde inhoud in Android.
Figuur 2. Instelling voor beveiligde inhoud in Android.