Three DRM systems cover the device universe: Widevine (Android/Chrome), PlayReady (Edge/Windows), FairPlay (Apple). Packaging the same content for all three with shared encryption is mature, but the operational details still trip teams up.

Advertisement

Common Encryption (CENC)

Encrypt once with AES-128 CTR; package as fMP4 with separate key IDs and PSSH boxes per DRM. Same media bytes serve all three DRMs. Shaka Packager, Bento4 mp4encrypt do this.

Key delivery

Each DRM has its own license server: Widevine via Google's URL, PlayReady via Microsoft, FairPlay via your own KSM. Wire your CDN / app to request from the right URL per platform. License URL templates in the DASH manifest.

Advertisement

Subtitle and audio quirks

FairPlay has stricter requirements (CBCS encryption mode for streaming, not CTR). Older devices may not support multiple audio tracks under DRM. Test on real devices, not emulators.

CENC packaging + per-DRM key URLs + CBCS for FairPlay. Test on the device matrix, not just one OS.