ffmpeg如何将持续时间输入node.js?

时间:2018-01-12 03:09:01

标签: node.js ffmpeg

好的,我知道如何使用此命令在ffmpeg中获取视频的持续时间

ffmpeg -i ./output/sample.mp4 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,//

我通过节点中的函数运行此命令但是这会将持续时间输出到控制台上,如何将它放到我需要它的node.js上?

2 个答案:

答案 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);
  }

})