0
我运行下面的代码:cv2.VideoCapture对蟒蛇
import numpy as np
import cv2
import os
count = 0
cap = cv2.VideoCapture("/home/simon/PROJECT/real_data/00000020.mp4")
while not cap.isOpened():
cap = cv2.VideoCapture("./00000020.mp4")
cv2.waitKey(1000)
print "Wait for the header"
pos_frame = cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)
while True:
flag, frame = cap.read()
if flag:
# The frame is ready and already captured
cv2.imshow('video', frame)
pos_frame = cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)
print str(pos_frame)+" frames"
else:
# The next frame is not ready, so we try to read it again
cap.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, pos_frame-1)
print "frame is not ready"
# It is better to wait for a while for the next frame to be ready
cv2.waitKey(1000)
if cv2.waitKey(10) & 0xFF == 27:
break
if cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES) == cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT):
# If the number of captured frames is equal to the total number of frames,
# we stop
break
if ret == True:
frame = cv2.VideoCapture.grab()
frame = 'frame%d' % count
cv2.imwrite('frame%d.png', frame)
count += 1
else:
print 'stopped at' + count
break
每当我运行它,它循环的,而不是循环,打印“等标题”。 从来没有错误代码或类似的东西要么。
我试图运行它作为一种更简单的代码,在那里它不拥有所有这些检查,并再次不抛出任何错误。
我试图运行此代码打开一个视频,然后保存帧为PNG文件在整个视频。
有谁发现的代码任何特别的问题? 或可替换地没有人知道的一段代码,会做什么,我想更有效,因为我已经通过谷歌搜索拖网和最近堆栈溢出了很多,提前 没有发现任何
感谢熊猫
我已经安装的ffmpeg,我检查这些之前,我这里张贴:) 谢谢你的建议,但。 您是否知道是否需要与视频长度相同的时间进行处理? – pandasarebest
据我所知,它应该立即开始阅读。据我所知,Header问题是因为它无法解码视频,通常是因为opencv没有找到DLL。 –