Python-获取H264视频文件的最后帧



我正在尝试将视频文件的最后帧保存到磁盘。该代码不给出任何错误,但是保存的帧不是最后一个帧。这可能是第一个。我尝试了不同的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)。请参阅文档

相关内容

最新更新