从代码上看,似乎没有明显的问题。但是,在处理视频帧时,你需要在每个循环迭代中添加一个延迟,以便能够按照视频的帧率播放视频。你可以使用time.sleep()函数来添加延迟。

以下是修复后的代码示例:

import cv2
import time

# 播放视频
vc = cv2.VideoCapture("jing.mp4")
fps = vc.get(cv2.CAP_PROP_FPS)
size = (int(vc.get(cv2.CAP_PROP_FRAME_HEIGHT)),
        int(vc.get(cv2.CAP_PROP_FRAME_WIDTH)))
print(fps)
print(size)

success, frame = vc.read()
while success:
    cv2.imshow("mn", frame)
    success, frame = vc.read()
    key = cv2.waitKey(int(1000/fps))  # 延迟,按照帧率播放视频
    if key == 27:
        break

vc.release()
cv2.destroyAllWindows()

这段代码添加了一个延迟,确保按照视频的帧率进行播放。另外,vc.release()应该在循环外调用,以确保在播放完毕后释放视频资源。

希望这可以帮助到你!

# 播放视频vc = cv2VideoCapturejingmp4fps = vcgetcv2CAP_PROP_FPSsize = vcgetcv2CAP_PROP_FRAME_HEIGHT vcgetcv2CAP_PROP_FRAME_WIDTHprintfpsprintsizesuccessframe = vcreadwhile success cv2imshowmnfra

原文地址: https://www.cveoy.top/t/topic/jdc6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录