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

如何用Node.js的fluent-ffmpeg分割音频为指定时长文件?

使用fluent-ffmpeg分割音频文件

你需要用Node.js的fluent-ffmpeg包将10分钟的MP3分割为10个1分钟的文件,已知原生ffmpeg命令:

ffmpeg -i file.wav -f segment -segment_time 60 -c copy parts/output%09d.wav

fluent-ffmpeg没有单独封装segment的专属方法,但可以通过outputOptions()直接传递原生ffmpeg的参数来实现。以下是修改后的完整代码:

return ffmpeg(audioFile)
    .toFormat('wav')
    .audioChannels(1)
    .audioFrequency(44100)
    .audioBitrate('128')
    // 添加segment相关的输出参数
    .outputOptions([
        '-f segment',
        '-segment_time 60',
        '-c copy'
    ])
    // 指定输出文件路径格式,对应原生命令里的parts/output%09d.wav
    .output('parts/output%09d.wav')
    .on('error', (err) => {
        console.error('分割出错:', err);
    })
    .on('progress', (progress) => {
        console.log('进度:', progress.percent + '%');
    })
    .on('end', () => {
        console.log('音频分割完成');
    })
    .run(); // 启动ffmpeg进程执行分割

关键说明:

  • outputOptions()用于传递fluent-ffmpeg未封装的原生ffmpeg参数,直接按数组形式传入原生命令参数即可
  • output()方法指定分割后的文件路径模板,%09d会自动生成带前导零的序号(如output000000001.wav)
  • 必须调用run()触发ffmpeg执行分割操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:10:01