Я пытаюсь извлечь «ровно 1 кадр из каждых 10» кадров видео (т.е. извлечь 1, оставить 9, затем повторить) для научных целей. Видео имеет 105 кадров, 3,5 секунды, 29,97 кадров в секунду (h.264, .mov, производства Nikon D3100).
VLC
Команда ниже должна выдавать 10 кадров, но она выдает только 6 изображений. Я пробовал разные соотношения сцен, и ни один из них не давал правильное количество кадров (даже близко не к правильному).
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
Кто-нибудь, пожалуйста, скажите мне, в чем проблема?
FFmpeg
У FFmpeg, похоже, нет команды именно для моей цели. Приведенная ниже команда извлекает 3 кадра из каждой секунды, но, поскольку FPS не равен 30 (а точнее 2,97), это не даст для меня правильных результатов.
Кроме того, даже FFmpeg не выдает правильное количество кадров даже этой командой. Для 3,5 секунд видео я ожидаю максимум 10 кадров, но получаю 12 кадров!
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
Как я могу добиться того, чего хочу?
-sameq
не делает то, что вы, вероятно, думаете, что он делает, и был удален из текущей версии (реальный ffmpeg, то есть я не уверен, что это в Ubuntu поддельные ffmpeg). Вместо этого используйте qscale.