У меня есть все эти изображения в формате JPEG, и я хочу передать их в AVI. Я пытаюсь использовать ffmpeg с командой, указанной здесь, но я получаю сообщение об ошибке "Нет такого файла или каталога".

Моя точная команда (из папки, содержащей все эти файлы):

ffmpeg -f image2 -i frame_%d.jpg view.avi

Как мне это сделать? Кроме того, как я могу сделать это для определенного диапазона изображений? Скажем, я хочу только кадры от 500 до 1000, поэтому я хочу, чтобы frame_0500.jpg - frame_1000.jpg?

2 ответа2

3

образец шара

Для тех из вас, кто использует не древнюю сборку ffmpeg шаблон glob является наиболее гибким методом:

ffmpeg -framerate 10 -pattern_type glob -i "*.png" -pix_fmt yuv420p output.mkv

последовательность

Это преобразует последовательность пронумерованных входных данных, image-0001.png , image-0002.png и т.д.

ffmpeg -framerate 30000/1001 -i image-%04d.png -pix_fmt yuv420p output.mkv
  • Добавьте -start_number , такой как -start_number 100 , в качестве параметра ввода, если вы хотите начать с определенного изображения.

cat

Вы также можете использовать cat для передачи ваших изображений в ffmpeg:

cat *.jpg | ffmpeg -framerate ntsc -f image2pipe -c:v mjpeg -i - -pix_fmt yuv420p output.mp4

Заметки

  • Выход будет использовать ту же частоту кадров, что и вход. Если вы не объявите -framerate будет использовано значение по умолчанию 25. Вы также можете добавить -r в качестве параметра вывода, например, в -r 25 , если вы хотите, чтобы ffmpeg считывал ввод с определенной скоростью, а затем отбрасывал или дублировал кадры для достижения другой частоты вывода кадров.

  • В зависимости от вашего входа, версии ffmpeg и выбранного кодировщика, ffmpeg попытается избежать или минимизировать выборку цветности. Хотя это может быть хорошо в техническом смысле, оно может привести к выводу, который не воспроизводится игроками, не основанными на FFmpeg. Добавление -pix_fmt yuv420p обеспечит возможность воспроизведения выходных данных при кодировании в видео H.264.

  • Рекомендуется использовать последнюю сборку ffmpeg так как разработка очень активна и избегать ошибок, которые уже были исправлены. См. Страницу загрузки FFmpeg для ссылок на сборки для Windows, OS X и Linux.

Также см

2

Правильная команда должна быть

ffmpeg -f image2 -i frame_%04d.jpg view.avi

%04d означает, что число имеет длину 4 символа с добавлением нуля (0000-9999).

Если вы хотите сделать диапазон, я бы просто переместил нужные файлы в их собственный каталог.

Это легко с графическим интерфейсом, но с командной строкой вы можете сделать

mv frame_0[5-9]* newfolder
mv frame_1000* newfolder

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