首页
/ Shaka Packager中FairPlay DRM遗留PSSH支持的修复

Shaka Packager中FairPlay DRM遗留PSSH支持的修复

2025-07-04 00:54:33作者:幸俭卉

在视频流媒体打包工具Shaka Packager的最新版本中,出现了一个与苹果FairPlay DRM系统相关的兼容性问题。这个问题主要影响使用原始密钥(raw key)和PSSH(Protection System Specific Header)进行HLS打包的场景。

问题现象

当用户使用特定格式的PSSH进行HLS打包时,生成的媒体播放列表(medialist)中缺少了关键的EXT-X-KEY标签。这个标签对于HLS流媒体的DRM保护至关重要,因为它包含了内容解密所需的信息。

经过分析,这个问题是由于Shaka Packager对FairPlay系统ID(System ID)的识别逻辑变更导致的。在较新版本的Packager中,工具会忽略未知或不支持的系统ID,并输出警告信息:"HLS: Ignore unknown or unsupported system ID"。

问题根源

这个问题源于Shaka Packager项目对DRM系统标识符的标准化更新。在2017年,苹果公司正式确定了FairPlay DRM的系统ID为94CE86FB07FF4F43ADB893D2FA968CA2,取代了之前非官方的ID29701FE43CC74A348C5BAE90C7439A47

Shaka Packager在最近的更新中遵循了这一标准,导致使用旧系统ID的PSSH被识别为"未知或不支持",从而影响了HLS媒体播放列表的生成。

解决方案

开发团队提供了两种解决方案:

  1. 更新系统ID:将PSSH中的旧系统ID替换为苹果官方的新系统ID94CE86FB07FF4F43ADB893D2FA968CA2。这是推荐的长期解决方案,符合最新的行业标准。

  2. 兼容旧系统ID:考虑到实际部署中可能存在大量使用旧系统ID的客户端设备,Shaka Packager开发团队决定恢复对旧系统ID的支持,确保向后兼容性。

技术影响

这个修复对视频打包工作流程有以下影响:

  • 确保使用旧系统ID的现有部署能够继续正常工作
  • 不影响使用新系统ID的部署
  • 保持与各种客户端设备的兼容性,特别是在更新困难的地区市场

最佳实践

对于新部署,建议使用苹果官方指定的系统ID。对于现有部署,可以根据实际情况选择是否更新系统ID:

  • 如果客户端设备能够接受更新,建议逐步迁移到新系统ID
  • 如果客户端设备难以更新,可以继续使用旧系统ID,但需要注意Shaka Packager的版本兼容性

这个修复体现了Shaka Packager项目对实际部署环境的重视,在推进标准化的同时,也考虑到了现实世界中的兼容性需求。

登录后查看全文
热门项目推荐
相关项目推荐