You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We had an issue on shaka where mixed clear and fairplay content wasn't working in MSE mode but native playback was fine. When trying out hls.js as well, I noticed that it also failed.
There is a related issue for more general drm/clear transition: #4230
Ultimately, @tykus160 was able to figure out that in addition to prepending an enca box to each mdat in the clear segments, the tfhd box needed to be updated to have the sample description index point at the right box. Additionally, the sinf needed to be updated to include the key id from the manifest for the clear segments as well. This should force safari to always be in the DRM realm for playback and not try and switch between the clear and drm realms on the discontinuity. The PR that fixed it on the shaka side.
We had an issue on shaka where mixed clear and fairplay content wasn't working in MSE mode but native playback was fine. When trying out hls.js as well, I noticed that it also failed.
There is a related issue for more general drm/clear transition: #4230
Ultimately, @tykus160 was able to figure out that in addition to prepending an enca box to each mdat in the clear segments, the tfhd box needed to be updated to have the sample description index point at the right box. Additionally, the sinf needed to be updated to include the key id from the manifest for the clear segments as well. This should force safari to always be in the DRM realm for playback and not try and switch between the clear and drm realms on the discontinuity. The PR that fixed it on the shaka side.
There is a slack thread with discussion related to this on https://video-dev.slack.com/archives/C4FC8GGEP/p1742940871928379
What version of Hls.js are you using?
latest
What browser (including version) are you using?
Safari 18
What OS (including version) are you using?
macos
Test stream
https://friendly-creponne-991405.netlify.app/fairplay-mixed.m3u8
Configuration
Additional player setup steps
Using the public fairplay source and another public hls source, I spliced the two together, using a disco tag, for test content.
https://friendly-creponne-991405.netlify.app/mixed-fairplay.m3u8 - encrypted followed by clear
https://friendly-creponne-991405.netlify.app/fairplay-mixed.m3u8 - clear followed by encrypted
https://fps.ezdrm.com/api/licenses/b99ed9e5-c641-49d1-bfa8-43692b686ddb - license server url
https://fps.ezdrm.com/demo/video/eleisure.cer - certificate server url
Checklist
Steps to reproduce
Expected behaviour
Smooth playback transition.
What actually happened?
Content playback failure. It does work in some cases if seeking into the encrypted section.
Console output
The text was updated successfully, but these errors were encountered: