视频到音频文件转换&通过节点js中的FFMPEG保存

时间:2015-06-15 09:59:43

标签: javascript node.js audio video ffmpeg

我正在研究节点js上的FFMPEG。我想使用节点js从视频文件中检索音轨。我也想保存这样的文件,但我无法弄清楚如何。

我虽然这行代码可以帮助我:

ffmpeg('/path/to/file.avi').noVideo();

我在npm包中有这个。我不太明白如何使用它以及如何实际保存音频文件。

其他一些代码:

try {
    var process = new ffmpeg('/path/to/your_movie.avi');
    process.then(function (video) {
        // Callback mode
        video.fnExtractSoundToMP3('/path/to/your_audio_file.mp3', function (error, file) {
            if (!error)
                console.log('Audio file: ' + file);
        });
    }, function (err) {
        console.log('Error: ' + err);
    });
} catch (e) {
    console.log(e.code);
    console.log(e.msg);
}

我的问题是:

如何从FFMPEG视频中检索音频?如何保存?

1 个答案:

答案 0 :(得分:5)

我会这样做:

spiral( 20, 90, 0.9 )

确保var ffmpeg = require('fluent-ffmpeg'); /** * input - string, path of input file * output - string, path of output file * callback - function, node-style callback fn (error, result) */ function convert(input, output, callback) { ffmpeg(input) .output(output) .on('end', function() { console.log('conversion ended'); callback(null); }).on('error', function(err){ console.log('error: ', e.code, e.msg); callback(err); }).run(); } convert('./df.mp4', './output.mp3', function(err){ if(!err) { console.log('conversion complete'); //... } }); 已安装并且是系统路径的一部分,同时确保所有必需的代码都存在。

<强>更新

对于没有音频的视频,只需执行ffmpeg

.noAudio().videoCodec('copy')

更新2:

用于将视频和音频合并为单个:

function copyWitoutAudio(input, output, callback) {
    ffmpeg(input)
        .output(output)
        .noAudio().videoCodec('copy')
        .on('end', function() {                    
            console.log('conversion ended');
            callback(null);
        }).on('error', function(err){
            console.log('error: ', err);
            callback(err);
        }).run();
}