你好,我正在使用 ffmpeg 转换视频中的图像。我需要 1 张静止图像来制作 2 秒的视频,我使用以下调用:
ffmpeg -loop 1 -i img.jpg -t 2 -vcodec mpeg2video result.avi
如果我使用一些测试图像(使用 Photoshop 生成 200x200px 的单色图像),它会得到以下输出:
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Jul 26 2013 20:18:03 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 18.100 / 52. 18.100
libavcodec 54. 92.100 / 54. 92.100
libavformat 54. 63.104 / 54. 63.104
libavdevice 54. 3.103 / 54. 3.103
libavfilter 3. 42.103 / 3. 42.103
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
[mjpeg @ 0x7fba0901e800] Unhandled pixel format 0x11111111
Last message repeated 8 times
[image2 @ 0x7fba09006600] decoding for stream 0 failed
[image2 @ 0x7fba09006600] Could not find codec parameters for stream 0 (Video: mjpeg, 200x200): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
1.jpg: could not find codec parameters
请注意,使用从互联网上下载的一些随机图像的相同命令效果很好。
这是失败的测试图像:
有什么想法?
答案1
您可能会遇到一个错误:票号#896:ljpeg - 支持 32bpp RGBA。幸运的是,这个问题已经修复了提交 6db57fa大约一周前,2013-07-25:
$ cd ~/ffmpeg; git log 6db57fa
commit 6db57fa8bc1a40c16293f9224d195e43ae52aabd
Author: Michael Niedermayer <[email protected]>
Date: Thu Jul 25 00:32:44 2013 +0200
avcodec/mjpegdec: Support RGBA lpegs
Fixes Ticket896
Signed-off-by: Michael Niedermayer <[email protected]>
这只是意味着你必须获得较新的 ffmpeg 版本。请参阅FFmpeg 下载页面,获取 OSX、Windows 和 Linux 版本的链接。当然,您也可以随时编译 ffmpeg也。