- Die Offlinewiedergabe mit dauerhaften Lizenzen und Widevine L1 werden jetzt auf Android-Geräten unterstützt.
- In Chrome werden jetzt Videotracks deaktiviert, wenn ein MSE-Video im Hintergrund wiedergegeben wird, um die Leistung zu optimieren.
- Webentwickler können den Suchbereich in MSE-Livestreams anpassen.
- Chrome unterstützt jetzt FLAC in MP4 mit MSE.
- Wenn das Gerät gedreht wird, wird das Video im Vollbildmodus wiedergegeben.
Persistente Lizenzen für Android
Eine persistente Lizenz in Encrypted Media Extensions (EME) bedeutet, dass die Lizenz auf dem Gerät gespeichert werden kann, damit Anwendungen die Lizenz in den Arbeitsspeicher laden können, ohne eine weitere Lizenzanfrage an den Server zu senden. So wird die Offlinewiedergabe in EME unterstützt.
Bisher war ChromeOS die einzige Plattform, die persistente Lizenzen unterstützte. Das stimmt nicht mehr. Das Abspielen geschützter Inhalte über EME, während das Gerät offline ist, ist jetzt auch auf Android-Geräten möglich.
const config = [{
sessionTypes: ['persistent-license'],
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'SW_SECURE_DECODE' // Widevine L3
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content while being offline when
// license is stored locally on device and loaded later.
})
.catch(error => {
// Persistent licenses are not supported on this platform yet.
});
Du kannst persistente Lizenzen selbst ausprobieren. Lade dazu die Beispiel-Media-PWA herunter und folge dieser Anleitung:
- Rufe https://biograf-155113.appspot.com/ttt/episode-2/ auf.
- Klicke auf „Offline verfügbar machen“ und warte, bis das Video heruntergeladen wurde.
- Aktivieren Sie den Flugmodus.
- Klicke auf die Schaltfläche „Wiedergabe“ und genieße das Video.
Widevine L1 für Android
Wie du vielleicht weißt, müssen alle Android-Geräte Widevine Security Level 3 (Widevine L3) unterstützen. Es gibt jedoch viele Geräte, die auch die höchste Sicherheitsstufe unterstützen: Widevine Security Level 1, bei der die gesamte Inhaltsverarbeitung, Kryptografie und Steuerung in der Trusted Execution Environment (TEE) ausgeführt wird.
Gute Neuigkeiten! Widevine L1 wird jetzt in Chrome für Android unterstützt, damit Medien auf die sicherste Weise wiedergegeben werden können. Hinweis: Diese Funktion wurde bereits unter ChromeOS unterstützt.
const config = [{
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'HW_SECURE_ALL' // Widevine L1
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
// Widevine L1 is not supported on this platform yet.
});
Shaka Player, die JavaScript-Bibliothek für adaptive Medienformate wie DASH und HLS, bietet eine Demo, mit der du Widevine L1 ausprobieren kannst:
- Rufe https://shaka-player-demo.appspot.com/demo/ auf und klicke auf „Zulassen“, wenn du dazu aufgefordert wirst.
- Wähle „Angel One (multicodec, multilingual, Widevine)“ aus.
- Geben Sie unter „Konfiguration“ in das Feld „Robustheit von Videos“ den Wert
HW_SECURE_ALL
ein. - Klicke auf die Schaltfläche „Laden“ und genieße das Video.
Optimierungen für Videotracks im Hintergrund (nur MSE)
Das Chrome-Team ist ständig auf der Suche nach neuen Möglichkeiten, die Akkulaufzeit zu verlängern. Auch Chrome 62 ist da keine Ausnahme.
In Chrome werden Videotracks jetzt deaktiviert, wenn das Video im Hintergrund abgespielt wird (z.B. in einem nicht sichtbaren Tab), sofern das Video Media Source Extensions (MSE) verwendet. Weitere Informationen finden Sie in diesem Artikel.
Suchbereich bei MSE-Livestreams anpassen
Wie du vielleicht schon weißt, enthält das seekable
-Attribut die Bereiche der Medienressource, zu denen der Browser springen kann. Normalerweise enthält sie einen einzelnen Zeitraum, der bei 0 beginnt und bei der Dauer der Medienressource endet. Wenn die Dauer jedoch nicht verfügbar ist, z. B. bei einem Livestream, kann sich der Zeitraum kontinuierlich ändern.
Die gute Nachricht ist, dass du die seekable
-Bereichslogik jetzt noch effektiver mit Media Source Extensions (MSE) anpassen kannst. Dazu gibst du einen einzelnen suchbaren Bereich an, der mit den aktuellen gepufferten Bereichen zusammengeführt wird. Wenn die Dauer der Medienquelle +Infinity
beträgt, ergibt sich ein einzelner suchbarer Bereich, der für beide geeignet ist.
Im folgenden Code wurde die Medienquelle bereits an ein Medienelement angehängt und enthält nur dessen Init-Segment:
const mediaSource = new MediaSource();
...
mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }
mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }
// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
Es gibt viele Fälle, die ich oben nicht erwähnt habe. Ich empfehle dir, das offizielle Beispiel auszuprobieren, um zu sehen, wie gepufferte und suchbare Zeiträume auf verschiedene MSE-Ereignisse reagieren.
Intent to Ship | Chromestatus-Tracker | Chromium-Fehler
FLAC in MP4 für MSE
Das verlustfreie Audiocodierungsformat FLAC wird seit Chrome 56 bei der regulären Medienwiedergabe unterstützt. Kurz darauf wurde die Unterstützung von FLAC in ISO-BMFF (FLAC in MP4) hinzugefügt. In Chrome 62 ist FLAC in MP4 jetzt für Media Source Extensions (MSE) verfügbar.
Zur Information: Die Firefox-Entwickler haben die Unterstützung für eine FLAC-in-MP4-Kapselungsspezifikation entwickelt und implementiert. Die BBC hat damit experimentiert, sie mit MSE zu verwenden. Weitere Informationen findest du im Blogpost Delivering Radio 3 Concert Sound der BBC.
So kannst du feststellen, ob FLAC in MP4 für MSE unterstützt wird:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
Ein vollständiges Beispiel findest du in unserer offiziellen Vorlage.
Intent to Ship | Chromestatus-Tracker | Chromium-Fehler
Videos werden automatisch im Vollbildmodus wiedergegeben, wenn das Gerät gedreht wird
Wenn du ein Gerät im Querformat drehst, während ein Video im Ansichtsbereich wiedergegeben wird, wechselt die Wiedergabe automatisch in den Vollbildmodus. Wenn du das Gerät ins Hochformat drehst, wird das Video wieder im Fenstermodus angezeigt. Weitere Informationen findest du in diesem Artikel.