Derzeit ist es bei der Verwendung von Media Source Extensions (MSE) in Chrome nicht möglich, zwischen verschlüsselten und löschbaren Streams zu wechseln. Dies ist durch die MSE-Spezifikation nicht verboten. Vielmehr liegt diese Einschränkung hauptsächlich darin, wie die Medienpipeline für die Unterstützung von Encrypted Media Extensions (EME) eingerichtet ist.
MSE erfordert, dass Medienstreams mit einem Initialisierungssegment beginnen, das Informationen wie Codec-Initialisierungsdaten und Verschlüsselungsinformationen enthält. In der Regel befindet sich das Initialisierungssegment am Anfang einer Mediendatei. Wenn also Medien per Download oder MSE an ein Medienelement angehängt werden, funktionieren sie einfach.
Das Problem tritt auf, wenn du versuchst, die Medieneigenschaften mitten im Stream zu ändern. Zum Ändern der Medieneigenschaften muss ein neues Initialisierungssegment übergeben werden. Dies funktioniert für die meisten Eigenschaften. Die Wiedergabe wird fortgesetzt. Die einzige Ausnahme sind die Verschlüsselungseinstellungen. Die Verschlüsselungseinstellungen aus dem ersten Initialisierungssegment signalisieren nur, ob die Streamsegmente verschlüsselt werden können. Das bedeutet, dass klare Mediensegmente in den Stream eingefügt werden können. Daraus folgt, dass ein unverschlüsselter Stream mit einem einzigen verschlüsselten Segment erfordert, dass Verschlüsselungsinformationen im Initialisierungssegment enthalten sind. Daher sind für die Anzeigenbereitstellung Behelfslösungen erforderlich, die für andere Plattformen nicht gelten.
Ab Chrome 58 ändert sich alles. Sie können jetzt im selben Stream zwischen verschlüsselt und unverschlüsselt wechseln. Dies verbessert die Kompatibilität durch Abgleichen, die bereits in Firefox und Edge vorhanden sind.
Dies hat einige Einschränkungen. Wenn Sie in Ihren Medienstreams verschlüsselte Segmente erwarten, müssen Sie die MediaKeys im Voraus festlegen. Wie bisher können Sie HTTP und HTTPS nicht in derselben Quelle verwenden.