Ответ 1
На самом деле ffmpeg пытается сказать вам, что ваш файл имеет расширение jpeg, но файл фактически является BMP или другим форматом.
Убедитесь, что файл закодирован в jpeg, и проблема исчезнет.
Я пытаюсь преобразовать последовательность изображений в mpeg-фильм через FFMPEG, хотя я все время получаю сообщение об ошибке, что он не может найти параметры кода (Video: mjpeg). Поиск Google не принес много полезного.
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
На самом деле ffmpeg пытается сказать вам, что ваш файл имеет расширение jpeg, но файл фактически является BMP или другим форматом.
Убедитесь, что файл закодирован в jpeg, и проблема исчезнет.
Некоторые люди здесь говорят, что это потому, что кодек mjpeg действительно не может быть найден. Они предложили установить его из источника. Я чувствую, что более вероятно, что mjpeg не установлен. Я считаю, что для этого есть два решения.
Может потребоваться указать входной кодек для серии изображений. Обратите внимание на добавление -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
Попробуйте следующее:
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.
Там может быть несколько проблем, FFmpeg не может декодировать ваше изображение. Другие ответы решили большинство проблем (например, не jfif
, mjpeg
не найдено). Но никто не обращался к проблеме неподдерживаемых алгоритмов кодирования.
Стандарт JPEG предусматривает использование нескольких типов алгоритмов кодирования. Но почти никто не следовал всем им, вместо этого они следовали стандарту JFIF.
Стандарт JFIF определяет только использование алгоритмов кодирования Хаффмана [citation needed]. Большинство реализаций следовали этому стандарту и не реализовали ничего, кроме кодирования Хаффмана.
Я никогда не заглядывал в исходный код, но я предполагаю, что его кодировщик mjpeg
использует только алгоритм кодирования Хаффмана для декодирования данных JPEG. Все, кроме Хаффмана, может быть нестандартным.
СОВЕТ: используйте exiftool
для извлечения информации из файла JFIF.
# On a UNIX based system (Linux or MacOS)
exiftool image.jpg | grep -i "encoding"
# On a NT based system (Windows)
exiftool.exe image.jpg | findstr /i /c:"encoding"