Audio- und Video-Updates in Chrome 70

François Beaufort
François Beaufort

Videos im Bild-im-Bild-Modus ansehen

Mit der Funktion „Bild im Bild“ (BiB) können Nutzer Videos in einem schwebenden Fenster ansehen, das immer über anderen Fenstern angezeigt wird. So können sie sich das Video ansehen und gleichzeitig mit anderen Websites oder Anwendungen interagieren. Mit der neuen Picture-in-Picture Web API können Sie die Bild-im-Bild-Funktion für Videos auf Ihrer Website starten und steuern.

Weitere Informationen

AV1-Decoder

AV1 ist ein Codec der nächsten Generation, der von der Alliance for Open Media entwickelt wurde. AV1 verbessert die Kompressionseffizienz um mehr als 30% gegenüber dem aktuellen Video-Codec VP9. In Chrome 70 wird ein AV1-Decoder für Chrome Desktop x86-64 basierend auf der offiziellen Bitstream-Spezifikation hinzugefügt. Derzeit ist die Unterstützung auf das Hauptprofil 0 beschränkt und umfasst keine Codierungsfunktionen. Der unterstützte Container ist MP4 (ISO-BMFF). Eine kurze Erklärung zu Containern finden Sie unter Vom Rohvideo zum webfähigen Video.

So probieren Sie AV1 aus:

  • Rufe die YouTube TestTube-Seite auf.
  • Wählen Sie „AV1 für SD bevorzugen“ oder „AV1 immer bevorzugen“ aus, um die gewünschte AV1-Auflösung zu erhalten. Bei höheren Auflösungen kann es auf einigen Geräten zu Problemen bei der Wiedergabeleistung von AV1 kommen.
  • Versuche, YouTube-Clips aus der AV1 Beta Launch Playlist wiederzugeben.
  • Prüfe in den „Statistiken für Interessierte“, ob der Codec „av01“ verwendet wird.
Statistiken für Interessierte mit AV1 auf YouTube
Abbildung 1. Statistiken für Interessierte mit AV1 auf YouTube

Unterstützung für das Umschalten von Codec und Container in MSE

Chrome bietet jetzt Unterstützung für verbesserte Übergänge zwischen Codecs oder Bytestreams bei der Wiedergabe mit Media Source Extensions. Dazu wird eine neue changeType()-Methode für SourceBuffer verwendet. Dadurch kann der Typ der Media-Bytes, die an SourceBuffer angehängt werden, später geändert werden.

Die aktuelle Version von MSE unterstützt die adaptive Wiedergabe von Medien. Für die Anpassung müssen jedoch alle Medien, die an ein SourceBuffer angehängt werden, dem MIME-Typ entsprechen, der beim ursprünglichen Erstellen des SourceBuffer über MediaSource.addSourceBuffer(type) angegeben wurde. Codecs dieses Typs und alle zuvor geparsten Initialisierungssegmente müssen während des gesamten Vorgangs gleich bleiben. Das bedeutet, dass die Website explizite Schritte ausführen muss, um den Codec oder den Bytestream zu wechseln. Dazu müssen mehrere Media-Elemente oder SourceBuffer-Tracks verwendet und zwischen diesen gewechselt werden. Das erhöht die Komplexität der Anwendung und die für Nutzer sichtbare Latenz. Für solche Übergänge muss die Web-App eine synchrone Aktion im Hauptthread des Renderers ausführen. Diese Übergangslatenz beeinträchtigt die flüssige Medienwiedergabe bei Übergängen.

Mit der neuen changeType()-Methode kann ein SourceBuffer die Wiedergabe in verschiedenen Bytestream-Formaten und Codecs puffern und unterstützen. Bei dieser neuen Methode werden zuvor gepufferte Media beibehalten, sofern keine zukünftigen MSE-codierten Frames entfernt werden. Außerdem wird die Splicing- und Pufferungslogik im vorhandenen MSE-codierten Frame-Verarbeitungsalgorithmus genutzt.

So verwenden Sie die Methode 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);
    }

Wenn der übergebene Typ vom Browser nicht unterstützt wird, löst diese Methode wie erwartet eine NotSupportedError-Ausnahme aus.

Im Beispiel können Sie die Pufferung und Wiedergabe eines Audioelements mit verschiedenen Codecs und Bytestreams ausprobieren.

Intent to Ship | Chromestatus Tracker | Chromium-Fehler

Opus in MP4 für MSE

Der offene und vielseitige Audio-Codec Opus wird seit Chrome 33 in den Elementen <audio> und <video> unterstützt. Die Unterstützung für Opus in ISO-BMFF (auch als Opus in MP4 bezeichnet) wurde später hinzugefügt. Opus in MP4 ist jetzt in Chrome 70 für Media Source Extensions verfügbar.

So können Sie feststellen, ob Opus in MP4 für MSE unterstützt wird:

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

Ein vollständiges Beispiel finden Sie in unserem offiziellen Beispiel.

Da es keine Tools zum Muxen von Opus in MP4 mit korrekten End-Trimming- und Preskip-Werten gibt, müssen Sie SourceBuffer.appendWindow{Start,End} und SourceBuffer.timestampOffset in Chrome verwenden, um eine samplegenaue Wiedergabe zu erzielen, wenn Ihnen eine solche Präzision wichtig ist.

Intent to Ship | Chromestatus Tracker | Chromium-Fehler

Wiedergabe geschützter Inhalte auf Android standardmäßig zulassen

In Chrome 70 für Android ändert sich der Standardwert der Websiteeinstellung „Geschützte Inhalte“ von „Erst fragen“ zu „Zulässig“. Dadurch wird die Wiedergabe solcher Medien vereinfacht. Diese Änderung ist unter anderem aufgrund zusätzlicher Maßnahmen möglich, die ergriffen wurden, um Medienlizenzen zusammen mit Cookies und Websitedaten zu löschen. So wird sichergestellt, dass Medienlizenzen nicht von Websites verwendet werden, um Nutzer zu verfolgen, die ihre Browserdaten gelöscht haben.

Einstellung für geschützte Inhalte in Android
Abbildung 2. Einstellung für geschützte Inhalte in Android