← 博客

录制时 CPU 占用飙升的原因与解决方法

录制中显示 CPU 占用很高的任务管理器画面
Photo · Pexels
核心摘要
  • 导致 CPU 占用飙升的元凶是 x264 CPU 编码器,因为视频压缩是由 CPU 直接计算的。
  • 把编码器换成 NVENC(NVIDIA)、AMF(AMD)、QSV(Intel)这类 GPU 编码器,CPU 负担基本就会消失。
  • 如果还不够,就降低分辨率和帧率,并给录制程序较高的优先级以减少卡顿。
  • DOR 默认采用 GPU(NVENC)编码,所以无需额外设置也能保持较低的 CPU 占用。

先说结论,录制时 CPU 占用飙升到 90~100% 的最常见原因,是一个叫 x264 的 CPU 编码器。因为视频压缩的计算不是由显卡而是由 CPU 直接承担,游戏运算和视频编码在同一个 CPU 上竞争,占用就会暴涨。解决的关键就是把这项编码工作转移到 GPU(NVENC)上。

录制时为什么 CPU 占用会上升

录制画面,意味着每一刻都要把捕获到的画面压缩(编码)成视频文件大小。CPU 编码器 x264 由 CPU 直接计算这种压缩,而 GPU 编码器 NVENC 则由显卡内部另外配备的专用电路来处理。x264 画质强,但代价是占用大量 CPU,在 1080p 60 帧这种较重的设置下,占用会顶到 100%,导致游戏帧数下降或视频出现丢帧。在像无畏契约绝地求生这种讲究瞬间反应的游戏里,这种卡顿会立刻被感受到。

打开任务管理器,如果录制中 CPU 这一项持续停留在 90% 以上,那么编码器设置很可能被设成了 CPU(x264)。这是最先要检查的地方。
在 OBS Studio 的输出设置里选择编码器项的画面
OBS Studio · Wikimedia Commons (GPL, OBS Project)

第一步:把编码器换成 GPU(NVENC)

最能大幅降低 CPU 占用的方法,就是把编码交给 GPU。NVENC 在显卡内部的专用编码电路里运行,所以即便游戏正大量使用 GPU,也不会对编码性能造成太大影响。它几乎不动用 CPU,就能获得与 x264 快速预设相近的画质。以 OBS Studio 为准,更换编码器的步骤如下。

  • 在 OBS 顶部菜单中打开设置。
  • 在左侧标签里选择输出,把输出模式改为高级。
  • 切换到录制标签。
  • 把编码器项改为 NVIDIA NVENC H.264。如果是 AMD 显卡就选 AMD AMF,Intel 核显则选 Intel QSV。
  • 更改后点击应用,并做一段简短的试录,再次确认 CPU 占用。
如果编码器列表里看不到 NVENC,请把显卡驱动更新到最新版本。在老驱动或不支持 NVENC 的显卡上,这一项可能不会出现。

第二步:微调 NVENC 细节选项

换成 NVENC 之后如果游戏帧数仍有轻微抖动,调整一下细节选项会更稳定。部分高级选项会借用显卡的运算核心(CUDA),可能影响游戏性能,所以按下面这样调整,游戏和录制就能一起变得流畅。

  • 预设(Preset)以 Quality 为基准开始。
  • 把预读(Look-ahead)关闭。
  • 把心理视觉调优(Psycho Visual Tuning)也关闭。
  • 关闭这两个选项后,GPU 核心的使用会减少,游戏和录制会一起更流畅地运行。

第三步:用分辨率、帧率、优先级收尾

即使转到 GPU 编码后余量仍然吃紧,或者所处环境无法使用 GPU 编码器,就一并调整输出设置和进程优先级。编码负担与画面像素数成正比,所以仅仅把分辨率和帧率降一档,效果就很明显。请从上到下依次尝试下面这些项。

  • 把录制分辨率从 1080p 降一档到 900p 或 720p。
  • 把帧率从 60 调到 30~45。对一般的游戏画面来说往往已经足够。
  • 如果必须继续用 x264,就把预设改为 veryfast 或 superfast,以减少 CPU 占用时间。
  • 在任务管理器的详细信息标签里,把录制可执行文件(如 obs64.exe)的优先级设为高于正常。在 OBS 的设置 > 高级 > 进程优先级里也能得到同样的效果。
  • 把浏览器标签页、自动更新工具、杀毒软件实时扫描这类在后台占用 CPU 的程序,按占用率排序后从高到低逐一关闭。
优先级停在高于正常这一档是比较安全的。如果一直拉到实时,录制进程会把系统任务都挤掉,反而可能导致画面卡住。

DOR 默认采用 GPU 编码

DOR 从一开始就把 GPU(NVENC)编码设为默认值,所以即便不额外做上面那些编码器切换操作,也能保持较低的 CPU 占用。视频压缩交给显卡的专用电路,CPU 就能专注于游戏运算,因此即使开着录制游玩,帧数也不容易抖动。

DOR 以 GPU 编码进行录制的画面
DOR 默认采用 GPU 编码,所以 CPU 占用很低

尤其在像无畏契约绝地求生这种同时大量占用 CPU 和 GPU 的游戏里,如果连编码都让 CPU 承担,瞬间就会出现卡顿。DOR 把编码负担转移到了 GPU,所以即使在这种情况下也能稳定地持续录制。如果你想避开 CPU 占用问题又不想做复杂设置,使用从底层就为 GPU 编码而设计的工具是最省事的。

FAQ

常见问题

录制时 CPU 占用升到 100% 的原因是什么?

多数情况是因为你正在用 CPU 编码器 x264 录制。视频压缩计算由 CPU 直接处理,会与游戏运算争夺资源,导致占用飙到 100%。把编码器换成 NVENC 这类 GPU 编码器,负担就会大幅降低。

换成 NVENC 画质会不会变差?

近来 NVENC 已经发展到可以用少得多的 CPU 获得与 x264 快速预设相近画质的程度。如果是一般的游戏录制用途,很难察觉画质差异,而 CPU 占用却会大幅下降。

如果没有显卡或看不到 NVENC 怎么办?

AMD 显卡可以用 AMF,Intel 核显可以用 QSV 编码器。如果列表里看不到这些项,请把显卡驱动更新到最新版本。如果根本没有 GPU 编码器,那退而求其次的办法就是降低分辨率和帧率,并把 x264 预设改为 superfast。

提高进程优先级真的能减少卡顿吗?

在 CPU 吃紧的情况下,给录制程序高于正常的优先级,能缓解因编码被挤压而产生的丢帧。不过如果一直拉到实时,系统任务会被挤掉,反而可能卡住,所以停在高于正常这一档是比较安全的。

DOR 不用额外设置 CPU 占用也低吗?

是的。DOR 被设计为默认使用 GPU(NVENC)编码,所以即便不亲自更换编码器,也能保持较低的 CPU 占用。视频压缩由显卡承担,CPU 专注于游戏,因此录制中帧数也很稳定。

Games

录制这些游戏

继续阅读

相关文章

立即开始使用 DOR

安装后只需启动游戏,精彩瞬间就会自动生成为剪辑