使用 fluent-ffmpeg 处理时,视频输出文件的持续时间减少了一半

Video output file duration is cut in half when processed using fluent-ffmpeg

我设置了一个节点服务器,它需要一个文件进行预处理。仅使用 ffmpeg 库时,文件处理没有问题,使用 fluent-ffmpeg 时,如果视频为 20 秒,则输出只会是视频的后半部分(10 秒)。我试过多个不同长度的文件并且有同样的问题。知道为什么会这样吗?

const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path;
const ffprobePath = require('@ffprobe-installer/ffprobe').path;
const ffmpeg = require('fluent-ffmpeg');

...

ffmpeg.setFfmpegPath(ffmpegPath);
ffmpeg.setFfprobePath(ffprobePath);

ffmpeg('video.mov').videoBitrate('512k').output('./output/video.mov')
    .on('error', function(err, stdout, stderr) {
      console.log('Cannot process video: ' + err.message);
    }).screenshots({
      count: 1,
      size:'640x480'
    });

原来我误解了文档...不能在同一个调用中同时包含输入处理和屏幕截图...应该是

ffmpeg('video.mov').videoBitrate('512k')
    .output('./output/video.mov')
    .on('error', function(err, stdout, stderr) {
      console.log('Cannot process video: ' + err.message);
    });

并分别

ffmpeg('video.mov').screenshots({
      count: 1,
      size:'640x480'
    });