← 部落格

一錄影 FPS 就下降,真正的原因是編碼器 (從 x264 換成 NVENC 5 分鐘搞定)

錄影中 FPS 下降的遊戲畫面與編碼器設定
Photo · Pexels
重點摘要
  • 錄影時 FPS 下降的第一順位原因,是與遊戲共用同一顆 CPU 的 x264 編碼器。
  • 改成 NVENC (NVIDIA) 或 AMD HW 編碼器,編碼負載就會轉移到 GPU 專用晶片。
  • 實測上 x264 veryfast 約砍 17%、平均 20~30 幀,但 NVENC 只有個位數損失。
  • DOR 預設就是 NVENC 硬體編碼,不必親手動編碼器就能低負載錄影。

先說結論。如果一開錄影幀數就一頓一頓地掉,並不是因為電腦規格不足。原因大多是影片編碼器的種類。預設選定的 x264 (軟體) 編碼器,是借用遊戲正在用的那顆 CPU 來壓縮影片,所以遊戲與錄影會爭奪相同資源。換成 GPU 專用編碼器 NVENC 後,這場爭奪就消失,幀數幾乎能原樣救回。

用實際數值來看差異就很明顯。用 x264 veryfast 預設集錄影時,遊戲幀數約被砍 17%,在 144 幀環境下等於平均飛掉 20~30 幀。相對地,NVENC 因為由 GPU 內的獨立晶片處理編碼,在相同條件下損失只有個位數。只要照下面的順序做即可。

第一順位:把編碼器從 x264 換成 NVENC

這是最先、也是效果最大的工作。以 OBS 為基準,把設定 > 輸出 > 輸出模式改為進階後,確認錄影分頁的編碼器項目。如果這裡是 x264 (軟體),這就是吃掉幀數的元兇。

  • NVIDIA 顯示卡 (GTX 16xx、RTX 前世代):選 NVENC H.264 或 NVENC HEVC
  • AMD 顯示卡 (RX 系列):選 AMD HW H.264 (AVC)
  • Intel 內顯 (Iris Xe 以上):選 QuickSync H.264

光是把編碼器換成 NVENC,原本由 CPU 處理的壓縮運算就整個轉移到 GPU 專用編碼晶片。這顆晶片與繪製遊戲的 CUDA 核心在物理上是分離的,所以即使開錄影,對遊戲渲染幾乎沒有影響。在特戰英豪或英雄聯盟這類對幀數敏感度高的比賽中,體感差異最大。

在 OBS Studio 輸出設定中把編碼器從 x264 換成 NVENC 的畫面
OBS Studio · Wikimedia Commons (GPL, OBS Project)
如果清單中看不到 NVENC,多半是顯示卡驅動程式太舊。把 NVIDIA GeForce Experience 或驅動程式更新到最新後重啟 OBS,編碼器清單中就會出現。

第二順位:無法用 NVENC 時,調降 x264 預設集與解析度·FPS

如果沒有獨立顯示卡、不得不用 x264,就往減輕 CPU 負擔的方向調整。在設定 > 輸出 > x264 設定中,把 CPU 使用預設集從預設的 veryfast 往下調一級到 superfast 或 ultrafast。預設集越快用的 CPU 越少,但要維持相同畫質就得把位元率再調高一些。

如果還是吃力,就降低錄影本身的負載。減少編碼器要處理的像素數與幀數是關鍵。

  • 解析度:在設定 > 視訊 > 把輸出 (調整後) 解析度從 1920x1080 降到 1280x720,編碼負載就會減到一半以下。
  • 幀率:把共通 FPS 值從 60 降到 30,每秒要處理的幀數就少一半。
  • 遊戲幀數限制:在遊戲內把幀數鎖在 60 或 120,GPU 就有餘裕,編碼也更穩定。

依原因看的快速診斷

依症狀整理了該先動哪裡。先用工作管理員確認是否跳出 OBS 的編碼過載警告、是否只有 CPU 飆高、GPU 是否 100%,再看對應的那一行。

  • 一開錄影幀數暴跌 + CPU 使用率急增 → 正在用 x264。切換成 NVENC (第一順位)
  • 編碼過載警告經常跳出 → 把預設集設為 ultrafast、降解析度·FPS (第二順位)
  • GPU 已經塞到 99~100% → 把遊戲圖形選項調低一級,確保編碼用的餘裕
  • 幀數正常但只有錄影檔卡頓 → 儲存磁碟太慢的情況,把儲存路徑改到 SSD
  • 只在 PUBG·絕地求生這類沉重遊戲掉幀 → 遊戲幀數限制 + NVENC 並用

x264 與 NVENC,差別在哪

了解兩種編碼器的差異,就會明白為什麼 NVENC 是答案。過去曾有 x264 畫質較好的認知,但圖靈世代之後的 NVENC 能呈現 x264 medium 預設集等級的畫質,同時幾乎不動到遊戲幀數。在動作激烈的場景中,甚至有 NVENC 這邊殘影較少的評價。

  • x264:用 CPU 壓縮 → 與遊戲爭奪資源 → veryfast 基準約 17%、平均 20~30 幀損失
  • NVENC:用 GPU 專用晶片壓縮 → 與遊戲渲染分離 → 個位數幀數損失
  • 畫質:最新 NVENC 達 x264 medium 水準,在高畫質動作場景中表現強
  • 設定難度:x264 需手動微調預設集·位元率,NVENC 實際上用預設值就夠

如果覺得設定麻煩:DOR 預設就是 NVENC

讀到這裡你應該感受到了,OBS 得自己找出編碼器去更換、再用手調整預設集與位元率。一旦設錯,就會在每次錄影都漏掉幀數的情況下渾然不覺地遊玩。DOR 乾脆把這整個過程拿掉了。NVENC 硬體編碼從一開始就設為預設值,所以裝好開啟就不必另外設定,會以低負載錄影。

DOR 不影響遊戲幀數、以低負載錄影的模樣
DOR 預設使用 NVENC 硬體編碼,對遊戲幀數的影響很小

多虧如此,即使在特戰英豪或鬥陣特攻這類一幀就分勝負的遊戲中,也能常開錄影遊玩。出現精彩畫面時再剪下儲存就好,不必花時間與編碼器設定纏鬥。如果想不擔心 FPS 下降、先把錄影開起來,DOR 是最快的路。

整理一下,錄影時 FPS 下降的順序很單純。把編碼器換成 NVENC,不行的話就降預設集與解析度·FPS,再嫌麻煩的話就用 NVENC 是預設的工具。在怪罪規格之前,先確認編碼器吧。大多到那裡就結束了。

FAQ

常見問題

一錄影 FPS 就下降,最大的原因是什麼?

使用 CPU 的 x264 軟體編碼器是元兇。它借用與遊戲相同的 CPU 來壓縮影片,因此發生資源爭奪而砍掉幀數。換成 GPU 專用編碼器 NVENC,大多就能救回。

換成 NVENC 實際上能救回多少幀數?

x264 veryfast 約砍 17%、以 144 幀為基準平均砍 20~30 幀。NVENC 由 GPU 內的獨立晶片處理編碼、與遊戲渲染分離,所以在相同條件下損失只有個位數。

沒有顯示卡的話該怎麼辦?

沒有獨立顯示卡就得用 x264。此時把 CPU 使用預設集從 veryfast 降到 ultrafast,並把解析度降到 720p、FPS 降到 30,減輕編碼負載。如果是 Intel 最新內顯,也可以試試 QuickSync 編碼器。

NVENC 畫質不會比 x264 差嗎?

圖靈世代之後的最新 NVENC 能呈現 x264 medium 預設集等級的畫質。在動作快速的場景中甚至有殘影較少的評價,所以在遊戲錄影上,NVENC 在畫質與效能上都更有利。

DOR 為什麼不用另外設定編碼器?

DOR 從一開始就把 NVENC 硬體編碼設為預設值。不必像 OBS 那樣自己找出編碼器去更換、調整預設集,安裝後一開啟就會以低負載錄影,對遊戲幀數的影響很小。

Games

錄製這些遊戲

繼續閱讀

相關文章

立即開始使用 DOR

安裝後只要啟動遊戲,精彩瞬間就會自動累積成剪輯