Przekraczamy strumienie (media), Ray

Jan Kowalski
Joe Medley

Obecnie, gdy używasz w Chrome rozszerzeń multimediów (MSE), nie można przełączać się między strumieniami zaszyfrowanymi i czystymi. W rzeczywistości tego nie zabrania specyfikacja MSE. Ograniczenie to dotyczy głównie konfiguracji potoku multimediów do obsługi rozszerzeń zaszyfrowanych multimediów (EME).

MSE wymaga, aby strumienie multimediów zaczynały się od segmentu inicjowania, który zawiera informacje takie jak dane inicjowania kodeka oraz informacje o szyfrowaniu. Zwykle segment inicjowania znajduje się na początku pliku multimedialnego. W związku z tym, gdy multimedia są dołączone do elementu multimedialnego za pomocą pliku do pobrania lub MSE, „po prostu działają”.

Problem pojawia się, gdy próbujesz zmienić charakterystykę multimediów w trakcie transmisji. Zmiana cech multimediów wymaga przekazania nowego segmentu inicjowania. W większości przypadków się to sprawdza. Odtwarzanie trwa nadal. Wyjątkiem są ustawienia szyfrowania. Ustawienia szyfrowania z pierwszego segmentu inicjowania wskazują tylko, czy segmenty strumienia mogą być zaszyfrowane, co oznacza, że do strumienia można wstawiać segmenty z usuniętymi multimediami. W rezultacie w przypadku nieszyfrowanego strumienia z nawet jednym zaszyfrowanym segmentem należy uwzględnić informacje o szyfrowaniu w segmencie inicjowania. Z tego powodu wstawianie reklam wymaga obejścia, które nie ma zastosowania na innych platformach.

Wszystkie te zmiany są dostępne od wersji Chrome 58. W jednym strumieniu można się teraz przełączać między szyfrowanymi i niezaszyfrowanymi. Poprawia to zgodność przez dopasowywanie sposobu działania stosowanego już w przeglądarkach Firefox i Edge.

Wiąże się to z kilkoma zastrzeżeniami. Po pierwsze, jeśli spodziewasz się zaszyfrowanych segmentów w strumieniach multimediów, musisz najpierw ustawić klucz MediaKeys. Tak jak poprzednio, nie można łączyć protokołów HTTP i HTTPS w tym samym źródle.