FairPlay and fmp4 in HLS

HLS with fmp4 support was announced nearly 2 years ago. FairPlay DRM has been around even longer. I read from multiple Apple literatures that fmp4 encryption can be done by Common Encryption using "cbcs' mode. However, after thorough search, I couldn't find any document/spec that has clearly specified how fmp4 in HLS should be encrypted by CENC. For example, how PSSH should be constructed, system id for FairPlay, system specific data, etc.?

Can anyone at Apple shed some light on this matter? I'm sure I'm not the only one who's seeking the answer.


Thank you!

Replies

you want different master manifests for Fairplay, Playready, and Widevine. Microsoft and Widevine define how to set their DRM-specific info, like the Playready Header Object. If you want all 3 with the same fmp4, you have to use cbcs.

Thanks for the information. Are there any documents/specs from Apple that provides guidance on how the mster playlist should be constructed to signal FairPlay and Common Encryption to HLS client? For example, how should the system id be specified, how should the PSSH be carried?


Thanks again!

This issue becomes very confusing...


In the "FPS Programming Guide.pdf" included in FairPlay Streaming Server SDK 4.1, it is mentioned that "MPEG-2 file fomrats are supported for protection". Can fmp4 file format be also supported?


Thanks!