
Most Widevine vs FairPlay vs PlayReady comparisons stop at a platform list: Widevine on Android, FairPlay on Apple, PlayReady on Windows. That is true, and it leaves out the parts that shape a real multi-DRM build: how a license request flows, how security levels decide the resolution a device receives, and an encryption-format mismatch that once made protected video fail on Apple devices. The previous article covered whether you need DRM at all. This one assumes you do and explains what differs once you build it.
TL;DR:
cbcs encryption scheme. Widevine and PlayReady started on cenc, which is why protected video could play on Android and Windows and fail on Apple devices.cbcs from version 7.1 and PlayReady from client version 4.0, so the common default is now one cbcs encryption, packaged as CMAF, serving all three systems. Older PlayReady clients are the exception.Each system belongs to the platform vendor that built it, so reach follows platform share. Widevine runs in Chrome, Firefox, Edge and Samsung Internet, on Android devices, and on most non-Apple smart TVs and streaming sticks. PlayReady covers Windows, Xbox and many smart TVs. FairPlay stays inside Apple's ecosystem: per Mux, it is required for any DRM-protected video on iOS and tvOS, and Kinescope lists it as the DRM for Safari.
On a Mac, the browser picks the system. Fora Soft notes that FairPlay-licensed content can stream 4K HDR on a Mac while Widevine in Chrome on the same Mac caps at 720p. Full audience coverage still means running all three, since each one is the only option on at least one platform you want to reach.
The vocabulary differs, but the sequence is shared. At packaging time the video is encrypted with a content key, and the stream carries PSSH boxes (Protection System Specific Header) naming the DRM systems that can decrypt it. In a browser, the player finds that data through the Encrypted Media Extensions (EME) API and sends a license request to the system it picked. The license server authenticates the request and returns an encrypted license holding the content key, and the Content Decryption Module (CDM) opens it and decrypts segments as they arrive. In EME code the three systems appear as key system strings: com.widevine.alpha, com.apple.fps.1_0 and com.microsoft.playready (all per Mux).
FairPlay changes the envelope. The device sends a Server Playback Context (SPC) blob to your license server, where your Key Server Module decrypts it with your team's private key, checks its integrity and replay window, finds the requested key ID and returns a Content Key Context (CKC). On modern Apple hardware the key never leaves the Secure Enclave. A PlayReady request carries a copy of the device's client certificate, which is what the next section depends on.
All three systems grade a device by where decryption happens, and studios tie the resolution they permit to that grade. The license server reads the grade and decides what to release.
| System | Tier | Where decryption runs | What it unlocks |
|---|---|---|---|
| Widevine | L1 | Hardware Trusted Execution Environment (TEE) | HD and 4K |
| Widevine | L2 | Hybrid, rare on real devices | HD |
| Widevine | L3 | Software only | SD, limited by license policy |
| PlayReady | SL150 | Any implementation | Testing only, not commercial content |
| PlayReady | SL2000 | Software or hardware means, commonly called software-DRM | Lower than SL3000, set by the license server |
| PlayReady | SL3000 | Processor TEE, PlayReady 3.0 or higher | The highest quality of commercial content |
| FairPlay | No published tiers | Keys held in the Secure Enclave | A device either supports FairPlay Streaming or it does not |
Widevine rows are from Kinescope, PlayReady rows from Microsoft's security level page, and the FairPlay row from Fora Soft.
PlayReady enforces the grade twice. The server can read the tier from the client certificate in the request and send different licenses to different clients. Every license also carries a MinimumSecurityLevel of 150, 2000 or 3000, and a client refuses to bind a license whose minimum is above its own level. Multi-key encryption applies the same idea to the files: renditions are encrypted with different keys, such as an SD key and a separate HD or 4K key, and the license server releases the high-resolution key only to hardware-backed devices. A weaker device plays SD and never holds the 4K key.
Common Encryption, standardized as ISO/IEC 23001-7, sits under all three systems. It defines four modes, and Microsoft notes that two of them, cens and cbc1, are allowed but not supported in PlayReady. The two that matter are cenc, AES in counter mode, and cbcs, AES in cipher-block-chaining mode with a 1:9 encryption pattern. FairPlay reads only cbcs. Widevine and PlayReady began with cenc: the Android ExoPlayer documentation lists Widevine cenc from Android 4.4 (API 19) and cbcs only from Android 7.1 (API 25), and Microsoft says PlayReady clients before version 4.0 supported only cenc.
That gap produced the classic multi-DRM failure. Content encrypted once with cenc played on Android and Windows and then failed on Apple devices, because FairPlay cannot read it. Teams that hit it kept two encrypted copies of every title, one per scheme, which doubled storage and packaging work.
Most of that gap has closed. PlayReady clients from version 4.0 can take cbcs, and so can Xbox One units on version 1709 or later. Fora Soft calls cbcs packaging the production default for single-encode multi-DRM: one CMAF asset feeds FairPlay, Widevine and PlayReady, with HLS and DASH manifests built from the same segments. On the HLS side, fMP4 segments need protocol version 6 or higher. The result is one set of encrypted segments, two manifests and three license types. The segment structure is the one covered in video container formats.
Three limits in Microsoft's content encryption modes page keep that from being universal:
Offline playback depends on how long licenses last. FairPlay added persistent licenses in iOS 10 (2016), with two clocks: a storage duration, the time a license stays valid before playback starts, and a playback duration, the time it stays valid after playback starts. Fora Soft's example of 30 days to start and 48 hours to finish is a rental. On Android, the ExoPlayer documentation loads an offline key set by ID and states a known limit: only one offline key set can be specified per playback, so offline playback of multi-key content works only with one particular license-server configuration. Mux adds that offline licenses need explicit setup, or a product that promises downloads breaks.
Kinescope lists three routes to multi-DRM: build it in-house (license servers, FairPlay certificates, CDM updates), hire a vendor that charges per stream (it names DoveRunner, BuyDRM and castLabs), or use a platform with DRM built in. The in-house route has a lead time on the Apple side. Fora Soft reports that FairPlay deployment credentials need Apple's manual approval, with reviews running two weeks or more in 2026, and that a team holds at most two FairPlay certificates at a time.
AIOZ Stream is not in the third group today. A check of its documentation on 2026-10-14, covering the 47 pages in the docs sitemap plus the import and MCP pages, found no mention of Widevine, FairPlay, PlayReady or DRM, the same result as in the previous article. Adding DRM to an AIOZ-hosted workflow means layering a license service on top, so four questions are worth asking any provider:
cbcs and CMAF and serve all three systems from that, or does it keep separate encodes? The difference shows up in storage bills and in how many places a bug can hide.Do I need to support all three DRM systems, or can I pick one?
Full audience coverage requires all three, since each is the only option on at least one platform: FairPlay on iOS and tvOS, Widevine on Android and Chrome, PlayReady on Windows and Xbox. Picking one excludes whichever platforms it does not cover.
What's the difference between Widevine L1, L2 and L3?
L1 decrypts inside a hardware Trusted Execution Environment and allows HD and 4K. L2 is a hybrid that is rare on real devices and tops out at HD. L3 is software only, and its ceiling is SD, set by license policy.
What's PlayReady's equivalent to Widevine L1?
SL3000, available from PlayReady 3.0, which runs in the processor's trusted execution environment and receives the highest-quality licenses. SL2000 is the software-DRM tier, comparable to L3.
Why did my DRM-protected video fail only on iPhone?
The likely cause is a cenc and cbcs mismatch. FairPlay reads only cbcs, and a title encrypted only with cenc plays on Android and Windows but cannot play on Apple devices.
Do I still need to encrypt my content three separate times?
Not with modern clients. Encrypting once with cbcs and packaging as CMAF serves all three systems. The exceptions are PlayReady clients older than version 4.0, and Windows clients at SL2000 before PlayReady 4.4.
Can I encrypt the same title with cenc and cbcs using the same key?
No. Microsoft says a service must not encrypt one piece of content in CTR and CBC mode with the same key ID and key, for both functional and security reasons.
Does Chrome on a Mac use FairPlay or Widevine?
Widevine. Safari uses FairPlay. Fora Soft reports that FairPlay content can reach 4K HDR on a Mac while Widevine in Chrome on the same Mac caps at 720p.
Does AIOZ Stream support Widevine, FairPlay or PlayReady?
No. None of the three appears in AIOZ Stream's documentation, rechecked on 2026-10-14.

Choose OBS encoder settings for AIOZ Stream: the documented 1080p30 values, the missing 720p figure, NVENC vs x264, keyframes, 60 fps and a test procedure.

Set up OBS Studio for AIOZ Stream: build a scene, connect with a Custom RTMP service and stream key, enter the documented output settings, and confirm the stream is live.

Seven steps to go live on AIOZ Stream with OBS or PRISM: stream key, session form, RTMP credentials, bandwidth math, and the first two minutes after you start.

How live streaming on AIOZ Stream works: stream keys, sessions and saved media, OBS and PRISM setup over RTMP, restreaming, statistics, archiving, and what the docs leave out.

What separates a real web3 streaming platform from marketing language, and how AIOZ Stream's DePIN network, on-chain payments and W2E rewards measure up.

WCAG's five real video accessibility rules, why auto-captions usually fail them, what AIOZ Stream actually supports, and how the 2026 ADA deadline changes affect compliance.