fluent-ffmpeg:如何将立体声mp3拆分为node.js中的2个单声道文件?

时间:2018-01-22 14:29:10

标签: javascript node.js audio fluent-ffmpeg

我正在尝试将mp3文件立体声转换为2个mp3单声道节点的 fluent-ffmpeg 模块。这是终端的例子:

ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav

我需要在 fluent-ffmpeg 中实现此功能。

2 个答案:

答案 0 :(得分:0)

不确定单声道,但是如果要分割文件,可以使用

ffmpeg(local_dir).outputOptions('-f segment')
        .outputOptions(`-segment_time ${length of each mp3 }`).save(`${save_dir}out%03d.mp3`)

希望它可以为您提供帮助

答案 1 :(得分:0)

问了已经有很长时间了,但也许对其他人有帮助。

我发现解决同一问题的方法是打开文件两次,并将每个通道分开保存。

const splitChannels = (file, leftChannelName, rightChannelName) =>{

    ffmpeg(file)
        .outputOption('-map_channel 0.0.0')
        .save(leftChannelName)
        .on('error', (err) => {
            console.log(`An error occurred: ${err.message}`);
        })
        .on('end', () => {
            console.log('Left channel splitted!');
        })

    ffmpeg(pathToAudio)
        .outputOption('-map_channel 0.0.1')
        .save(rightChannelName)
        .on('error', (err) => {
            console.log(`An error occurred: ${err.message}`);
        })
        .on('end', () => {
            console.log('Right channel splitted!');
        })
}

splitChannels('./files/test.wav', 'left.wav', 'right.wav');

更多信息:https://trac.ffmpeg.org/wiki/AudioChannelManipulation

当然您也可以使用.wav或.mp3。

希望有帮助!