好的,我知道如何使用此命令在ffmpeg中获取视频的持续时间
ffmpeg -i ./output/sample.mp4 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,//
我通过节点中的函数运行此命令但是这会将持续时间输出到控制台上,如何将它放到我需要它的node.js上?
答案 0 :(得分:4)
有一种方法可以读取控制台输出流,但我更喜欢使用 fluent-ffmpeg :https://github.com/fluent-ffmpeg/node-fluent-ffmpeg
它是nodejs的npm模块。
从这里你可以调用ffprobe(ffmpeg附带的一个工具,比ffmpeg更好地获取有关视频的信息),如下所示:
var ffmpeg = require('fluent-ffmpeg');
ffmpeg.ffprobe('./input.mp4', function(err, metadata) {
//console.dir(metadata); // all metadata
console.log(metadata.format.duration);
});
答案 1 :(得分:0)
var ffmpeg = require('ffmpeg');
app.get('/getVideoDuration', (req, res) => {
fs.unlink('public/output.mp4')
try {
new ffmpeg('public/input.mov', function (err, video) {
if (!err) {
console.log(video.metadata.duration.seconds, "video")
res.send({
'msg': "Success",
'duration': video.metadata.duration.seconds
})
}
});
} catch (e) {
console.log(e.code);
console.log(e.msg);
}
})