Я знаю, что ffmpeg может сделать это из командной строки и почти уверен, что он может сделать это и из кода C ++. Но есть ли какой-нибудь простой способ в C ++ OpenCV3 или OpenCV2 захватывать только с ключевых кадров видеофайлов?
До video.set(CV_CAP_PROP_POS_FRAMES)
работал следующим образом: позиция была «ближайшим ключевым кадром», но теперь она «исправлена», и я не могу найти способ, как обрабатывать только ключевые кадры (для целей исполнения) хотя бы одним из возможных способов:
read()
следующий ключкадр (как JavaCV FFmpegFrameGrabber.grabKeyFrame()
)grab()
за каждый кадр, проверьте его свойства (какой?) и если это ключевой кадр, то сделайте медленную работу retrieve()
,Задача ещё не решена.