FFMPEG - извлечь два последовательных кадра - PullRequest
0 голосов
/ 27 февраля 2020

Мне нужно использовать FFMPEG для случайного выбора времени (например, 0:10) и сохранить два последовательных кадра в формате PNG.

КАК СОХРАНИТЬ КАДР В PNG:

ffmpeg.exe -ss 0:10 -y -i test.avi -vcodec png -vframes 1 -an -f rawvideo test.png

КАК ПОЛУЧИТЬ ИНФОРМАЦИЮ О ВИДЕОФАЙЛЕ:

ffprobe -v error -select_streams v:0 -show_entries stream=duration,avg_frame_rate -of default=nw=1:nk=0 test.avi

Вывод:

avg_frame_rate=120/1
duration=59.808333

ВОПРОС

Как определить следующий кадр? Частота кадров 120/1 означает 120 кадров в секунду?

РЕДАКТИРОВАТЬ

Возможное решение - правильно ли я, что извлечение кадров в разы + (1/120 = 0,00833333) решило бы мою проблему?:

-ss 0:10
-ss 0:10.00833333

Гарантирует ли это точно следующий кадр? Есть ли другой подход?

1 Ответ

0 голосов
/ 27 февраля 2020

Использовать мультиплексор последовательности изображений

ffmpeg -ss 0:10 -y -i test.avi -vframes 2 -vsync 0 -an -f image2 test%d.png

Это выведет test1.png и test2.png, причем кадры являются последовательными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...