import cv2
import os
# 创建VideoCapture对象捕获摄像头
address = 'rtsp://admin:rt123456@192.163.1.250:554/h264/ch1/main/av_stream'
'''
批量提取视频的所有帧
'''
#存放图片的地址
videos_save_path = 'data/images/video2/video'
#创建目录保存抽出的帧
os.mkdir(videos_save_path)
#获取保存图片的完整路径,每个视频的图片帧存在以视频名为文件名的文件夹中
each_video_save_full_path = os.path.join(videos_save_path) + '/'
#读入视频
cap = cv2.VideoCapture(address)
# 输出摄像头帧数
fps = cap.get(cv2.CAP_PROP_FPS)
print(fps)
frame_count = 1
success = True
while (success):
#提取视频帧,success为是否成功获取视频帧(true/false),第二个返回值为返回的视频帧
success, frame = cap.read()
# 如果想间隔比如15帧抽一张,可以在下方if里加条件:frame_count % 15 == 0
if success == True and frame_count % 15 == 0:
#显示
cv2.namedWindow('Video', cv2.WINDOW_NORMAL)
cv2.imshow('Video', frame)
if cv2.waitKey() == ord('q'):
break
#存储视频帧,%04d则每张图片以4位数命名,比如0001.jpg
cv2.imwrite(each_video_save_full_path + "%04d.jpg" % frame_count, frame)
frame_count += 1
# 释放摄像头
cap.release()
# 销毁窗口
cv2.destroyAllWindows()
OpenCV-python(cv2) 实时视频抽帧
于 2024-01-30 11:27:36 首次发布