写在前面
奈飞(Netflix,另一称“网飞”)近几年真的很火,并且越来越火。从《Seven》(七宗罪)到《V for Vendetta》(V 字仇杀队),从《Love、Death、Robots》(爱死机)到 2021 年火遍全球的《Squid Game》(鱿鱼游戏),奈飞旗下手握数字 IP 无数,这些鼎鼎大名的作品相信已经成为一代人心中的记忆,不过本文接下来并不是要探讨奈飞的数字内容宇宙。
随着流式媒体平台的火爆,有部分小伙伴通过各种姿势上车了 Netflix/Amazon Prime/Disney+/Apple TV+ 等新兴流媒体平台的会员,然后发现自己的黑苹果有时并不能正常播放这些内容;再或者购入了一套心仪已久的 AirPods Pro/Max/HomePod,发现赠送的 Apple Music 会员无法在黑苹果上播放...
这其中的原因,就是 DRM 在作怪。
DRM,英文全称 Digital Rights Management,直译为“数字版权管理”。数字版权管理是指数字内容,如音视频节目内容、文档、电子书籍等在生产、传播、销售、使用过程中进行的权利保护、使用控制与管理的技术。详见百度百科或 Wikipedia 查看。,本文不深究其原理及作用,仅针对黑苹果如何处理带 DRM 系统的数字内容做一些说明和探讨。
遗憾的是,在 macOS 升级到 11.x 版本(Big Sur)和 Safari 14.x 以后,苹果公司移除了 macOS 所有 DRM 软件解码器,DRM 内容的播放在苹果自家产品上是这么处理的:T2 和 M1 芯片内置了 DRM 硬件解码器;没有 T2 芯片的机型则使用拥有苹果数字证书的 iGPU 固件处理 DRM 内容,没有核显的机型则使用独立显卡的硬件解码器,而更古老的硬件解码器(例如 NVIDIA VP3)则干脆直接删除支持,因为这些机型本来也在新版本 macOS 的计划淘汰名单中。
单就奈飞的情况来看,目前 4K 内容和未来更高清的数字内容会强制要求使用 T2/M1 机型(macOS)或 7 代酷睿及以上平台(Windows),详见 9to5mac 这篇文章,未来的大方向就是内容版权方要求数字内容必须经由硬件解码。
铺垫那么多,其实就是要明确以下几点:
- 新兴的流式媒体数字内容平台很多都配备了 DRM 以保护版权方利益;
- 普通 PC(黑苹果)的核显不支持苹果的 iGPU 固件,也没有苹果的数字证书所以不支持硬件解码 DRM 内容;
- macOS 10.15.x 及以下版本目前仍然保留了 DRM 软件解码器;
- macOS 11.x 及以上版本完全删除了 DRM 软件解码器和古老的硬件解码器支持,因此 DRM 内容解码靠硬件,需要使用免驱支持的独立显卡,可见「macOS 独立显卡支持表」,免驱显卡优先选择较新型号,AMD 显卡建议 RX400/500(Polaris)及以上,NVIDIA 的免驱显卡则完全不建议考虑。
- 鉴于 11.x 及以上系统不存在 DRM 软件解码器,接下来要讨论的内容主要基于 10.15.x 的 macOS 系统。
DRM 解码测试
建议在你认为已经完成黑苹果安装调试,驱动核显及优化独显(如果有优化方案的话)之后,再进行下列几项常见的 DRM 测试。
FairPlay 1.x:基于软件的 DRM,主要用于旧型号 Mac。
- 最简单的测试方法是播放 iTunes 商店里的影片,或者尝试这个:FairPlay 1.x Test.m4v
下载地址一:天翼云(访问码:3wbs)
下载地址二:百度云(提取码: mj5t) - 只要 WhateverGreen.kext 的设置正确,FairPlay 1.x 的影片适用于任何黑苹果配置,包括只有核显的配置。但是,FairPlay 1.x 电影只能在仅有核显的配置上播放大约 3-5 秒,然后错误地认为不支持 HDCP。
FairPlay 2.x/3.x:基于硬件的 DRM,主要见于奈飞(Netflix)和 Amazon Prime。
- 直接到奈飞或 Amazon Prime 网站点几个 4K 影片看一下,或者播放 Amazon Prime 预告片《蜘蛛侠:英雄远征》,这个预告片没有 DRM 加密,但 Amazon 的播放器仍然会先检查是否支持。
- 「注意」要求 Polaris(RX4x0/RX5x0)及更新架构的 AMD 显卡。
FairPlay 4.x:混合 DRM,见于 AppleTV+。
- 如果你所在的地区可以正常使用 AppleTV,打开运行,选择 TV+,然后选择 Free AppleTV+ Premieres,然后点击任意内容进行测试。
- 支持 AppleTV+ 业务的地区苹果公司会赠送一定时间试用,可供测试。
- 「注意」要求没有核显的 Xeon 系列处理器或 Polaris(RX4x0/RX5x0)及更新架构的 AMD 显卡。在混合 DRM 模式和没有核显的情况下,强制 FairPlay 1.x 工作是可行的。
如果上述测试一切正常,就没有必要继续往下看了。
Shiki.kext
- 在软件解码 DRM 内容流行时,黑苹果世界有位大神开发了 Shiki.kext,目前该项目已合并到 WhateverGreen.kext(WEG),WEG 继承了 Shiki.kext 的所有 DRM 补丁功能。Shiki.kext 允许调用 macOS 内置的 DRM 软件解码器对 DRM 内容进行解码播放,但并不能把苹果公司已删除的 DRM 软件解码器带回来,因此并不保证 11.x 及以上系统可以正常工作。
- macOS 10.15.x Catalina + Safari 13.x 支持很多 DRM 解码器类型,Acidanthera 团队中的大神 vit9696 曾经整理了一个详细的表格,适用于常见的各类黑苹果硬件类型:
配置 | 黑果机型 | 适用模式 | ITunes 预告片 | ITunes 电影 | 苹果 TV+ | Amazon Prime 预告片 | Amazon Prime/Netflix | 英特尔 IQSV |
---|---|---|---|---|---|---|---|---|
核显+AMD独显 | iMac/Macmini | shikigva=16 | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 普通硬解 | 不支持 | 支持 |
核显+AMD独显 | iMac/Macmini | shikigva=80 | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 硬解 FairPlay 3.0 | 硬解 FairPlay 3.0 | 支持 |
仅AMD独显 | iMacPro/MacPro | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 硬解 FairPlay 3.0 | 硬解 FairPlay 3.0 | 不支持 | |
仅AMD独显 | iMacPro/MacPro | shikigva=128 | 硬解 FairPlay 1.0 | 硬解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 硬解 FairPlay 3.0 | 硬解 FairPlay 3.0 | 不支持 |
核显+NVIDIA独显 | iMac/Macmini | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 不支持 | 普通硬解 | 不支持 | 支持 | |
仅NVIDIA独显 | iMacPro/MacPro | shikigva=256 | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 软解 FairPlay 3.0 | 普通硬解 | 不支持 | 不支持 |
仅核显 | iMac/Macmini | 软解 FairPlay 1.0 | 不支持 | 不支持 | 普通硬解 | 不支持 | 支持 |
几点说明:
- 「注意」:适用上表的硬件配置情况,iMac 机型必须满足这个条件:拥有 AMD/NVIDIA 独立显卡的配置,核显需设置为专门用于硬解加速的帧缓冲 ID,例如 0x3E9B0007 核显是有画面输出的,而 0x3E980003 核显仅用于计算加速;iMacPro 和 MacPro 机型是没有核显的处理器机型首选。
- 「普通软解」:软件未加密解码器,任意情况下都能正常工作;
- 「普通硬解」:硬件未加密解码器,值需要兼容硬解的 GPU 就能工作;
- 「软解 FairPlay 1.0」:软件 FairPlay 1.0 解码器 (CoreFP);
- 「软解 FairPlay 2.0」:软件 FairPlay 1.0 解码器 (CoreFP),需要 HDCP;
- 「软解 FairPlay 3.0」:软件 FairPlay 4.0 解码器 (CoreLSKD),需要 HDCP 且无需核显;
- 「硬解 FairPlay 1.0」:硬件 FairPlay 1.0 解码器 (CoreFP),需要支持的 AMD 显卡;
- 「硬解 FairPlay 2.0」:硬件 FairPlay 1.0 解码器 (CoreFP),需要 HDCP 和支持的 AMD 显卡;
- 「硬解 FairPlay 3.0」:硬件 FairPlay 2.0/3.0 解码器 (CoreLSKDMSE),需要 HDCP 和支持的 AMD 显卡;
- 「硬解 FairPlay 4.0」:硬件 FairPlay 4.0 解码器 (CoreLSKD),需要 HDCP 和支持的 AMD 显卡;
- 「英特尔 IQSV」:指的是 Intel Quick Sync Video,当存在英特尔核显并在 BIOS 中启用,且设置正确时才有效;
- 上表中的 shikigva=N 可以直接作为启动参数使用,例如 shikigva=80 或 shikigva=16。也可以用作设备属性(DeviceProperties)进行注入。启动参数的添加方法见「启动参数说明」一文,下面介绍一下如何用设备属性方法分配到你的核显/独显上。「注意」如果你有多个显卡,只能选择其中一个进行设备属性注入,否则无法保证 shikigva 功能是否工作正常。
- 「启动参数说明」
设备属性注入法
首先从 Hackintool 获取你的显卡 Pci 路径:
如图所示复制 Device Path。
然后打开 OpenCore Configurator / Clover Configurator / OpenCoreAuxiliaryTools / ProperTree 编辑器,照图输入:
OpenCore Configurator
上图中的 shikigva=80 是可以自行定义的,可参考是本文之前给出的表格,另一种是参考 WEG 的开发堆栈中 kern_shiki.hpp 的内容,开发团队写了非常多的注释,如下:
Shiki 全参数解释
小结
总的来说,应用 Shiki 的功能调整 macOS 的 DRM 解码策略是比较简单的。举个例子,如果你的配置是 AMD 5900X,独显是 5700XT,那么按照表格你可以选择 shikigva=128,你可以使用启动参数方式,也可以使用设备属性注入方式,修改好配置后重启系统进行验证是否生效;
再举个例子,如果你的配置是 i9-9900K,独显是 Radeon VII,选择面就宽一点,在启用核显的情况下有 shikigva=16 和 shikigva=80 两种,在关闭核显后还可以尝试 shikigva=128,修改好配置后重启系统进行验证是否生效。
比较少见的特殊配置,例如 i7-3770k + 6800XT (已关闭核显)这类老处理器搭较新显卡的情况,不包含在上面的表单中。建议按照上面给出的 Shiki 的全功能解释逐个尝试,或自行研究。
对于比较古老的处理器(例如 Xeon 或 Core 2 Quad)搭配支持的 AMD 显卡,要使用带 DRM 的流式媒体时,需要给显卡注入以下设备属性:
AMD 显卡的视频解码器首选项可以覆盖部分类型的 DRM 内容(如 Apple TV 和 iTunes 电影流)的首选项。但是这些首选项可能不完全和 macOS 其它功能兼容,可能导致其他软件或程序的解码/编码功能出现问题。下面提供了几组可供修改的首选项修改,不建议日常使用,在需要时修改。打开终端按需输入即可:
上述第一条还可能同时可以解决 macOS Big Sur 中 VDADecoderCreate failed. err: -12473 的问题。
评论(0)