使用 FFMPEG 进行 HEVC 编码导致 CPU 使用率超过 30%

大家好,

我注意到當我從 H264 轉碼到 H265 時,我的 GPU 使用率約 49–50%,而 CPU 則被 FFMPEG 程序吃掉約 30%。有誰能幫我解決 FFMPEG 佔用 CPU 的問題,讓我只用 GPU 硬體編碼 hevc_nvenc?或者至少告訴我這 CPU 使用率是怎麼回事。:smiley:

Screenshot 2021-04-23 235844

以下是我的設定檔:

[MKV HVEC - No Time Removed]
Description=WARNING: Handbrake Constant Quality encoding (18) with Nvidia HVEC.
order=ffmpeg, handbrake
AllowH264CopyRemuxing=true
FixedResolution=true
AutoDeinterlace=true
ffmpeg-UsingHardwareEncoding=True
ffmpeg-general=-threads 0
ffmpeg-video=-ss 0 -map_metadata -1 -c:v hevc_nvenc -cq 18 -rc vbr -map 0:v
ffmpeg-audio=-acodec ac3 -ab 256k -map 0:a
ffmpeg-audioac3=-acodec ac3 -ab 384k -map 0:a
ffmpeg-ext=.mp4
ffmpeg-audiodelay=skip
handbrake-UsingHardwareEncoding=true
handbrake-general=–decomb --denoise=“weak” --loose-anamorphic --verbose=2 -T -O
handbrake-video=–start-at duration:0 -e x265 -q 18
handbrake-audio=-E ffac3 -R auto -B 256 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E ffac3 -R auto -B 384 -D 0 -a 1,2,3,4,5
handbrake-ext=.mp4
handbrake-audiodelay=skip
PreConversionCommercialRemover=false

系統規格:

CPU: Intel i9-9900k @ 3.60 GHz (OC 4.9 GHZ all cores).
RAM: Corsair Vengeance LPX 16GB DDR4 3200MHZ.
MOBO: Gigabit Aorus Z390 Ultra.
GPU: EVGA GeForce GTX 1080 Ti FTW3 (11G-P4-6696-KR).

你还在将音频转换为AC3,这会消耗CPU。

愚蠢的問題——有沒有任何音訊轉碼引擎/演算法/編解碼器或選項會利用 GPU?
還是說這種事短期內根本不會發生?

據我所知,目前沒有任何音訊編解碼器在 GPU 上有硬體編碼或解碼支援。如果你不解壓縮音訊,就不會佔用 CPU——至少不會因為音訊的編解碼而佔用。

ffmpeg-audio=-acodec copy -map 0:a
ffmpeg-audioac3=-acodec copy -map 0:a

啊,我完全忽略了对话中的音频部分。那么,用你发送的那行代码,它会一比一地复制原始音频吗?

正确。如果你用我发给你的那几行替换掉原来的,它就会不做任何转换、1:1地复制源音频。

@SystemIdleProcess - 我已经做了修改,但 ffmpeg.exe 仍然占用超过 30% 的 CPU。请查看附件

你能附上轉換記錄嗎?我比較習慣用 Handbrake,所以不確定這是否正常,但記錄可能會有幫助。

你可以使用 Microsoft/SysInternals Process Explorer 查看 MCEBuddy 和 FFMPEG 进程中占用 CPU 的线程堆栈,从而进一步了解是什么在消耗 CPU。