无法在fluent-ffmpeg中使用ffprobe

我打算使用ffprobe函数来提取video信息,这里是我的代码:

var FFmpeg = require('fluent-ffmpeg'); //... var convert_using_ffmpeg = function (source, target) { var tempfile = path.join(config.tmproot, path.basename(target)); new FFmpeg({ source: source }) .withVideoCodec('libx264') .withVideoBitrate('512') .withAudioQuality(5) .withAudioCodec('libmp3lame') .withSize('360x288') //.ffprobe(function(err,data) { // console.dir(data); //}) .toFormat('flv') .on('error', function (err) { console.log('An error occurred: ' + err.message); }) .saveToFile(tempfile, function () { fs.rename(tempfile, target); }); }; 

编译器只是说当我执行程序时, Object #<FfmpegCommand> has no method 'ffprobe 。 fluent-ffmpeg API说我应该在执行之前添加FFMPEG_PATH和FFPROBE_PATH环境variables,但事实是我可以直接在命令行中执行ffmpeg,即使它不存在于PATH环境variables中,并且node.js程序运行成功而不会唤起ffprobe函数。 再加上API也说ffprobe与ffmpeg的大部分分布在一起,如果是的话,我怎样才能分别添加ffprobe到环境variables?

我目前使用fluent-ffmpeg 1.7.0。

我认为你读的文档实际上是2.x而不是1.x.

尝试使用npm install --save fluent-ffmpeg@2.0.0-rc1升级你的fluent-ffmpeg模块npm install --save fluent-ffmpeg@2.0.0-rc1

在调用之前尝试设置FFprobepath:

 ffmpeg.setFfprobePath("c:\\program files\\ffmpeg\\bin\\ffprobe.exe"); ffmpeg.ffprobe(sourceFile.path, function(err, metadata) { if (err) { console.log(err); } else{ console.log(metadata); } });