无法在 Fluent-ffmpeg 中使用 ffprobe

GJ.*_*GJ. 5 ffmpeg node.js npm

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

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);
        });
};
Run Code Online (Sandbox Code Playgroud)

编译器只是说Object #<FfmpegCommand> has no method 'ffprobe当我执行程序时。Fluent-ffmpeg API 说我应该在执行之前添加 FFMPEG_PATH 和 FFPROBE_PATH 环境变量,但事实是即使 PATH 环境变量中不存在 ffmpeg,我也可以直接在命令行中执行 ffmpeg,并且 node.js 程序成功运行而无需调用ffprobe 函数。另外API还说ffprobe与大多数ffmpeg发行版一起提供,如果是这样,我如何单独将ffprobe添加到环境变量中?

我目前使用的是 Fluent-ffmpeg 1.7.0。

Kat*_*hah 5

对于 ffprobe,其他扩展也应执行类似操作

这样就不需要在操作系统中安装 ffmpeg

const ffmpeg = require('fluent-ffmpeg');
var ffprobe = require('ffprobe-static');
ffmpeg.setFfprobePath(ffprobe.path);
Run Code Online (Sandbox Code Playgroud)


Ben*_*ans 0

我认为您阅读的文档实际上是针对 2.x 而不是 1.x。

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