在之前的博文中都抛出了问题,而没有解决,这里做最后的解决!!!
视频关键帧分为I帧,P帧,B帧,这里介绍下区别,也是我搜索得到的,仅供参考。
I帧才是关键帧,P,B算不上关键帧。
I帧是帧内压缩编码得到的,通常是每个GOP组的第一帧/基础帧,在一组中只有一个I帧,I帧所占信息量大,解码时仅有I帧即可完整重构图像,所以才叫关键帧。
P帧与B帧是帧间压缩,P帧没有完整图像数据,只有与前一帧的差别信息,因此也叫预测帧,B帧则是考虑前后帧的差别(故而也叫双向预测帧),因此B帧解码时间最长,压缩比最大。
参考上面博文,又找到了一个方法,感谢帮助我的大佬。cv2解码,当然其他解码也可,我看看是否结果一样。
我看了下,这个方法是找到关键帧的index,然后再次读视频(耗时问题也算差强人意吧),我在上面博文中也提及了。
下面是用ffprobe得到的帧:以baby.mp4为例
'pict_type=I\r\npict_type=P\r\npict_type=P\r\npict_type=B\r\npict_type=P\r\npict_type=B\r\npict_type=P\r\npict_type=B\r\npict_type=P\r\npict_type=B\r\npict_type=P\r\npict_type=B\r\