- Webentwickler können Bild-im-Bild-Videos steuern.
- Der AV1-Decoder wird jetzt in Chrome Desktop x86-64 unterstützt.
- Codec- und Bytestream-übergreifende Pufferung und Wiedergabe sind mit MSE möglich.
- Chrome unterstützt jetzt Opus in MP4 mit MSE.
- Die Wiedergabe geschützter Inhalte ist auf Android-Geräten standardmäßig erlaubt.
Video mit der Funktion „Bild im Bild“ ansehen
Mit der Bild-im-Bild-Funktion (BiB) können sich Nutzer Videos in einem schwebenden Fenster ansehen, das immer über anderen Fenstern angezeigt wird. So können sie sich das Video ansehen, während sie mit anderen Websites oder Apps interagieren. Mit der neuen Bild-im-Bild-Web-API kannst du die Funktion „Bild im Bild“ für Videos auf deiner Website initiieren und verwalten.
AV1-Decoder
AV1 ist ein Codec der nächsten Generation, der von der Alliance for Open Media entwickelt wurde. Mit AV1 wird die Komprimierungseffizienz um mehr als 30 % gegenüber dem aktuellen Video-Codec VP9 verbessert. Chrome 70 fügt Chrome Desktop x86-64 einen AV1-Decoder hinzu, basierend auf der offiziellen Bitstream-Spezifikation. 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 findest du unter Container und Codecs.
So kannst du AV1 ausprobieren:
- Rufe die TestTube-Seite von YouTube auf.
- Wähle „AV1 für SD bevorzugen“ oder „Immer AV1 bevorzugen“ aus, um die gewünschte AV1-Auflösung zu erhalten. Bei höheren Auflösungen treten bei einigen Geräten mit AV1 häufiger Probleme mit der Wiedergabeleistung auf.
- Versuche, YouTube-Clips aus der AV1 Beta Launch Playlist abzuspielen.
- Prüfe unter „Statistiken für Interessierte“, ob der Codec „av01“ verwendet wird.
Unterstützung für Codec und Container-Wechsel in MSE
In Chrome wird Unterstützung für verbesserte codec- oder bytestreamübergreifende Übergänge bei der Wiedergabe von Media Source Extensions mithilfe einer neuen changeType()
-Methode auf SourceBuffer
hinzugefügt. So kann der Typ der Medienbytes, die an SourceBuffer
angehängt werden, später geändert werden.
Die aktuelle Version von MSE unterstützt die adaptive Wiedergabe von Medien. Die Anpassung erfordert jedoch, dass alle Medien, die an SourceBuffer
angehängt werden, dem MIME-Typ entsprechen müssen, der bei der anfänglichen Erstellung von SourceBuffer
über MediaSource.addSourceBuffer(type)
angegeben wurde. Codecs dieses Typs und alle zuvor geparsten Initialisierungssegmente müssen durchgängig gleich bleiben. Das bedeutet, dass die Website explizite Schritte zum Umschalten des Codecs oder Bytestreams ausführen muss (durch Verwendung mehrerer Medienelemente oder SourceBuffer
-Tracks und Wechsel zwischen diesen), was die Anwendungskomplexität und die für Nutzer sichtbare Latenz erhöht. Für solche Übergänge muss die Webanwendung synchrone Aktionen 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
unterschiedliche Bytestream-Formate und Codecs puffern und die Wiedergabe unterstützen. Bei dieser neuen Methode werden zuvor gepufferte Medien beibehalten, sofern sie nicht durch zukünftiges Entfernen oder Auslagern von MSE-codierten Frames ersetzt werden. Außerdem wird die Spleiß- und Pufferlogik des vorhandenen MSE-codierten Frames-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, wird von dieser Methode wie erwartet eine NotSupportedError
-Ausnahme ausgelöst.
Im Beispiel wird die Codec- und Bytestream-übergreifende Pufferung und Wiedergabe eines Audioelements veranschaulicht.
Intent to Ship | Chromestatus-Tracker | Chromium-Fehler
Opus in MP4 für MSE
Der offene und sehr vielseitige Audio-Codec Opus wird seit Chrome 33 in den Elementen <audio>
und <video>
unterstützt. Die Unterstützung von Opus in ISO-BMFF (Opus in MP4) wurde später hinzugefügt. Jetzt ist Opus in MP4 in Chrome 70 für Media Source Extensions verfügbar.
So kannst du 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 findest du in unserem offiziellen Beispiel.
Da es keine Tools gibt, mit denen Opus in MP4 mit korrekten End-Trimm- und Pre-Skip-Werten gemuxt werden kann, musst du SourceBuffer.appendWindow{Start,End}
und SourceBuffer.timestampOffset
in Chrome verwenden, um eine samplagenaue Wiedergabe zu erhalten, wenn dir diese Präzision wichtig ist.
Intent to Ship | Chromestatus-Tracker | Chromium-Fehler
Standardwiedergabe geschützter Inhalte auf Android-Geräten zulassen
In Chrome 70 für Android ändert sich der Standardwert der Websiteeinstellung „Geschützte Inhalte“ von „Zuerst fragen“ zu „Zugelassen“. Dadurch wird die Wiedergabe solcher Medien vereinfacht. Diese Änderung ist unter anderem auf zusätzliche Schritte zurückzuführen, die ergriffen wurden, um neben Cookies und Websitedaten auch Medienlizenzen zu löschen. So wird sichergestellt, dass Websites keine Medienlizenzen verwenden, um Nutzer zu verfolgen, die ihre Browserdaten gelöscht haben.