# 播放视频vc = cv2VideoCapturejingmp4fps = vcgetcv2CAP_PROP_FPSsize = vcgetcv2CAP_PROP_FRAME_HEIGHT vcgetcv2CAP_PROP_FRAME_WIDTHprintfpsprintsizesuccessframe = vcreadwhile success cv2imshowmnfra
从代码上看,似乎没有明显的问题。但是,在处理视频帧时,你需要在每个循环迭代中添加一个延迟,以便能够按照视频的帧率播放视频。你可以使用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()应该在循环外调用,以确保在播放完毕后释放视频资源。
希望这可以帮助到你!
原文地址: https://www.cveoy.top/t/topic/jdc6 著作权归作者所有。请勿转载和采集!