Digital Rights Management (DRM) is the bouncer at the door of every streaming service, and the encryption scheme is the dress code. Two main players dominate this space: CENC (Common Encryption) and CBCS (Cipher Block Chaining Scheme). Both are part of the ISO/IEC 23001-7 standard, but they handle video encryption fundamentally differently, and that difference matters enormously for device compatibility. CENC, specifically the 'cenc' scheme, uses AES-128 CTR (Counter Mode) encryption. It encrypts video in a pattern that works beautifully with older devices and has been the industry workhorse since around 2012. The 'cenc' scheme encrypts full sample data and is supported by virtually every device manufactured in the last decade. It works seamlessly with DASH (Dynamic Adaptive Streaming over HTTP) in MP4 and fragmented MP4 containers, and it is compatible with Widevine, PlayReady, and FairPlay DRM systems. If you have an Android device from 2014 or a smart TV from 2015, CENC is probably why Netflix works on it. CBCS, the newer 'cbcs' scheme introduced in 2015, uses AES-128 CBC (Cipher Block Chaining) mode with pattern encryption. Apple pushed hard for CBCS adoption because it offers better performance on iOS devices and enables features like offline playback with sample-level encryption. The critical difference is that CBCS uses a constant initialization vector (IV) and encrypts in 16-byte blocks with a pattern (typically encrypting 1 block and skipping 9 blocks in video frames). This pattern encryption means less data to decrypt, which translates to lower battery consumption and better performance on mobile devices. Apple's FairPlay DRM strongly prefers CBCS when used with HLS (HTTP Live Streaming) in TS (Transport Stream) or fMP4 (fragmented MP4) containers. The protocol and container relationship gets messy quickly. HLS, Apple's streaming protocol, originally used MPEG-TS containers but has increasingly adopted fMP4. When you use HLS with fMP4 and FairPlay DRM, CBCS is the recommended encryption scheme, especially for iOS 10 and later. DASH, the competing standard backed by Google and others, traditionally pairs with MP4/fMP4 containers and works with either CENC or CBCS, though CENC remains more widely supported. Smooth Streaming, Microsoft's protocol, typically uses CENC with PlayReady DRM in fragmented MP4 containers. Device support is where content providers lose sleep. CBCS requires iOS 9.3 or later for Apple devices, Android 7.0 (Nougai) or later with Widevine L1, and smart TVs manufactured after approximately 2016-2017. Anything older than that cannot decrypt CBCS-encrypted content, period. This is why major streaming services maintain multiple encrypted versions of the same content. They serve CENC to older devices and CBCS to newer Apple devices for optimal performance. The device detection and decision-making happens server-side during the streaming session negotiation. The practical workflow for a streaming service looks like this:

  • Content arrives from production in high-quality master format
  • Encoding pipeline creates multiple bitrate versions (adaptive streaming)
  • Each version gets encrypted with both CENC and CBCS schemes
  • Multiple DRM systems (Widevine, PlayReady, FairPlay) wrap the encryption keys
  • Content Delivery Network (CDN) stores all versions
  • When a user hits play, their device sends capabilities information
  • Server selects appropriate protocol (HLS vs DASH), container (TS vs fMP4), encryption scheme (CENC vs CBCS), and DRM system
  • Wrong choice means playback failure or suboptimal performance

The storage and bandwidth costs are staggering. A single 4K movie might require 20-30 different encoded versions, then doubled for CENC and CBCS encryption, resulting in 40-60 files per title. This is why smaller streaming services sometimes choose CENC-only deployment, accepting that iOS devices will not get optimal performance but ensuring maximum device compatibility. The decision between universal compatibility and optimal performance defines modern streaming infrastructure.