在OpenCV中设置框架pos无效

时间:2018-08-15 14:03:05

标签: python opencv

我正在尝试将帧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

    ...

1 个答案:

答案 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(不记得了)。