Atualmente, ao usar extensões de origem de mídia (MSE) no Chrome, não é possível alternar entre transmissões criptografadas e não criptografadas. Isso não é proibido pela especificação MSE. Em vez disso, essa limitação está principalmente em como o pipeline de mídia é configurado para oferecer suporte a Extensões de mídia criptografada (EME).
O MSE exige que os streams de mídia comecem com um segmento de inicialização que inclua informações como dados de inicialização do codec e informações de criptografia. Normalmente, o segmento de inicialização está no início de um arquivo de mídia. Consequentemente, quando a mídia é anexada a um elemento de mídia por download ou MSE, ela "apenas funciona".
O problema ocorre quando você tenta mudar as características da mídia durante a transmissão. Para mudar as características da mídia, é necessário transmitir um novo segmento de inicialização. Para a maioria das características, isso funciona. A reprodução continua. A exceção são as configurações de criptografia. As configurações de criptografia do primeiro segmento de inicialização indicam apenas se os segmentos de fluxo podem ser criptografados, ou seja, segmentos de mídia claros podem ser inseridos no fluxo. O corolário disso é que um fluxo não criptografado com até mesmo um único segmento criptografado exige que as informações de criptografia sejam incluídas no segmento de inicialização. Por isso, a inserção de anúncios exige soluções alternativas que não se aplicam a outras plataformas.
A partir do Chrome 58, tudo isso muda. Agora é possível alternar entre o conteúdo criptografado e não criptografado no mesmo fluxo. Isso melhora a compatibilidade ao corresponder ao comportamento que já existe no Firefox e no Edge.
Há algumas ressalvas. Primeiro, se você antecipar segmentos criptografados nos fluxos de mídia, defina as MediaKeys de antemão. Como antes, não é possível misturar HTTP e HTTPS na mesma origem.