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

使用fluent-ffmpeg提取视频音频时遇报错求助

问题分析与解决

核心错误原因

你代码里的.audioChannels(0)是关键问题——设置0个音频通道意味着要输出无音频流的文件,但你指定的输出格式是MP3(纯音频格式),ffmpeg无法创建一个没有音频的MP3文件,这直接导致了"Invalid argument"错误。

修复步骤

  1. 移除.audioChannels(0)配置,让ffmpeg自动沿用原视频的音频通道数;
  2. 或者根据需求手动设置合理的通道数(比如单声道设为1,立体声设为2)。

修正后的代码

ffmpeg()
  .input(url)
  .format("mp3")
  .output("./src/videos/output-audio.mp3")
  .on("error", (err) => console.error(`Error converting file: ${err}`))
  .on("end", async () => {
    console.log("audio transcripts");
    
    const stream = fs.createReadStream("./src/videos/output-audio.mp3");
    const transcription = await openai.audio.transcriptions.create({
      file: stream,
      model: "whisper-1",
      response_format: "verbose_json",
      timestamp_granularities: ["word"],
    });
    transcripts = transcription.text;
    console.log(transcription.text);
  })
  .run();

额外排查点

如果修复后仍报错,可检查:

  • 确认./src/videos/目录确实存在且有写入权限(可临时用fs.accessSync("./src/videos/", fs.constants.W_OK)验证);
  • 检查ffmpeg版本,部分旧版本对某些音频编码兼容性较差,尝试升级到最新稳定版。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:20:11