Attualmente, quando si utilizzano Media Source Extensions (MSE) in Chrome, non è possibile passare dallo stream criptato a quello chiaro e viceversa. Ciò in realtà non è vietato dalle specifiche MSE. Piuttosto, questa limitazione riguarda principalmente il modo in cui la pipeline multimediale è configurata per supportare le Encrypted Media Extensions (EME).
MSE richiede che i flussi di contenuti multimediali inizino con un segmento di inizializzazione che includa informazioni come i dati di inizializzazione del codec e le informazioni sulla crittografia. In genere, il segmento di inizializzazione si trova all'inizio di un file multimediale. Di conseguenza, quando vengono collegati a un elemento multimediale tramite download o MSE, funzionano semplicemente.
Il problema si verifica quando provi a modificare le caratteristiche dei contenuti multimediali durante lo streaming. La modifica delle caratteristiche dei contenuti multimediali richiede il passaggio di un nuovo segmento di inizializzazione. Per la maggior parte delle caratteristiche, funziona. La riproduzione continua. Fanno eccezione le impostazioni di crittografia. Le impostazioni di crittografia del primo segmento di inizializzazione indicano solo se i segmenti di stream possono essere criptati, il che significa che possono essere inseriti segmenti multimediali chiari. Di conseguenza, un flusso non criptato anche con un singolo segmento criptato richiede che le informazioni di crittografia siano incluse nel segmento di inizializzazione. Per questo motivo, l'inserimento di annunci richiede soluzioni alternative che non si applicano ad altre piattaforme.
A partire da Chrome 58, tutto questo cambierà. Ora puoi passare dalla crittografia a quella non criptata e viceversa nello stesso stream. Questo migliora la compatibilità abbinando il comportamento già esistente in Firefox ed Edge.
Ci sono alcune avvertenze di cui tenere conto. Innanzitutto, se prevedi eventuali segmenti criptati nei tuoi stream multimediali, devi impostare i valori MediaKeys in anticipo. Come in precedenza, non è possibile combinare HTTP e HTTPS nella stessa origine.