Node.js fluent ffmpeg生成错误的帧率

Node.js fluent ffmpeg生成错误的帧率,node.js,ffmpeg,video-conversion,node-modules,Node.js,Ffmpeg,Video Conversion,Node Modules,我在将图像转换为视频时遇到了一个奇怪的问题。我正在为node.js服务器使用。我有179个jpg图像,我希望转换成30fps的视频(应该是6s左右)。我已使用以下ffmpeg命令成功完成此操作: ffmpeg -r 30 -i frame%03d.jpg -c:v libx264 out.mp4 当ffmpeg检查时,输出以下内容: ffmpeg -i out.mp4 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4': Metadata:

我在将图像转换为视频时遇到了一个奇怪的问题。我正在为node.js服务器使用。我有179个jpg图像,我希望转换成30fps的视频(应该是6s左右)。我已使用以下ffmpeg命令成功完成此操作:

ffmpeg -r 30 -i frame%03d.jpg -c:v libx264 out.mp4
当ffmpeg检查时,输出以下内容:

ffmpeg -i out.mp4

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf54.63.104
  Duration: 00:00:06.00, start: 0.000000, bitrate: 1631 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p, 640x480 [SAR 1:1 DAR 4:3], 1627 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Metadata:
       handler_name    : VideoHandler
现在,我正试图用fluent ffmpeg做同样的事情:

var proc = new ffmpeg({ source: 'frame%03d.jpg', nolog: true })
  .addOptions(['-c:v libx264','-r 30'])
  .saveToFile('test.mp4', function(retcode, error){
    console.log('file has been converted succesfully');
  });
应该完全一样,对吗?但我得到的是:

ffmpeg -i test.mp4

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf54.63.104
  Duration: 00:00:07.20, start: 0.000000, bitrate: 1556 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p, 640x480 [SAR 1:1 DAR 4:3], 1553 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Metadata:
      handler_name    : VideoHandler
现在最有趣的是,虽然两个都是由同一组图像制作的,而且都应该具有相同的帧速率,但使用fluent ffmpeg制作的一个视频的持续时间为7.20秒,比第一个视频长整整1.20秒。通过比较这两个视频,看起来流畅的ffmpeg视频实际上是25fps,尽管它报告了30

请注意,我已尝试使用方法(
.withVideoCodec、.withFps
)正确添加两个标志,但结果相同,我只是尝试手动添加参数,以使其与原始命令完全相同


如果在座的任何人有此模块的经验和/或有任何建议,将不胜感激

也有同样的问题,发现需要指定输入FPS以匹配图像序列源

.withFpsInput(30) // fps matching your jpg or png input sequence

这对我很有效。希望有帮助

也有同样的问题,发现需要指定输入FPS以匹配图像序列源

.withFpsInput(30) // fps matching your jpg or png input sequence
这对我很有效。希望有帮助