我打算使用ff探针函数提取视频信息,下面是我的代码:
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程序成功运行,而不需要调用ff探针函数。此外,API还表示ff探针与大多数ffmpeg发行版一起使用,如果是的话,如何将ff探针分别添加到环境变量中呢?
我现在使用的是fluent-ffmpeg 1.7.0。
发布于 2014-07-24 05:17:42
我认为您阅读的文档实际上是用于2.x而不是1.x的。
尝试用npm install --save fluent-ffmpeg@2.0.0-rc1
升级你的fluent-ffmpeg模块。
发布于 2019-10-21 00:28:23
对于ff探头,对于其他扩展也应该进行类似的操作。
这样,不需要在os中安装ffmpeg。
const ffmpeg = require('fluent-ffmpeg');
var ffprobe = require('ffprobe-static');
ffmpeg.setFfprobePath(ffprobe.path);
发布于 2014-11-24 11:41:06
在调用FFprobe路径之前尝试设置它:
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);
}
});
https://stackoverflow.com/questions/24924698
复制