Python3播放本地视频测试笔记——使用OpenCV库
import math
import cv2
cap = cv2.VideoCapture('test.mp4')
isopen = cap.isOpened()
if not isopen:
print("Err: Video is failure. Exiting ...")
total_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT)
fps = cap.get(cv2.CAP_PROP_FPS)
wait = int(1000/fps) if fps else 1
read_frame = 0
while(isopen):
ret, frame = cap.read()
if not ret:
if read_frame < total_frame:
print("Err: Can't receive frame. Exiting ...")
else:
print("Info: Stream is End")
break
read_frame = read_frame + 1
print("frame:"+str(read_frame)+"/"+str(total_frame))
timecode_h = int(read_frame / fps / 60 /60)
timecode_m = int(read_frame / fps / 60)
timecode_s = read_frame / fps % 60
s = math.modf( timecode_s )
timecode_s = int(timecode_s)
timecode_f = int(s[0] * fps)
print("{:0>2d}:{:0>2d}:{:0>2d}.{:0>2d}".format(timecode_h,timecode_m,timecode_s,timecode_f))
cv2.imshow('image', frame)
wk = cv2.waitKey( wait )
keycode = wk & 0xff
if keycode == ord(" "):
cv2.waitKey(0)
if keycode == ord('q'):
print("Info: By user Cancal ...")
break
cap.release()
cv2.destroyAllWindows()