Add Support for PlayReady CBCS
Hi,
could you please add support for PlayReady CBCS encryption, especially the 1:9 (encrypt:skip) pattern ?
Best Regards, Mario
We are preparing a new refapp release soon with a sample content CBCS_1:9 encryption scheme.
MSE-EME PC use: Few reminders from Microsoft concerning Windows systems, also Firefox browser may have problems with cbcs content. Chrome browser on Win10, AppleOS and Android phone is able to playback cbcs fine.
[Prior to PlayReady version 4.4](https://learn.microsoft.com/en-us/playready/overview/what-is-new/what-is-new-4-4#general), generating a license with a CBC key when the incoming Client Certificate is Windows and SL2000 throws an exception.
This is because Windows Clients support CBC only on SL3000 units.
It may be possible to deliver a license with a CBC key to a SL2000 Client, however, if this client is PlayReady version 4.0 minimum and declares support for the CBC mode.
Generating a license with a CBC key when the incoming Client Certificate is a device that uses a Porting Kit version prior to 4.0 will throw an exception. Generating a license with a CBC key when the incoming license request does not indicate support for AES CBC, will throw an exception.
First attempt of CBCS content available at TESTING instance, test 2.17 under "Playready 2" tab. direct link: https://refapp.hbbtv.org/testing/catalogue/
Firefox(Win10, widevine) CBCS playback works if using tenc.default_constant_IV, tenc.default_constant_IV_size fields instead of tenc.default_per_sample_IV_size field. Refapp test content should work in firefox as well.
Firefox(Win10, widevine) CBCS playback works if using
tenc.default_constant_IV, tenc.default_constant_IV_sizefields instead oftenc.default_per_sample_IV_sizefield. Refapp test content should work in firefox as well.
After comments in the IITF meeting, I did some research. Use of contstant_IV is required for cbcs by the MPEG common encryption specification (ISO 23001-7) in clause 10.4.1. Specifically;
Constant IVs SHALL be used; default_Per_Sample_IV_Size and Per_Sample_IV_Size, SHALL be 0.
I can't find any mention of this in CMAF or the CTA WAVE media profile but the common encryption spec underlies all these documents and is good enough.
CBCS(constantIV) manifest, this is following the specs and works in Firefox as well.
https://refapp.hbbtv.org/videos/spring_1080p_cbcs_v1/drm/manifest.mpd
CBCS(sampleIV, against the cbcs specs) manifest, this is against the specs but some HbbTVs playback this one but not the previous one.
https://refapp.hbbtv.org/videos/spring_1080p_cbcs_v1_sampleiv/drm/manifest.mpd
CBCS(constantIV)manifest, this is following the specs and works in Firefox as well. https://refapp.hbbtv.org/videos/spring_1080p_cbcs_v1/drm/manifest.mpd
CBCS(sampleIV, against the cbcs specs)manifest, this is against the specs but some HbbTVs playback this one but not the previous one. https://refapp.hbbtv.org/videos/spring_1080p_cbcs_v1_sampleiv/drm/manifest.mpd
I know it's what we agreed in the last meeting but I am really uncomfortable about continuing with cbcs+sampleIV when it's explicitly against the specs and this is a new technology for HbbTV.
True, we put cbcs(constantIV) available in a refapp menu. Additional Cbcs(sampleIV) mpd url is available here in this ticket in case someone need it for further testing.
Now available on the "Staging" instance: http://refapp.hbbtv.org/staging/catalogue/ item 2.17
candidate for closing
We'll leave it open so people are aware its available on staging and we'll close in the next cycle when it hopefully moves to production.
2.17.1 AVC 1080p CBCS (playready), 2.17.2 HEVC 2160p CBCS (playready), 4.6 AVC 1080p CBCS (clearkey), WV.2 AVC 1080p CBCS (widevine) and WV.5 HEVC 2160p CBCS Different KIDs (widevine) tests are in a production and staging applications.
https://refapp.hbbtv.org/production/catalogue/
https://refapp.hbbtv.org/staging/catalogue/
Current test content is using the same KeyID+EncKey pair for CENC and CBCS encryption format of the "same video".
https://refapp.hbbtv.org/videos/00_llama_h264_v9/cenc/manifest_prcenc_1080p.mpd
https://refapp.hbbtv.org/videos/00_llama_h264_v9/cbcs/manifest_prcenc_1080p.mpd
This may introduce a side effect on some hbbtv televisions, first playback works but second fails (cenc-cbcs playback ordering) because an encryption scheme did not match with the first playback instance. Playback error may happen even if laurl license is marked as a not valid for an offline persistence storage (persist:No) .