FFmpeg hevc_nvenc编码器B帧问题求助:GTX1060禁用B帧无效
解决GTX1060使用新版FFmpeg hevc_nvenc编码HEVC的B帧参考报错问题
核心原因
GTX1060(GP106,Pascal架构)的NVENC硬件编码器不支持HEVC编码时将B帧作为参考帧,而新版FFmpeg的hevc_nvenc默认启用了部分会触发B帧参考的参数,仅用-bf 0无法完全禁用相关逻辑。
可行解决办法
方法1:强制禁用B帧及自适应B帧逻辑
在编码命令中同时添加以下参数,彻底关闭所有涉及B帧的设置:
ffmpeg -i [输入文件] -c:v hevc_nvenc -bf 0 -no-b-adapt -preset medium [输出文件]
-bf 0:直接禁用B帧生成-no-b-adapt:关闭自适应B帧决策(新版FFmpeg默认可能开启)-preset medium:使用中等预设,避免高预设自动启用不兼容的参考帧逻辑
方法2:限制参考帧数量并关闭速率控制前瞻
如果方法1仍报错,添加-refs 3和-rc-lookahead 0参数,适配Pascal架构GPU的硬件限制:
ffmpeg -i [输入文件] -c:v hevc_nvenc -bf 0 -no-b-adapt -refs 3 -rc-lookahead 0 [输出文件]
-refs 3:Pascal架构HEVC NVENC支持的最大参考帧数量(仅I/P帧,无B帧)-rc-lookahead 0:关闭速率控制的前瞻窗口,避免触发B帧参考逻辑
方法3:使用低延迟预设
直接调用专为低延迟场景设计的预设,这类预设默认不使用B帧参考:
ffmpeg -i [输入文件] -c:v hevc_nvenc -preset ll-fast [输出文件]
ll-fast和ll-medium等低延迟预设天然适配不支持B帧参考的硬件编码器。
验证方法
执行编码命令后,若不再出现[hevc_nvenc @ ...] B frames as references are not supported报错,且输出视频能正常播放,则说明解决生效。
内容的提问来源于stack exchange,提问作者ramondq
相关产品推荐
相关产品推荐

