python读取调用摄像头并将读取视频写入视频文件

部分情况下,我们利用python调取摄像头后,想要把录制的视频读入文件中保存起来,那么应该怎么做呢,具体请看代码:

import cv2
import os



cap = cv2.VideoCapture(0) #此处调用摄像头,默认调用编码为零的摄像头
flag,img= cap.read()

out_pic_src = '...../../b.avi'#定义文件路径及文件名
x = 640
y = 480
frame = np.zeros((x,y))#定义帧高及帧宽。
fourcc = cv2.VideoWriter_fourcc(*"XVID") #定义视频解码器
out = cv2.VideoWriter(out_pic_src, fourcc, 18.0, np.shape(frame))

#定义输入流,18.0代表视频播放速率,最后一个参数表示写入帧的大小。

#cv2.VideoWriter_fourcc('I', '4', '2', '0'),该参数是YUV编码类型,文件名后缀为.avi
#cv2.VideoWriter_fourcc('P', 'I', 'M', 'I'),该参数是MPEG-1编码类型,文件名后缀为.avi 
#cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')/(*'XVID'),该参数是MPEG-4编码类型,文件名后缀为.avi 
#cv2.VideoWriter_fourcc('T', 'H', 'E', 'O'),该参数是Ogg Vorbis,文件名后缀为.ogv 
#cv2.VideoWriter_fourcc('F', 'L', 'V', '1'),该参数是Flash视频,文件名后缀为.flv


if flag is not True:
    print('camera error')
while True:
    flag,img= cap.read()
    
    img = cv2.resize(img,(x,y))#一定要记得对获取帧进行尺寸变换,等于定义的写入帧的尺寸
    out.write(img)
    cv2.imshow('video',img)
     
    if cv2.waitKey(33) == 27:
            break
cv2.destroyAllWindows() 


      
    

这样我们就实现了对实时视频的写入。

发布了36 篇原创文章 · 获赞 4 · 访问量 8047

猜你喜欢

转载自blog.csdn.net/qq_41368074/article/details/104757101