硬件转码开启

硬件转码是 Emby 体验里最有价值也最容易出错的一项功能。它把视频解码与编码从 CPU 挪到专用硬件上,一路 4K 转码的 CPU 占用能从满载降到百分之几。但它是 Premiere 功能,并且依赖正确的驱动与配置,任何一个环节缺失都会退化成软转码或直接报错。本篇按铺垫、开启、验证、排错的顺序完整讲一遍,看完你应该既能动手操作,也知道每一步出问题时该往哪里看。

在讲具体设置之前,先破除一个误解:硬件转码不是万能性能开关。它改善的是高负载下的服务器表现,但不能突破上行带宽限制,也不能让播放端支持它不认识的格式。期望值摆正,后面验证与排错时才不会被误导。

转码的基础概念

先统一术语。转码分两种情形:转封装只是把容器从 MKV 换成 MP4 等客户端友好的格式,音视频流本身不重新编码,几乎不消耗性能;真正占用资源的是转码,即重新编码视频流,通常为了降低分辨率或码率以适应播放带宽。

一个快速的判断方法:客户端的播放信息里如果显示直接播放或直接流,说明文件不需要服务器动刀;只有显示转码时服务器才开始工作。养成先看播放信息的习惯,能帮你分清是网络问题、格式问题还是服务器问题。

硬件转码就是把重新编码的过程交给专用硬件。三类主流方案的编解码器不同,但工作模型一致:CPU 把压缩数据交给显卡,显卡完成解码与再编码,再把结果送回网络栈。整个流水线里 CPU 只负责搬运数据,这也就是为什么开硬件转码后 CPU 占用会断崖式下降,同时功耗与发热也一并降下来,对常驻运行的家庭服务器是实打实的好处。

方案 代表硬件 优势 注意点
Intel QuickSync 带核显的 Intel CPU 功耗低、家庭首选 需要核显可用且代际够新
NVIDIA NVENC 独立显卡 并发路数多 需要驱动与运行时钩子
AMD AMF Radeon 显卡 价格有时划算 驱动兼容性问题相对多

三类硬件转码方案

软件层面还需要编码格式支持。HEVC 与 H.264 在三类方案上都没问题,AV1 编码则要求较新的硬件代际。容器与编码格式的完整兼容矩阵可以查官方文档,本文不逐条罗列,核心判断是:播放端不支持的格式才需要转码,能直接播放的不要让服务器转。现代电视盒子与手机大多支持 H.264 与 HEVC 的直接播放,真正频繁触发转码的是冷门编码、过高码率与需要烧录的字幕这三类,把这些高发场景记住,比背兼容矩阵更有用。

前提条件与许可

开启硬件转码前需要确认三件事。第一,硬件在支持列表内,具体代际要求在 em-0103 有清单。第二是驱动与设备节点对容器可见:Docker 部署时必须把显卡设备映射进容器,否则服务端在硬件列表里什么都看不到。Intel 平台映射 /dev/dri 即可;NVIDIA 平台更繁琐一些,需要在宿主机上装好显卡驱动与容器运行时钩子,让容器能正确访问设备。第三是 Premiere 许可——硬件转码属于会员功能,没有有效许可时设置里的开关即使打开,实际播放也会回退到软编码。

这一条是 Emby 与 Jellyfin 最大的使用差异:同样的硬件,Jellyfin 免费开启硬件转码,Emby 需要持有 Premiere 许可。这也是 em-0105 算账框架里最重的一项。许可的有效性可以在服务端控制台的账户页直接查看,续费状态与到期时间都显示在那里,不用去翻注册邮箱。许可与功能的对应关系如下:

许可状态 硬件转码 直播与 DVR 移动客户端
无许可 不可用 不可用 受限
有效许可 可用 可用 完整

开启步骤

服务端开启硬件转码的路径是:控制台、播放、转码设置。进入后按顺序处理。

第一步选择硬件加速类型。Intel QuickSync 对应核显,NVENC 对应 NVIDIA 显卡,AMF 对应 AMD。选错类型不会报错,只是下面列出可用的编码格式会为空。

第二步确认编码格式列表非空。类型选择正确时页面会自动列出硬件支持的解码与编码格式;列表为空说明驱动或设备节点有问题,需要回到部署侧排查,而不是继续往下点。这一步是整个流程里命中率最高的排错点,官方与社区文档都建议把它作为第一道检查,成本只有一眼,远比后面反复排查驱动与许可的完整链条的排查功夫省事得多。

第三步按需开启细分开关。界面上会列出视频转码、音频转码等若干独立开关,家庭场景通常全开。音频转码不占用显卡,保持默认即可。

顺手做的一件事是把每个客户端的播放设置里允许直接播放原生格式勾上。这个设置决定了客户端是否优先尝试直接播放而非要求服务器转码,对减少无意义的转码负载帮助很大。尤其 TV 端与移动客户端默认设置偏保守,确认一次受益一年,算是开启硬件转码之余的一笔小红利。

控制台 → 播放 → 转码
硬件加速类型:Intel QuickSync(或 NVENC / AMF)
解码格式:自动列出
视频转码:开启

保存后不要急着关页面。首次配置建议同时把转码线程数与画质策略按家庭带宽情况微调:外网观看为主时用自适应码率,内网千兆环境可以把最大码率放宽,减少不必要的降画质。

音频转码需要单独说明。它不经过显卡,无论硬件转码是否开启,音频流的重采样与重编码都走 CPU。好消息是音频数据量小,CPU 开销可以忽略。真正要注意的是杜比全景声这类音效格式——不少客户端无法直接解码,Emby 会把音频转码成兼容格式, Premiere 里的音轨转换功能就是为此设计的。

如何验证真的在用硬件

开关打开不代表实际生效,验证环节必须有明确的验证方法。最直接的验证是播放一个需要转码的片源,同时观察服务器状态:

观察项 硬件转码生效 软转码回退
播放开始延迟 两三秒以内 明显等待
流量面板标记 显示硬件类型 仅显示转码中
CPU 占用 上升有限 单核或多核跑满
显卡占用 编码器被占用 无变化

硬件转码验证四步

播放面板里每个活跃会话都会标注是否转码以及所用编码器类型。看到硬件类型标注后,再观察一到两分钟,确认播放稳定不卡顿,才算验证完成。

验证时建议选一段代表性片源:带 HEVC 编码、高码率、外文字幕的影片最能暴露问题。字幕需要烧录进画面时会触发额外的渲染开销,某些显卡场景下表现与无字幕片有明显差距。若这批内容验证通过,日常使用基本不会出状况。

常见不变与排错

硬件转码的高频问题有一张固定的排查清单。以下每一条都对应具体做法,详细展开在 em-0404,这里先建立对照关系。

症状 可能原因 排查方向
硬件类型列表为空 设备节点未映射 检查 docker 映射参数
开启后播放黑屏 编码格式不支持 回退测试软转码是否正常
播放几分钟后卡死 散热或供电不足 监控温度与占用曲线
转码路数上不去 编码器并发上限 参考硬件规格调整预期
升级后忽然失效 驱动适配回退 回到上一稳定版验证

其中第一项占了一半以上的求助帖。设备节点没有映射进容器时,服务端控制台的表现是硬件加速类型可以选、但格式列表为空,这个特征很隐蔽,容易误判为许可问题。判断依据很简单:先确认许可有效,再看格式列表,顺序不能颠倒。

多容器场景还要注意一个陷阱:如果宿主机上同时还有其他服务在占用显卡的编码器,Emby 的转码会码率为了等待编码器资源而排队。家用核显通常只有一到两个编码器实例,多人同时观看高码率片源时会出现互相等待,表现是某一路忽然开始转圈。这不是故障,把并发预期与编码器规格对齐即可,em-0404 有详细的并发调优方案。

再补充一类设置层面的回退问题。硬件转码生效需要同时满足硬件、驱动、许可三个条件,任何一个掉链子都会静默回退到软转码,表现是播放仍然正常但说明文字没有硬件标记。日常使用中看到服务器 CPU 忽然跑高,第一反应应该是检查转码是否仍走硬件,而不是怀疑网络。养成定期看一眼活跃会话面板的习惯,这类回退能在几分钟内发现,辛苦积攒的观影体验也就不会莫名其妙打折。

延伸阅读