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

时间:2017-09-20 11:39:42

标签: python opencv

我正在尝试将视频文件的最后一帧保存到磁盘。代码没有给出错误,但保存的帧不是最后一帧。这可能是第一次。我尝试过不同的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?

1 个答案:

答案 0 :(得分:3)

您使用的是错误的属性索引。它应该是cap.set(1, cap.get(7)-1)。或者我认为cap.set(2, 1)。见documentation