先看看当前 ffmpeg 支持那些编解码器。

ffmpeg -codecs
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid) (encoders: libx264 libx264rgb h264_amf h264_mf h264_nvenc h264_qsv)
DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid) (encoders: libx265 hevc_amf hevc_mf hevc_nvenc hevc_qsv)

这个命令自动选择硬件解码器。用Nvdia显卡转为 H265, 分辨率不变,音频转换为 AAC 128Kbps,质量参数 31 。
ffmpeg -y -hwaccel auto -hwaccel_output_format auto -i "%%~f" -c:v hevc_nvenc -c:a aac -b:a 128k -cq 31

H264 转 H264 720P,编码和解码都用 Nvdia 独立显卡。音频编码 AAC 128Kbps, 质量参数 35。高度限制为720P。
ffmpeg -c:v h264_cuvid -i 源文件.mp4 -c:v h264_nvenc -filter:v scale=-1:720 -c:a aac -b:a 128k -cq 35 转码后.mp4

H264 转 H265,分辨率不变,编码和解码都用 Nvdia 独立显卡,音频编码 AAC 128Kbps,质量参数 31。
ffmpeg -c:v h264_cuvid -i 源文件.mp4 -c:v hevc_nvenc -c:a aac -b:a 128k -cq 31 转码后.mp4

可以看到 CPU 没怎么用,GPU 占满了。GTX 1650S 转码 1080P 的速度大约 380 fps。
ffmpeg-transcode-speed.avif
taskmgr.avif