ffmpeg错误创建缩略图不同的帧速率

时间:2012-12-18 10:54:02

标签: ffmpeg mp4

在命令行使用它时,我会得到非常糟糕的图像,其中只有灰色或条纹。 似乎“帧速率与容器帧速率不同:59.94(60000/1001) - > 29.97(30000/1001)”。

有什么方法可以在ffmpeg语句中解决这个问题吗?

ffmpeg -ss 00:00:10 -i FILENAME.mp4 -vframes 1 FILENAME.jpg

这是我得到的输出:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Jun 13 2010 23:44:18, gcc: 4.1.2 20080704 (Red Hat 4.1.2-48)

似乎流0编解码器帧速率与容器帧速率不同:59.94(60000/1001) - > 29.97(30000/1001)

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'FILENAME.mp4':
  Duration: 00:03:36.36, start: 0.000000, bitrate: 1305 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 640x428, 29.97 tbr, 29.97 tbn, 59.94 tbc
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16
Output #0, image2, to 'FILENAME.jpg':
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 640x428, q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
[h264 @ 0x307f6b0]brainfart cropping not supported, this could look slightly wrong ...
[h264 @ 0x307f6b0]AVC: Consumed only 14978 bytes instead of 14984
[h264 @ 0x307f6b0]AVC: Consumed only 1147 bytes instead of 1153
[h264 @ 0x307f6b0]Missing reference picture
[h264 @ 0x307f6b0]AVC: Consumed only 1947 bytes instead of 1953
[h264 @ 0x307f6b0]Missing reference picture
[h264 @ 0x307f6b0]AVC: Consumed only 1870 bytes instead of 1876
[h264 @ 0x307f6b0]Missing reference picture
    Last message repeated 1 times
[h264 @ 0x307f6b0]AVC: Consumed only 810 bytes instead of 816
[h264 @ 0x307f6b0]Missing reference picture
    Last message repeated 1 times
[h264 @ 0x307f6b0]AVC: Consumed only 955 bytes instead of 961
[h264 @ 0x307f6b0]Missing reference picture
    Last message repeated 1 times
[h264 @ 0x307f6b0]AVC: Consumed only 1036 bytes instead of 1042
[h264 @ 0x307f6b0]Missing reference picture
    Last message repeated 1 times
[h264 @ 0x307f6b0]AVC: Consumed only 998 bytes instead of 1004
[h264 @ 0x307f6b0]Missing reference picture
frame=    1 fps=  0 q=3.3 Lsize=      -0kB time=0.03 bitrate=  -5.3kbits/s
video:14kB audio:0kB global headers:0kB muxing overhead -100.149568%

2 个答案:

答案 0 :(得分:0)

试试这个 - 看起来裁剪可能会在这里设置错误。 (高度不是根据标准无效的16的倍数)

./ ffmpeg -i~ / Sites / f3_voyage.mov -ss 00:00:10 -f image2 -vframes 1 -s 640x432 FILENAME.jpg

答案 1 :(得分:0)

似乎在10秒内你没有参考框架,试试这个:ffmpeg -i FILENAME.mp4 -ss 00:00:10 -vframes 1 FILENAME.jpg。这将在输出上应用-ss选项,ffpeg已经解码了你的文件,因此这应该可行。