You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用videoshow+ffmpeg制作幻灯片视频报错:ffmpeg exited with code 1

解决videoshow + ffmpeg 报错 "Error: ffmpeg exited with code 1" 的方案

我之前踩过这个坑!ffmpeg返回exit code 1其实是个非常宽泛的错误提示,本质是ffmpeg在执行转码/合成操作时遇到了具体的输入、输出或配置问题。咱们一步步来排查解决:

1. 先把ffmpeg的路径给videoshoe配置好(最常见的原因)

你已经引入了@ffmpeg-installer/ffmpeg,但别忘了主动告诉videoshow用这个安装好的ffmpeg可执行文件路径!默认情况下videoshow可能找不到正确的ffmpeg,或者调用了系统里的旧版本。修改你的代码,加上关键的路径配置:

var videoshow = require('videoshow')
const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
videoshow.setFfmpegPath(ffmpegPath); // 这行一定要加!

var images = [ 'image1.jpg', 'image1.jpg', 'image1.jpg' ]
var videoOptions = { 
  fps: 25, 
  loop: 5, // 每张图片停留秒数
  transition: true, 
  transitionDuration: 0.5, // 过渡动画时长(可选,默认0.5秒)
  format: 'mp4',
  codec: 'libx264' // 指定编码器,避免系统默认编码兼容问题
}

videoshow(images, videoOptions)
  // 如果要加背景音频,确保文件存在且路径正确
  .audio('background.mp3')
  .save('output.mp4')
  .on('start', (command) => {
    console.log('执行的ffmpeg命令:', command); // 打印完整命令,方便排查细节
  })
  .on('error', (err, stdout, stderr) => {
    console.error('错误信息:', err);
    console.error('ffmpeg详细错误日志:', stderr); // 重点看这里!能找到具体失败原因
  })
  .on('end', (output) => {
    console.log('视频生成完成:', output);
  });

2. 检查图片文件的有效性

  • 确保image1.jpg确实在脚本的执行目录下,或者用绝对路径(比如path.join(__dirname, 'image1.jpg')),避免相对路径导致的文件找不到问题。
  • 确认图片格式是ffmpeg支持的(比如JPG、PNG),尽量不要用WebP这类需要额外编码库的格式,如果必须用,得确保你的ffmpeg版本包含对应的编码组件。

3. 查看ffmpeg的stderr日志定位具体问题

上面代码里的stderr输出是关键!exit code 1只是告诉你失败了,但stderr里会有具体的错误描述:

  • 如果提示No such file or directory:要么是图片/音频文件找不到,要么是输出目录没有写入权限。
  • 如果提示Invalid encoder:说明你指定的编码器不存在,换用libx264这类通用编码器试试。
  • 如果提示Permission denied:给输出目录添加写入权限,或者换个有权限的目录生成视频。

4. 验证ffmpeg本身是否正常

直接在命令行运行${ffmpegPath} -version(把ffmpegPath换成你代码里的实际路径),看看ffmpeg能不能正常启动,有没有报错。如果ffmpeg本身无法运行,那videoshow肯定没法工作。

内容的提问来源于stack exchange,提问作者jibran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:35:38