FFMPEG - 找不到编解码器参数

时间:2010-09-17 13:43:29

标签: image ffmpeg

我正在尝试通过FFMPEG将一系列图像转换为mpeg电影,虽然我不断收到错误,说它无法找到代码参数(视频:mjpeg)。谷歌搜索没有带来太多有用的东西。

ffmpeg -f image2 -i /tmp/img%03d.jpg video.mpgFFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5.1-1ubuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
  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 Mar  4 2010 12:35:30, gcc: 4.4.3
[mjpeg @ 0x9069870]dqt: 16bit precision
[mjpeg @ 0x9069870]mjpeg: unsupported coding type (c9)
[mjpeg @ 0x9069870]mjpeg: unsupported coding type (cf)
[mjpeg @ 0x9069870]only 8 bits/component accepted
[mjpeg @ 0x9069870]dqt: 16bit precision
[mjpeg @ 0x9069870]huffman table decode error
[mjpeg @ 0x9069870]mjpeg: unsupported coding type (ca)
[mjpeg @ 0x9069870]mjpeg: unsupported coding type (ce)
[mjpeg @ 0x9069870]mjpeg: unsupported coding type (cb)
[mjpeg @ 0x9069870]decode_sos: invalid len (60581)
[mjpeg @ 0x9069870]only 8 bits/component accepted
[mjpeg @ 0x9069870]decode_sos: invalid len (56833)
[mjpeg @ 0x9069870]invalid id 207
[mjpeg @ 0x9069870]mjpeg: unsupported coding type (cd)
[mjpeg @ 0x9069870]huffman table decode error
[image2 @ 0x90682c0]Could not find codec parameters (Video: mjpeg)
/tmp/img%03d.jpg: could not find codec parameters

图像位于/ tmp目录中,名称为img001.jpg和img002.jpg。

有什么想法吗?

由于 -Tanner

5 个答案:

答案 0 :(得分:8)

ffmpeg实际上试图告诉你的是,你的文件有jpeg的扩展名,但文件实际上是bmp或其他格式。

确保文件以jpeg编码,问题将消失。

答案 1 :(得分:5)

有些人here说这是因为无法真正找到mjpeg编解码器。他们建议从源头安装它。我觉得mjpeg更有可能没有安装。我觉得这有两个解决方案。

  1. 您可以尝试安装该编解码器,看看它是否有帮助 MJpeg Download For Win
  2. 您可以尝试强制ffmpeg将其导出到不同的编解码器中 尝试:ffmpeg -f image2 -i /tmp/img%03d.jpg -vcodec mpeg2video video.mpg

答案 2 :(得分:3)

可能需要为该系列图像指定输入编解码器。请注意第二个示例中的-c:v gif添加,放在输入源之前:

$ ffmpeg -f image2 -i %03d.gif zzz.webm
# Error: %03d.gif: could not find codec parameters

$ ffmpeg -f image2 -c:v gif -i %03d.gif zzz.webm
# Works! ffmpeg version 2.7

答案 3 :(得分:2)

FFmpeg 无法解码图像可能存在多个问题。其他答案解决了大多数问题(例如,找不到jfif,未找到mjpeg)。但是,任何人都没有解决不受支持的编码算法的问题。


JPEG标准指定使用几种类型的编码算法。但是,几乎并没有实现所有算法,而是遵循了JFIF标准。

JFIF标准仅指定使用霍夫曼编码算法 [需要引用] 。 FFmpeg的 MJPEG 编解码器遵循该标准,因此,如果没有霍夫曼编码,就无法解码数据。


FFmpeg的MJPEG代码可以假定输入应始终为霍夫曼编码。您可以使用工具(例如ImageMagick)再次将这些图像转换为Huffman。


# Type of the encoding used to encode the JFIF image.
exiftool image.jpg | grep -i "encoding"

答案 4 :(得分:0)

试试这个:

ffmpeg -f image2 -i /tmp/img%03d.**jpeg** video.mpg

实际上,我在这里遇到了类似的问题..(并已解决)。

我有一系列名为file-001,file-002等的图像(.tiff文件)。我忘了给你一个扩展名“.tiff”,所以当我运行ffmpeg命令时出错了

ffmpeg -f image2 -i file-%03d.tiff video.mpg

当我通过添加“.tiff”扩展名来重命名文件时解决了这个问题。