我正在尝试将视频文件的最后帧保存到磁盘。该代码不给出任何错误,但是保存的帧不是最后一个帧。这可能是第一个。我尝试了不同的cap.set参数,但是保存的帧保持不变。
cap = cv2.VideoCapture('temp.h264')
cap.set(1, cap.get(7)-1)
#sets position to the last frame
ret, img = cap.read()
cap.release()
image = Image.fromarray(img)
image.save('tempimg.jpg')
有人可以告诉我为什么这是不起作用的,什么可以解决这个问题?谢谢。
编辑:
使用MP4Box将源文件转换为MP4后,我得到了CAP.SET工作。但这并不能真正解决我的问题,因为当代码运行时,没有时间进行此转换。视频文件是picamera的录音,对我的理解只能做H264。
那么,有没有办法获得H264的最后帧?或者直接使用PICAMERA直接记录AVI或MP4?
您正在使用错误的属性索引。应该是cap.set(1, cap.get(7)-1)
。或者我认为cap.set(2, 1)
。请参阅文档