四家厂商。四块固定功能的硅片。一项任务——在五毫秒内把一帧像素变成几千字节的 H.265 或 AV1,每秒六十次,一帧不丢。这里讲讲 NVIDIA、AMD、Intel 和 Apple 在低延迟串流上究竟如何比较,以及 Remio 如何在运行时挑选合适的那一个。
为什么硬件编码器对远程桌面很重要
在一个快速的 CPU 核心上,用 libx264 编码单帧 1080p。在现代的 Apple M 系列或 Ryzen 7000 上,ultrafast 预设大约能做到 8 到 12 毫秒,任何试图保住画质的设置则更久。这听起来还能忍受,直到你想起预算:60 FPS 下每帧 16.6 毫秒。再加上采集、封包、发送队列、网络出口、解码和渲染。CPU 编码不只是拖慢你——它会吃掉全部的延迟预算,而且在超过 1080p60 之后就会丢帧。
硬件编码器的解决办法,是把固定功能的硅片专门用于同一项工作。NVIDIA 把它的模块叫 NVENC。AMD 把它的叫 AMF(更准确地说,是 AMF 所驱动的 VCN 引擎)。Intel 把它的叫 QuickSync(其核显里的媒体引擎)。Apple 把它的叫 VideoToolbox(这是 API;硅片是 M 系列和 A 系列芯片上的媒体引擎)。四者存在的原因只有一个:软件编码无法达到现代屏幕、现代 GPU 和现代用户如今所期待的延迟和帧率目标。
具体到 Remio,编码器上每节省一毫秒,就是用户在发送队列、网络和渲染器那里多拿回的一毫秒。我们公布的延迟预算以局域网上约 8 ms 的处理为目标(其余部分是你显示器自身 60 Hz 的刷新节奏)——编码时间是其中最大的单一变量。编码器的选择,以及对该编码器的配置,决定了下游的一切。
四家厂商一览
在深入每一家之前,先弄清我们到底在比较什么,会有帮助。这些不是可以互换的库——它们是芯片上的物理模块,每一个都有自己的指令集、自己的驱动栈、自己的怪癖,以及自己的多年路线图。它们在支持哪些编解码器、产出什么画质、达到什么延迟、耗多少电,以及存在于哪些平台上,都各不相同。
- NVENC 自 2012 年(Kepler)起出现在每一块 NVIDIA GeForce、Quadro 和 RTX 上。各代与架构系列绑定:第 1 代在 Kepler 上,第 8 代在 Ada Lovelace 上。Hopper 数据中心产品有不同的节奏。
- AMF 暴露的是 AMD 的 VCN(Video Core Next)引擎,它取代了更早的 VCE。每一块 Vega、RDNA、RDNA2 和 RDNA3 GPU 上都有,还有较新的 APU。
- QuickSync 自 2011 年 Sandy Bridge 起就出现在 Intel 核显里——使它成为地球上部署最广泛的硬件编码器。Arc 独立显卡使用同样的架构,只是规模放大。
- VideoToolbox 是 Apple 的 API;底层的硅片是媒体引擎,内置于每一台 Apple 芯片 Mac、每一部自 A6 以来的 iPhone 和每一台 iPad。M 系列芯片根据型号不同,配有一个或两个引擎。
NVENC——NVIDIA 八代的精益求精
NVENC 是大多数串流软件拿来做基准的编码器,一部分是因为 NVIDIA 有营销预算,一部分是因为这块硅片十年来确实一直非常出色。这个模块已经历了八代:
- 第 1–3 代(Kepler 到 Maxwell,2012–2014)——只有 H.264,可用于串流,但画质明显落后于 libx264。
- 第 4 代(Pascal,GTX 10 系列)——增加了 H.265 编码。正是这一代,NVENC 的画质在同等码率下追平,并且可以说超越了 libx264 的 fast 预设。
- 第 6 代(Turing,RTX 20 系列、GTX 16 系列)——常被人提起的“Turing NVENC”飞跃。低码率下的画质提升到如此程度,以至于主播们不再假装 CPU 编码对直播场景有什么实质上的优势。
- 第 7 代(Ampere,RTX 30 系列)——小幅改进,每瓦画质与 Turing 大致相当。
- 第 8 代(Ada Lovelace,RTX 40 系列)——NVIDIA 第一代带有硬件 AV1 编码的架构,高端型号上还有双编码器引擎。Ada 的 NVENC 做 AV1,画质可与 libaom-av1 的 medium 预设相媲美,而 CPU 成本只是其中的一小部分。
对于低延迟用途,NVENC 暴露了三种相关的码率控制模式。CBR 加上 low-latency 调校和 p1 预设(最快)是典型配置:输出码率确定、单帧前瞻、没有 B 帧。Remio 在 Windows 上运行 hevc_nvenc 时用的正是这一套。在 Ada Lovelace 上,1080p60 H.265 的编码时间始终是 1 到 3 ms。
一个历史遗留的坑:消费级 NVENC 多年来受 NVIDIA 驱动限制,只允许三个并发编码会话。该限制在 2023 年被放宽到八个,随后实际上被取消。如果你读到一个过时的论坛帖子在警告这件事,那个警告已经不再适用。
AMF——AMD 这个终于追上来的挑战者
AMD 的 AMF(Advanced Media Framework)是 API;底层引擎经历过两种截然不同的架构。较早的 VCE(Video Coding Engine)出现在 2012 年的 GCN 时代显卡上,是历次编码器正面比较中长期的弱项——在同等码率下,画质明显不如 NVENC,尤其是在运动密集的内容上。AMD 知道,串流社区知道,基准测试也证实了这一点。
这一状况随着 VCN(Video Core Next)而改变,它在 Vega 上引入,并在之后每一代中不断改进:
- VCN 1.0–2.0(Vega、RDNA1)——H.264 和 H.265,画质终于接近 NVENC 的 Pascal/Turing,只差一线。
- VCN 3.0(RDNA2,RX 6000 系列)——画质显著提升,尤其是在低码率下。是我愿意推荐用于游戏串流的第一代 AMD 产品。
- VCN 4.0(RDNA3,RX 7000 系列)——与 NVIDIA Ada 同步加入 AV1 编码。高端型号上有两个编码器,可并行处理会话。在第三方基准测试中,AV1 画质可与 NVIDIA 的 AV1 相媲美。
对于低延迟串流,AMF 提供了 ultralowlatency 用途预设、speed 画质预设和 cbr 码率控制模式。Remio 的 hevc_amf 三者都用——就是我们串流架构笔记里记录的同一组预设三件套。在 RDNA3 上,1080p60 H.265 的编码时间通常在 2 到 4 ms。RDNA2 大约是 3 到 5 ms。较老的 VCN 1.x 时代显卡则更接近 5 到 7 ms——依然在预算之内,但应对关键帧尖峰的余量更少。
五年来,AMD 的编码器一直是个笑柄。RDNA2 把它修好了。RDNA3 让它在 AV1 上也具备了竞争力。串流编码器的双雄格局,如今成了三足鼎立,这对所有人都是好事。
QuickSync——默默无闻的普及冠军
QuickSync 是你几乎肯定已经拥有的编码器。自 2011 年 Sandy Bridge 起,每一颗带集成显卡的 Intel CPU 里都有——也就是十多年来的笔记本、NUC 和办公台式机,硬件视频编码一直闲置着,因为用户以为自己需要独立显卡。其实并不需要。
这一架构与 Intel 核显的演进同步前进:
- Sandy Bridge 到 Skylake(2011–2015)——只有 H.264,画质一般,但在笔记本上延迟和功耗是同级最佳。
- Kaby Lake 到 Coffee Lake(2016–2018)——增加了 H.265、10 位和 4K 编码。
- Ice Lake 起(2019+)——Gen11/Gen12 的 Xe 核显让画质大幅提升。许多基准测试把 Gen12 QuickSync 排在 NVENC Turing 之后几个百分点以内。
- Arc 独立显卡(2022+)——Intel 的第一代独立显卡产品线。同样的 Xe-HPG 架构规模放大,带有 AV1 编码。Arc 是第一款推出硬件 AV1 的消费级 GPU——早于 NVIDIA Ada 和 AMD RDNA3 上市——而且画质出人意料地出色。就每美元的纯 AV1 吞吐量而言,Intel Arc A380 依然是一桩荒唐的划算买卖。
热设计是 QuickSync 安静的超能力。因为它就在 SoC 上已有的核显里,使用它的边际成本只是编码模块本身——不用唤醒独立显卡,不用启动 GDDR6 内存控制器。在 ThinkPad 或 NUC 上,QuickSync 能以大约四分之一的整机功耗,提供与 NVENC 相当的画质。对于 Remio 的 Windows 主机,QuickSync 是继 NVENC 和 AMF 之后的第三选择后备——不是因为它更差,而是因为有独立显卡的用户通常想把核显留给其他工作负载。
VideoToolbox——Apple 芯片的统一媒体引擎
Apple 不像 NVIDIA 那样,为自己的硬件编码器打一个品牌名。API 是 VideoToolbox;硅片是媒体引擎,一个 Apple 自己设计的模块,存在于每一台 M 系列 Mac,以及每一颗自 A6 以来的 iPhone/iPad SoC 中。
媒体引擎的数量,根据型号而不同:
- M1、M2、M3——一个媒体引擎。
- M1 Pro/Max、M2 Pro/Max、M3 Pro/Max——两个媒体引擎。
- M1 Ultra、M2 Ultra——四个媒体引擎(每个融合的裸片两个)。
- M3 Max(16 核 CPU)——两个媒体引擎。
- M4 系列——更新的媒体引擎,H.265 吞吐量有所提升。
每个媒体引擎都能用硬件处理 H.264、H.265 和 ProRes 的编码/解码。ProRes 编码是视频剪辑师最看重的功能——没有其他消费级芯片提供它——但对于串流来说,相关的能力是高效的 H.265 main10 编码,以及低得惊人的编码延迟。
一个值得注意的缺口:目前出货的任何 Apple 芯片都没有 AV1 编码。M 系列芯片自 M3 起能解码 AV1,但无法编码。在可预见的未来,从 Mac 上串流,H.265 是实际的默认选择。
Apple 真正胜出的地方是能效。在 M2 Pro 上以 30 Mbps 编码 4K60 H.265,整个媒体引擎的功耗大约是 3 到 5 瓦。在 RTX 4070 上,同等的 NVENC 工作负载,整机功耗接近 35 瓦——其中大部分是独立显卡的待机底耗,而不是编码模块本身。对于 24 小时开机、等待客户端连接的 Mac mini 主机,这就是“电费上几乎看不出来”和“明显感觉得到”之间的区别。
并排对比
这是四个引擎在同样维度上的对比。延迟数字取自 1080p60 H.265 的超低延迟预设、禁用 B 帧、单帧 VBV——也就是 Remio 的配置。画质是 8 Mbps CBR 下的感知粗排名;绝对差异很小。
| 维度 | NVENC(Ada) | AMF(RDNA3) | QuickSync(Arc / Gen12+) | VideoToolbox(M3+) |
|---|---|---|---|---|
| H.264 | 是 | 是 | 是 | 是 |
| H.265(HEVC) | 是 | 是 | 是 | 是(main10) |
| AV1 编码 | 是 | 是 | 是 | 否 |
| ProRes 编码 | 否 | 否 | 否 | 是 |
| 最高分辨率 | 8K H.265 | 8K H.265 | 8K(Arc),4K(核显) | 8K H.265 |
| 1080p H.265 下的最高 FPS | ~480 | ~360 | ~360 | 约 600(M3 Max) |
| 编码时间,1080p60 H.265 | 1–3 ms | 2–4 ms | 2–4 ms | 2–3 ms |
| 功耗,4K60 H.265 | 整机约 35 W | 整机约 30 W | 整机约 8 W(核显) | 约 5 W |
| 8 Mbps CBR 下的画质排名 | 并列第一 | 并列第二 | 并列第二 | 并列第一 |
| 平台 | Windows、Linux | Windows、Linux | Windows、Linux、macOS(Intel Mac) | macOS、iOS、iPadOS、tvOS |
| 并发会话 | 不限 | 不限 | 不限 | 不限 |
诚实的总结:在远程桌面串流实际使用的设置下(CBR、低延迟、没有 B 帧),四者都有相当充裕的余量,足够好。真正的差异在于 AV1 支持(NVIDIA / AMD / Intel——没有 Apple)、能效(Apple,其次是 Intel 核显,然后是其他所有人),以及平台可用性(你没法在 Windows 主机上选 VideoToolbox,也没法在 Mac 上选 NVENC)。
Remio 在运行时选哪一个
Remio 在启动时探测主机的能力,并按确定的优先级选择编码器。Windows 主机和 Mac 主机遵循同一套选择逻辑。
在 Windows 主机上:
- NVENC(
hevc_nvenc/h264_nvenc)——存在 NVIDIA GPU 且驱动有响应时,第一个选它。之所以优先,是因为它在最广泛的硬件世代范围内,延迟始终最稳定地低。 - AMF(
hevc_amf/h264_amf)——存在带 VCN 的 AMD 独立显卡或 APU 时,第二个选它。配置为usage=ultralowlatency、quality=speed、rc=cbr。 - QuickSync(
hevc_qsv/h264_qsv)——存在 Intel 核显时,第三个选它。在我们的管线中功能上等价;如果有独立显卡可用,我们更倾向于把核显留空。 - libx264 CPU 后备——只有在没有任何硬件编码器响应时才选它。为了留在延迟预算之内,上限是 720p60 或 1080p30。
在 Apple 主机上:VideoToolbox 是唯一的选择,也是我们唯一想要的。每一台受支持的 Mac(macOS 15+)里的媒体引擎,开箱即支持 H.265 main10。不需要后备路径。
编解码器的偏好是:先用硬件 H.265,H.264 作为通用后备——端到端,每个平台都是如此。Remio 目前不使用 AV1(对它的主机编码、客户端解码和编解码器协商都不在管线里);即使在技术上能做 AV1 的硬件上,它也坚持用 H.265,因为在局域网上,瓶颈是编码延迟,而不是码率。
画质与延迟的取舍
每个硬件编码器都暴露同样的几个旋钮,每个旋钮都朝着同一个方向,用画质换延迟。Remio 的配置处在延迟拨盘最激进的一端,因为远程桌面从定义上讲就是实时应用,在这里,一帧晚了 20 ms 以上,比一帧略比理想状态模糊,更糟糕。
- CBR vs VBR。可变码率通过把比特花在有用的地方,在相同平均码率下产出更好的画质。但 VBR 也会产生不可预测的每帧大小,这意味着不可预测的发送队列,进而意味着不可预测的延迟。Remio 在所有地方都用 CBR。画质上的代价很小;延迟的一致性却收益巨大。
- B 帧。B 帧同时参考过去和未来的帧,所以解码器必须等未来的那一帧到达,才能解码 B 帧。这对点播视频没问题,对实时却是致命的。Remio 在每个平台的每种编解码器上都禁用 B 帧。
- GOP / 关键帧间隔。更长的 GOP(关键帧之间的帧更多)压缩得更好。更短的 GOP 在丢包后恢复得更快。Remio 运行的是实际上无限长的 GOP,并在解码器报告丢包时,向主机请求一个新的关键帧。丢失的数据包如果还来得及就立即重发;如果来不及,Remio 会跳过它并请求一帧新的画面,而不是等待。这与我们只渲染最新帧的串流理念一致。
- 前瞻。NVENC、AMF 和 QuickSync 都支持用于自适应量化的多帧前瞻。每一帧前瞻,都会增加整整一帧的延迟。Remio 运行零帧或单帧前瞻——每个编码器的最低设置。
- VBV 缓冲。视频缓冲验证器的窗口,决定了编码器在回到目标码率之前,被允许“向前借”多少比特。更大的 VBV 给出更平滑的画质。更小的 VBV 给出更紧的码率控制和更低的延迟。Remio 使用1 帧的 VBV——码率除以帧率——这是合法的最小值。
这个模式在四家厂商之间是一致的。实时低延迟是一种受约束的优化:你放弃离线编码中前瞻和 B 帧能买到的那几个百分点的画质,换取实时交互所要求的可预测延迟。每一款出货的串流产品——Remio、Parsec、NVIDIA GeForce NOW、Xbox Cloud Gaming——都在朝同一个方向做着同样的取舍。
你(用户)真正需要关心什么
如果你直接跳到了末尾:任何现代 GPU 的硬件编码器,对远程桌面来说都够好了。
在实时配置下,差异小于任何合理基准测试的噪声底。使用 Pascal 的 GTX 1060 的用户,和使用 RTX 4090 的用户,得到的 Remio 体验是一样的——两者都能以约 8 ms 的处理延迟(其余部分是你显示器自身 60 Hz 的刷新节奏)跑满 120 FPS 管线,在局域网码率下,两者产出的画面也无法区分。
例外情况,按出现的频繁程度排序:
- 支持 AV1 的硬件,通常对慢速网络有帮助。在酒店 Wi-Fi 或手机热点上,主机用 Ada / RDNA3 / Arc,客户端用 M3+ 或 RTX 40 系列,在使用它的工具上,相同画质下能买到大约 25% 的额外余量。在局域网上则没有任何差别。Remio 目前还不运行 AV1——端到端 H.265 就是整条管线——所以今天这是厂商的优势,而不是 Remio 的。
- Apple 芯片 Mac 是出色得惊人的主机。媒体引擎的低延迟、出色的 H.265 和 3–5 W 的功耗,使 Mac mini 或 Mac Studio 成为你能买到的最佳常开串流源之一。没有 AV1 编码是唯一的缺口,在局域网上无关紧要。
- Intel Arc A380 在 AV1 上便宜得不讲道理。大约 120 美元,就买到了一个胜过 400 美元以下任何其他产品的编码模块。
- libx264 的 CPU 后备是真实存在的。没有硬件编码器——老笔记本、没有核显的服务器——Remio 照样能工作。只是不能 4K 60,也不能不占用一个 CPU 核心。
除了这些边缘情况,正确的答案最简单:用你本来就会买的那块 GPU。每家现代厂商都已收敛到同样的能力、同样的低延迟预设、同样的画质范围。Remio 会在运行时替你选对,所以你不用去想它。去做你打开远程桌面会话本来要做的事吧——写代码、剪视频、修服务器,或者在咖啡馆里推送一个修复。
这就是固定功能硅片的全部意义。它就是管用,然后你就不再注意到它。