做视频业务的人早晚会撞上同一堵墙:网页播放器能跑,但用户要的是 App。
理由通常有三个。手机上想要后台播放和离线下载,浏览器给不了。电视上更麻烦,多数智能电视的浏览器根本不支持 EME,DRM 授权拿不到。还有品牌和订阅流程,放在别人的 App 里就永远不是自己的。
于是问题变成:自己搭一个播放器 App,DRM 这块要接多少东西?
我把 DRM-X 6.0 这版 Universal Player SDK 预览版在四端的技术实现过了一遍,下面是整理。
四端的技术栈并不统一
四个平台的播放内核完全不同,这是自建播放器最费时间的部分。
| 平台 | 语言与内核 | DRM 路径 | 已验证内容 |
|---|---|---|---|
| Android / Android TV | Kotlin + Media3 | Widevine | 播放、下载、1080p 直播与密钥轮换 |
| iOS / iPadOS | Swift + AVFoundation | FairPlay | 在线播放、下载播放 |
| Apple TV (tvOS) | Swift | FairPlay | 加密点播、遥控操作 |
| 三星智能电视 (Tizen) | JavaScript + AVPlay | 平台支持的 DRM 路径 | 全高清点播、字幕切换 |
Android 端用的是 Media3,这是 ExoPlayer 的后续形态,做过播放器的应该不陌生。SDK 预览版里给了手机和 Android TV 两套示例,带播放控制、播放列表和字幕,支持的设备上还能做加密下载。
iOS 端走 AVFoundation,SDK 是 Swift 写的,能直接嵌进现有的 App 结构。示例 App 需要自己用 Xcode 编译。
Apple TV 的示例附在 Apple SDK 里,加密点播和遥控器操作在真机上验证过。有一点要提前知道:当前 tvOS 示例以在线流媒体播放为主,没有覆盖下载场景。如果你的电视端产品规划里有离线缓存,这块得再确认。
三星 Tizen 用的是 JavaScript SDK,对接三星的 AVPlay 接口。全高清点播播放和字幕切换在实体三星电视上验证通过。
加密下载:移动端和电视端的分水岭
回头看上面那张表,能明显看出一个分界:下载能力只出现在安卓和 iOS。
这不是巧合。电视端做离线缓存的业务需求本来就少,而且各家的存储策略差异大,统一封装的成本划不来。所以如果你的产品需要离线看,移动端才是主战场;电视端老老实实做在线播放。
Android 的加密下载在受支持的设备上开放,播放和下载流程都在三星 Android 设备上测过。iOS 侧的加密下载播放也在 iPhone 上验过。
直播:4K 那条链路
点播之外,这次还推进了基于 AWS 的直播 DRM 方案。链路是这样的:
编码 打包与加密 分发
MediaLive → MediaPackage v2 → CloudFront
↕
SPEKE 2.0 密钥交换
SPEKE 是打包服务和密钥服务器之间的接口规范,密钥在这里完成交换和轮换。整条链路支持 Widevine、FairPlay、PlayReady 三种分发路径。
实测结果:原生 iPhone 上加密的 4K 直播流解码播放成功,三星 Android 设备上完成了 1080p 直播播放和密钥轮换测试。4K 对应最高 3840 × 2160。
有一句得说清楚:实际分辨率不是个固定值,它取决于播放设备、编解码器、网络状况和内容策略。上手之前先在自己的目标设备和真实直播流程里跑一遍,别拿实验室数据当承诺。
功能差异是常态,不是 bug
不同平台和设备支持的功能本来就会有差别,这是多端 DRM 的基本事实。打包前值得先确认几件事:
-
目标机型覆盖哪些,各自支持什么
-
需要离线下载的话,哪些端能做
-
直播要跑到什么分辨率,设备跟不跟得上
获取方式和门槛
几个实际门槛,先摆在前面省得白折腾:
-
客户版 SDK 下载需要有效的专业版或企业版订阅
-
文档、App 截图、Android 评估 APK、三星电视评估安装包都是公开的,可以先评估
-
Apple 示例 App 需要 Xcode 编译
-
三星电视安装需要对目标电视签名
也就是说,纯评估不需要付费,但没有订阅拿不到客户版 SDK。
文档那边同步做了什么
多语言文档这次补了原生 SDK 的详细说明、三星电视的安装步骤、AWS Live DRM 示例,还有图文版的 Amazon S3 和 Cloudflare R2 配置教程,从建存储、配 CORS 到上传加密内容、测试分发都有。
想先看播放效果,可以直接开 PHP 演示,页面会自动以 Demo Viewer 身份登录,点播放就能试看公开评估内容。
-
Android SDK 文档:Android SDK 与原生 Media3 | DRM-X 6.0 Docs
-
Apple SDK 文档:Apple FairPlay 集成 | DRM-X 6.0 Docs
-
三星 Tizen SDK 文档:Samsung Tizen SDK 和 TV 评估 | DRM-X 6.0 文档
-
AWS 直播推流教程:AWS 和 OBS 直播设置 | DRM-X 6.0 文档
几个提醒
DRM-X 6.0 目前还在 Beta 阶段,正式发布时间待公告,试用权限需要企业资质核验和审批。所以上面的实测数据都来自 Beta 环境,别当成最终版本的能力承诺。
另外,Widevine、PlayReady、FairPlay、WisePlay 这四个生态的平台侧也整合在同一条后端链路上,Web 端和原生 App 的集成方案都有。做在线教育的话,WordPress 和 Moodle 那边有现成的集成文档,包括 LearnPress、LearnDash、Tutor LMS 的适配说明。
文中提及的第三方产品与商标归各自权利人所有,相关标识仅用于说明技术关系。