什么时候需要硬解?

  • 不支持原格式播放设备
  • 非网页端(网页端不支持硬解)
  • 已经是会员或者破解
  • 不以原分辨率播放

以上步骤其实也是需要转码的条件,如果没有集显参与解码,直接使用软件解码会导致CPU使用过高导致卡顿。

硬件解码需要openwrt编译时,把显卡驱动编译好,我使用的是homelede十月三号的版本,已经编译好了,CPU是3865U,使用docker安装的emby。

查看你的硬件和驱动是否已支持硬件解码:

ls /dev/dri

如果出现

card0       renderD128

HD610以上才支持4K硬解,3865U是个很独特的U,核显是HD610的刚好支持,不过是双核的,解码效率不高,但是个人用感觉也够了。

要支持H265硬解和全系列解码,那就需要七代及以上CPU

  • HD610
  • UHD610
  • HD630
  • UHD630
  • UHD620

核心与线程数当然最好是4核4线程。

附完美支持H265和VP9编码8K 10Bit视频硬解的英特尔核显列表:

附完美支持H265和VP9编码8K 10Bit视频硬解的英特尔核显列表:

就说明可以硬件解码,我们只需要使用/dev/dri/:/dev/dri/把显卡共享进emby的docker里即可。

emby docker配置

此时就完成了集显参与的解码,CPU使用率大幅降低。

验证emby是否已加载集显

在转码里,选择高级,如果出现首选硬件则表示成功,建议选择QuickSync

emby硬解配置

踩坑记:

在使用上述方法始终无法在转码里出现首选硬件,在docker里也看到了显卡,折腾重启emby/docker/路由无果后,突发奇想是不是没权限调用?一看果然没读写权限。

解决的方式有3个,

  • 如果是群晖,直接改UID,GID,GIDLIST为0即可,0就是root,
  • openwrt下的docker好像改不了,只能修改card0 renderD128这2个的权限为777即可。
  • 或者重新安装,用root用户安装,格式为name|uid[:group|gid],比如root|0[:0|0],查看root用户的id使用id root即可查询

我是直接暴力改权限777

cd /dev/dri
chmod -777 card0
chmod -777 renderD128

美滋滋,ALLINONE又省下一个nas的钱。

最后修改:2021 年 12 月 25 日
如果觉得我的文章对你有用,请随意赞赏