1

Я пытаюсь перекодировать файлы mjpeg с помощью ffmpeg и он неправильно определяет настройки. Если файл не имеет расширения или неизвестного расширения, ffmpeg правильно определит формат mjpeg и будет считывать любое количество фреймов.

Что не работает, это когда файл имеет расширение .jpg . Это приводит к тому, что ffmpeg читает только один кадр из файла и игнорирует любые дополнительные кадры.

Есть ли способ сказать ffmpeg прекратить гадать на основе расширения файла или, по крайней мере, на самом деле использовать модуль mjpeg, а не просто читать один кадр?

Я знаю о -f image2pipe -i - но для этого потребуется перескочить через другие обручи, чтобы передать файл команде, а не просто указать имя файла для процесса, так как я выполняю его из другого процесса без оболочки.

1 ответ1

1

Как мне сказать ffmpeg использовать нужный мне формат?

(а не тот, который он считает нужным использовать)

ffmpeg требователен к позиции своих аргументов. Похоже, вы хотите заставить его использовать mjpeg в качестве входного формата, что означает, что -f должен идти перед аргументом -i . Например:

$ ffmpeg -f mjpeg -i mjpeg_image.jpg <other_options> output

Вы также можете получить список поддерживаемых форматов, вызвав ffmpeg -formats ; где D обозначает способность декодирования (ввода), а E обозначает способность кодирования (вывода).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .