FFmpeg h264_nvenc报错:无法获取预设配置(无效版本15)求助
解决FFmpeg h264_nvenc "Cannot get the preset configuration: invalid version (15)" 错误
这个报错我之前处理过好几次,核心原因是你的FFmpeg版本、NV Headers、CUDA Toolkit和NVIDIA驱动之间存在兼容性不匹配——尤其是旧版FFmpeg无法识别新版NV Headers里的预设版本编号。下面是针对性的解决步骤:
1. 先确认驱动与CUDA的兼容性
首先得保证你的NVIDIA驱动版本能支撑当前使用的CUDA版本:
- 打开终端执行
nvidia-smi查看当前驱动版本号 - 对照NVIDIA的CUDA-驱动对应要求(比如CUDA 11.x需要驱动≥450.80.02,CUDA 12.x需要≥525.60.13),如果驱动版本太低,直接升级到对应CUDA要求的稳定版驱动
2. 匹配FFmpeg与NV Headers的版本
你的FFmpeg是2018年的开发版本(N-90807-g00099ef0d0),但用了最新的NV Headers,这就会出现「新头文件的预设定义旧FFmpeg不认识」的问题:
- 要么降级NV Headers到和你FFmpeg版本同期的稳定版(比如找2018年底发布的NV Headers版本)
- 要么升级FFmpeg到最新稳定版,新版FFmpeg已经适配了更新的NV Headers和CUDA特性,兼容性会好很多
3. 调整FFmpeg编译参数
如果不想动版本,可以尝试在编译时明确指定兼容的NV Headers路径:
./configure --enable-libnpp --enable-cuda --enable-cuvid --enable-nvenc \ --extra-cflags=-I/usr/local/cuda/include \ --extra-ldflags=-L/usr/local/cuda/lib64 \ --enable-gpl --enable-libx264 --disable-x86asm \ --enable-nvenc-sdk-path=/path/to/compatible/nv-headers
确保--enable-nvenc-sdk-path指向的是和你FFmpeg版本匹配的NV Headers目录,而不是最新的那个
4. 用基础命令排除参数问题
先排除是你编码命令里的预设参数导致的问题,用最基础的NVENC命令测试:
ffmpeg -i input.mp4 -c:v h264_nvenc -preset fast output.mp4
如果这个命令能正常运行,那说明你原来的命令里用了旧FFmpeg不支持的预设名称(比如某些新版才有的preset),换成fast/medium这类通用预设即可
内容的提问来源于stack exchange,提问作者Netheme
相关产品推荐
相关产品推荐

