我还没有找到获取视频时长的API,有人知道吗?
通过流畅的 ffmpeg 使用 ffprobe 非常适合此目的:
const ffmpeg = require('fluent-ffmpeg');
ffmpeg.ffprobe(videoFile, (error, metadata) => {
const duration = metadata.format?.duration;
console.log(duration);
});
只需确保您已安装 ffprobe,并将其包含在您的 ffmpeg 构建中。
流畅的 ffmpeg 文档还概述了一种使用 ffprobe 作为编码函数一部分的方法,但如果你这样做,你需要确保你没有流式传输源代码,因为它将被 ffprobe 消耗过程,因此对于流式传输,我建议简单地为 ffprobe 指定几行来获取持续时间,如上所述。