使用videoshow NPM库调用ffmpeg生成视频报exit code 1错误如何解决?
问题定位与解决方案
这个报错本质是ffmpeg处理输入图片时,图片参数和你配置的视频参数不兼容,导致滤镜链初始化失败,按以下步骤排查即可:
1. 优先检查输入图片参数匹配度
- 确认你用到的
abc.jpg、xy.jpg的分辨率、色彩空间一致,不要出现一张是4:3比例、一张是16:9,或者一张带透明通道、一张是普通RGB格式的情况,libx264编码默认不支持透明通道,带透明通道的图片会直接触发这个报错。 - 如果图片分辨率不一致,你可以先把所有图片预处理成你配置的
640x640尺寸,或者在videoOptions里加autopad: true参数,让videoshow自动给尺寸不对的图片加黑边填充。
2. 修正路径配置问题
你当前用的是根路径写法/InputImages/和/outputImages/,Windows系统下这种写法会找不到对应文件,建议改成相对路径或者完整绝对路径:
// 假设InputImages和outputImages都在项目根目录,就用以下相对路径写法 let path1= './InputImages/abc.jpg'; let path2 = './InputImages/xy.jpg' var finalVideoPath = './outputImages/newvideo2.mp4'
同时提前确认对应文件夹已经创建,没有读写权限限制。
3. 调整videoshow配置参数
你当前的配置可以调整几个兼容项避免参数冲突:
var videoOptions = { fps: 24, transition: false, videoBitrate: 1024, videoCodec: 'libx264', size: '640x640', autopad: true, // 新增:自动填充不匹配尺寸的图片 pixelFormat: 'yuv420p', // 替换原来的outputOptions配置,兼容性更好 format: 'mp4' }
4. 确认ffmpeg版本兼容性
部分新版ffmpeg的滤镜参数和旧版videoshow依赖的fluent-ffmpeg不兼容,建议你安装ffmpeg 4.x版本,不要用最新的5.x/6.x版本,安装后确认ffmpeg已经加入系统环境变量,命令行运行ffmpeg -version能正常输出版本信息即可。
内容的提问来源于stack exchange,提问作者Ejaz khan
相关产品推荐
相关产品推荐

