我刚刚下载了 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$