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

使用fluent-ffmpeg生成视频报错:至少需指定一个输出文件

解决fluent-ffmpeg生成视频时"At least one output file must be specified"错误

问题原因

你遇到的错误根源是inputOption(["-f concat"])的参数写法错误:fluent-ffmpeg会将数组内的每个元素作为独立的命令行参数传递,而"-f concat"作为单个元素会被ffmpeg识别为一个无效选项(而非-f搭配参数concat),导致输入格式未被正确解析,进而触发输出文件未指定的错误。虽然打印出的命令看起来正常,但实际fluent-ffmpeg传递给ffmpeg的参数格式是错误的。

修复方案

有两种可行的修改方式:

方式1:拆分inputOption的参数

将-f和concat拆分为数组的两个独立元素:

const ffmpeg = require('fluent-ffmpeg');

ffmpeg().input('input.txt')
.inputOption(["-f", "concat"]) // 拆分选项与参数
.outputOptions("-c:v libx264 -r 30 -pix_fmt yuv420p")
.output('output.mp4')
.on('start', (commandLine) => {
  console.log(`FFmpeg command: ${commandLine}`);
})
.on('end', () => {
  console.log('completed');
}).on('error', (err) => {
  console.error('error occurred: ' + err.message);
}).run();

方式2:直接在input中指定格式

更简洁的写法是将输入格式作为input方法的第二个参数:

const ffmpeg = require('fluent-ffmpeg');

ffmpeg().input('input.txt', { f: 'concat' }) // 直接指定输入格式
.outputOptions("-c:v libx264 -r 30 -pix_fmt yuv420p")
.output('output.mp4')
.on('start', (commandLine) => {
  console.log(`FFmpeg command: ${commandLine}`);
})
.on('end', () => {
  console.log('completed');
}).on('error', (err) => {
  console.error('error occurred: ' + err.message);
}).run();

验证说明

修改后,fluent-ffmpeg会正确传递-f concat作为两个独立的命令行参数,ffmpeg能正常解析concat输入文件,生成指定的输出视频。

内容的提问来源于stack exchange,提问作者김동환

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:57:44