我打算使用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);
});
};
当我执行程序时,编译器简单地说“Object #<FfmpegCommand> has no method 'ffprobe'”。Fluent-ffmpeg API说在执行之前应该添加FFMPEG_PATH和FFPROBE_PATH环境变量,但事实上,即使在PATH环境变量中不存在ffmpeg,我也可以直接在命令行中执行它,并且node.js程序运行成功而不会调用ffprobe函数。此外,API还说ffprobe与大多数ffmpeg发行版一起提供,如果是这样,那么我如何将ffprobe单独添加到环境变量中呢?我目前使用的是fluent-ffmpeg 1.7.0版本。