我尝试在我的 Arch Linux 上观看 Amazon Prime Video,但它将视频质量强制为 SD。
在亚马逊的支持下,我获悉这种情况发生在没有支持 HDCP 的情况下。
我很确定这不是硬件问题,因为 Prime Video 在 Windows 10 上运行良好。
在哪里可以找到 Linux 支持哪种类型的 HDCP 以及支持哪些硬件/驱动程序?
是否有可以帮助的浏览器插件?
答案1
看起来 Linux 上的 Chromium 目前不支持 HDCP:https://bugs.chromium.org/p/chromium/issues/detail?id=1064949
Linux 上的 Firefox 似乎也一样(因为 Widevine CDM):https://bugzilla.mozilla.org/show_bug.cgi?id=1625155
在 Firefox 问题中,有一条评论解释了如何制作 HDCP 测试工具https://googlechrome.github.io/samples/hdcp-detection/与 Firefox 配合使用。我们需要在 中设置media.eme.hdcp-policy-check.enabled
为。true
about:config
答案2
请注意,它对我来说还不起作用,但以下是我迄今为止的步骤,希望它能对某些人有所帮助。我尝试使用 X11 而不是 Wayland。另外:您尚未指定您的硬件,我的回答可能仅在您有英特尔显卡时才有用。
检查 HDCP 是否正常工作:https://googlechrome.github.io/samples/hdcp-detection/
内核模块mei_hdcp支持intel显卡和i915,参见:https://www.kernel.org/doc/html/latest/driver-api/mei/hdcp.html)
mei_hdcp 驱动程序通过将 HDCP2.2 协商消息转换为 ME FW 命令有效负载(反之亦然),充当 HDCP 2.2 协议实施者(I915)和 ME FW 之间的转换层。
你可以使用 lspci 获取有关显卡的信息。就我而言:
lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 640 (rev 06)
lspci -s 00:02.0 -vv | grep -i module
Kernel modules: i915
确保已加载 mei_hdcp 模块:
lsmod | grep hdcp
mei_hdcp 24576 0
mei 135168 3 mei_hdcp,mei_me
验证我们使用的是 X11 而不是 Wayland:
echo $XDG_SESSION_TYPE
x11
使用 xrandr 设置所连接屏幕的 hdcp 属性并验证:
xrandr --verbose | grep -wi connected
DP-1 connected primary 2560x1440+0+0 (0x45) normal (normal left inverted right x axis y axis) 697mm x 392mm
xrandr --output "DP-1" --set "Content Protection" "Enabled"
xrandr --output "DP-1" --set "HDCP Content Type" "HDCP Type1"
xrandr --verbose | grep -iE "hdcp|content protection|(DP|HDMI)-|desire"
DP-1 connected primary 2560x1440+0+0 (0x45) normal (normal left inverted right x axis y axis) 697mm x 392mm
HDCP Content Type: HDCP Type1
supported: HDCP Type0, HDCP Type1
Content Protection: Enabled
supported: Undesired, Desired, Enabled
要持久设置这些属性,一种方法是创建具有以下内容的文件:
cat /etc/X11/Xsession.d/96_enable_hdcp
xrandr --output "DP-1" --set "Content Protection" "Enabled"
xrandr --output "DP-1" --set "HDCP Content Type" "HDCP Type1"
您可能还需要英特尔 HDCP 服务:https://github.com/intel/hdcp
Intel(R) 统一 HDCP(高带宽数字内容保护)是一种用户空间实现,用于防止跨数字显示接口复制数字音频和视频内容。它提供 Linux 用户空间实现,以启用外部数字显示接口 (HDMI/DP) 的 HDCP1.4 和 HDCP2.2 保护。
对于 ubuntu,intel-hdcp 作为一个包可用,我不知道您是否需要为 Arch Linux 手动构建它。