We zullen de (media)stromen oversteken, Ray

Joe Medley
Joe Medley

Tegenwoordig is het bij gebruik van Media Source Extensions (MSE) in Chrome niet mogelijk om te schakelen tussen gecodeerde en duidelijke streams. Dit is eigenlijk niet verboden door de MSE-specificatie. Deze beperking ligt eerder in de manier waarop de mediapijplijn is ingesteld om Encrypted Media Extensions (EME) te ondersteunen.

MSE vereist dat mediastreams beginnen met een initialisatiesegment dat informatie bevat zoals codec-initialisatiegegevens en coderingsinformatie. Normaal gesproken bevindt het initialisatiesegment zich aan het begin van een mediabestand. Wanneer media via download of MSE aan een media-element worden gekoppeld, werken ze dus "gewoon".

Het probleem ontstaat wanneer je de mediakenmerken midden in de stream probeert te veranderen. Voor het wijzigen van de mediakarakteristieken is het passeren van een nieuw initialisatiesegment vereist. Voor de meeste kenmerken werkt dit. Het afspelen gaat door. De uitzondering vormen de coderingsinstellingen. De encryptie-instellingen van het eerste initialisatiesegment geven alleen aan of de streamsegmenten gecodeerd mogen worden, wat betekent dat er duidelijke mediasegmenten in de stream kunnen worden ingevoegd. Het gevolg hiervan is dat een niet-gecodeerde stroom met zelfs maar één enkel gecodeerd segment vereist dat encryptie-informatie wordt opgenomen in het initialisatiesegment. Daarom vereist het invoegen van advertenties oplossingen die niet van toepassing zijn op andere platforms.

Vanaf Chrome 58 verandert dit allemaal. Je kunt nu in dezelfde stream schakelen tussen versleuteld en niet-versleuteld. Dit verbetert de compatibiliteit door gedrag te matchen dat al bestaat in Firefox en Edge.

Dit heeft een paar kanttekeningen. Als u versleutelde segmenten in uw mediastreams verwacht, moet u eerst de MediaKeys vooraf instellen. Net als voorheen kun je HTTP en HTTPS niet combineren in dezelfde bron.