opencv获取视频总帧数的问题

今天编程时发现,通过capture.get(CV_CAP_PROP_FRAME_COUNT)获得的总帧数总是和实际的总帧数差1.
实验中总帧数是通过capture.get(CV_CAP_PROP_FRAME_COUNT)获得的,128帧,我通过capture.set(CV_CAP_PROP_POS_FRAMES,127)将指针指到127帧,再用capture.read读居然读不到。
后来就用下面代码测试了一下。
int i=0;
while(1){
if(!capture.read(img))break;
i++;

最后发现i为127,真的少一帧。求问capture.get(CV_CAP_PROP_FRAME_COUNT)获得帧数是比实际帧数多1吗?

http://blog.csdn.net/zxlstudio/article/details/10084001

原因是opencv是用ffmpeg读取视频,读到的是关键帧,压缩过后的视频中间有很多的过渡帧
https://stackoverflow.com/questions/19404245/opencv-videocapture-set-cv-cap-prop-pos-frames-not-working