我正在尝试使用python 3.6中的opencv逐帧处理视频。我有一个.mp4视频,它以30 fps的速度播放11分钟,17秒,总共20310帧。对于cap.read()失败,返回(False, NONE)
的帧,存在一定范围的帧(第23帧至第123帧),但是,这些帧显然存在于原始视频中,并且可以在像VLC这样的视频播放器中观看。例如,此代码导致ret = False
frame_no = 75
cap.set(1, frame_no)
ret, image = cap.read()
为什么cap.read()有时但并非总是失败?这是我可以解决的问题吗?有什么办法可以迫使opencv读取显然缺少的帧?缺少有关此行为的文档。