如何用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
相关产品推荐
相关产品推荐

