使用 ffmpeg 转换一系列图像导致视频变黑

使用 ffmpeg 转换一系列图像导致视频变黑

我刚刚下载了 ffmpeg,因为它似乎完全符合我的需求(用一组图片制作视频)。我目前正在尝试一些示例以开始使用,但发生了一些我无法解释的奇怪事情。我正在尝试这个命令(在官方文档中提供):

ffmpeg -f image2 -pattern_type glob -i 'foo-*.jpeg' -r 12 -s WxH foo.avi

在 10 张 jpg 图片的数据集上(当然,我用“*.jpg”更改了模式)。视频似乎编码正确,但速度实在太快,无法确定(无论如何,它会在与最后一张图片相对应的最后一帧上停止)。为了获得更长的视频,我想将帧速率从 12 降低到 1(每张图片一秒)或 0.5(每张图片 2 秒)等等。没办法!如果速率值较低,即使播放视频,图片也不会显示。播放器(我的情况是 VLC)只会显示几秒钟的空白视频。

我是不是搞错了什么,还是我误解了 -r 参数?这和所涉及的编解码器有关吗?最后……我怎样才能让每张图片显示 1 或 2 秒?

输出如下:

MacBook-Pro$ ffmpeg -f image2 -pattern_type glob -i '*.jpg' -r 1 -s 200x300 foo.avi
ffmpeg version N-52517-g1e4f75d Copyright (c) 2000-2013 the FFmpeg developers
  built on Apr 27 2013 19:41:11 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
  configuration: --disable-yasm
  libavutil      52. 27.101 / 52. 27.101
  libavcodec     55.  6.100 / 55.  6.100
  libavformat    55.  3.100 / 55.  3.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 61.100 /  3. 61.100
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
Input #0, image2, from '*.jpg':
  Duration: 00:00:00.40, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p, 2560x1920 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'foo.avi' already exists. Overwrite ? [y/N] y
Output #0, avi, to 'foo.avi':
  Metadata:
    ISFT            : Lavf55.3.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 200x300 [SAR 2:1 DAR 4:3], q=2-31, 200 kb/s, 1 tbn, 1 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> mpeg4)
Press [q] to stop, [?] for help
frame=    2 fps=0.0 q=2.0 Lsize=      43kB time=00:00:02.00 bitrate= 177.1kbits/s dup=0 drop=8    
video:38kB audio:0kB subtitle:0 global headers:0kB muxing overhead 15.099197%
MacBook-Pro$ 

相关内容