Я намагаюся витягти "рівно 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, тобто я не впевнений, чи є він у підробці ffmpeg Ubuntu). Використовуйте замість qscale.