我正在尝试将帧pos设置为视频的一半。但它永远都行不通。当我播放视频时,它总是从头开始。
有什么想法吗?
cap = cv2.VideoCapture()
cap.set(cv2.CAP_PROP_POS_FRAMES, int(cap.get(cv2.CAP_PROP_FRAME_COUNT) * 0.5))
#cap.set(1, int(cap.get(7) * 0.5)) # try just using the enumeration values (still doesn't work)
cap.open('./images/billboard1.mp4')
while 1:
_, frame = cap.read()
cv2.imshow('Frame', frame) # always shows the first frame not half way through
...
答案 0 :(得分:0)
您要在一个空的VideoCapture对象上设置帧位置。
尝试
ret = cap.set(cv2.CAP_PROP_POS_FRAMES, int(cap.get(cv2.CAP_PROP_FRAME_COUNT) * 0.5))
print(ret)
在打开捕获之前和之后,打开捕获以查看会发生什么(由于某种原因此函数不会引发错误)。如果设置不成功,cap.set
将返回0或-1(不记得了)。