我知道ffmpeg可以从命令行执行此操作,并且几乎可以肯定它也可以从C ++代码执行此操作。但是,C ++ OpenCV3或OpenCV2中是否有任何简单的方法可以从视频文件关键帧中获取?
Before video.set(CV_CAP_PROP_POS_FRAMES)
以这种方式工作:位置是"最近的关键帧",但现在它是"固定"我至少在一种可能的方式中找不到如何处理关键帧的方法(出于性能目的):
read()
下一个密钥框架(如JavaCV FFmpegFrameGrabber.grabKeyFrame()
)grab()
,检查它的属性(哪一个?),如果它是关键帧,则执行慢速工作{{ 1}}。