求助:如何创建HEVC Fairplay流?已试Shaka Packager等工具未成功
成功创建HEVC Fairplay流的实现方法
我之前成功搭建过HEVC Fairplay流,踩过不少坑,给你分享下具体的步骤和关键注意事项,应该能帮你解决问题。
前提准备
在开始之前,你需要确保有这些核心物料:
- 符合要求的HEVC(H.265)编码视频源(建议用Main或Main10 profile,level适配目标播放设备),搭配AAC音频流
- 有效的Fairplay DRM物料:Fairplay证书(
.cer)、AES-128密钥、密钥ID、初始化向量(IV),以及可正常响应的Fairplay密钥服务器(SKD)
方法一:使用Shaka Packager
Shaka Packager对HEVC和Fairplay的支持比较成熟,建议使用v2.6及以上版本:
- 准备密钥信息文件
创建一个keyinfo.txt,内容格式如下:
https://your-fps-skd-url.com 你的密钥ID(十六进制格式) 你的AES密钥(十六进制格式)
- 执行打包加密命令
运行以下命令生成加密的HLS流:
packager \ input=input_hevc.mp4,stream=video,output=video_encrypted.mp4 \ input=input_aac.mp4,stream=audio,output=audio_encrypted.mp4 \ --hls_master_playlist_output=master.m3u8 \ --hls_segment_duration=10 \ --hls_fairplay=true \ --fairplay_cert_path=./fairplay.cer \ --key_info_path=./keyinfo.txt \ --hls_key_format="com.apple.streamingkeydelivery" \ --hls_key_format_versions="1"
关键参数说明
--hls_fairplay=true:开启Fairplay专属加密模式--fairplay_cert_path:指定你的Fairplay证书本地路径--key_info_path:指向包含密钥、密钥ID和SKD地址的配置文件--hls_key_format和--hls_key_format_versions:必须设置为Apple要求的固定值,否则播放器无法识别加密流
方法二:使用Bento4工具链
Bento4是一套轻量的MP4处理工具链,也能实现HEVC+Fairplay的打包流程:
- 加密HEVC视频文件
先使用mp4encrypt对原始HEVC MP4加密,需要先生成Fairplay专属的PSSH盒:
# 生成Fairplay PSSH(固定系统ID:94CE86FB-07FF-4F3E-8721-4FF98779018A) mp4pssh --system-id 94CE86FB-07FF-4F3E-8721-4FF98779018A --key-id 你的密钥ID(十六进制) --output pssh.bin # 执行视频加密 mp4encrypt \ --method MPEG-CENC \ --key 1:你的AES密钥(十六进制) \ --iv 1:你的初始化向量(十六进制) \ --property 1:pssh:$(cat pssh.bin | xxd -p | tr -d '\n') \ input_hevc.mp4 \ encrypted_video.mp4
- 生成HLS播放列表
用mp4hls生成带Fairplay加密的HLS流:
mp4hls \ --encryption-key=你的密钥ID(十六进制):你的AES密钥(十六进制) \ --encryption-iv=你的初始化向量(十六进制) \ --fairplay-cert=./fairplay.cer \ --fairplay-key-server-url="https://your-fps-skd-url.com" \ --segment-duration=10 \ encrypted_video.mp4 \ encrypted_audio.mp4
关于Zencoder的说明
Zencoder作为云转码服务,支持HEVC+Fairplay组合,但需要在转码配置中明确声明:
- 视频编码指定为
h265 - DRM模块开启Fairplay,传入证书、密钥、密钥ID等完整参数
如果之前尝试失败,建议检查是否在配置中遗漏了Fairplay的必填物料,或者联系Zencoder支持确认你的账户是否开启了HEVC+Fairplay的服务权限
关键注意事项
- 播放器兼容性:只有Safari 11+、iOS 11+、tvOS 11+以上的设备支持HEVC Fairplay流,测试时务必使用符合版本要求的设备
- 证书有效性:Fairplay证书必须是苹果官方颁发的,且密钥服务器(SKD)能正确响应播放器的密钥请求
- 工具版本:务必使用最新版的Shaka Packager或Bento4,旧版本可能对HEVC的加密支持存在缺陷
- 流格式检查:可以用
mediainfo查看加密后的MP4文件,确认CENC加密信息和Fairplay PSSH盒是否正确生成
内容的提问来源于stack exchange,提问作者sayoni dutta roy
相关产品推荐
相关产品推荐

