基于python opencv-python 的录制并保存USB摄像头视频(无声版)

1.前期:

在上一次,我写的一篇博客“Python下使用OpenCV库读取USB摄像头的画面”
里介绍了,如何简单在Python 环境下,利用OpenCV库,来实现USB摄像头的读取实时画面,本篇介绍的是:将实时画面保存为视频格式,在CV2里拍摄是没有声音的,后期会考虑添加音频以及录制屏幕。

2.语法介绍:

(1)会用到如下的三条语句

fourcc = cv2.VideoWriter_fourcc(*‘flv1’)
out = cv2.VideoWriter(‘output.flv’, fourcc, 25, (640, 480))
out.write(frame)

(2)cv2.VideoWriter_fourcc()函数

fourcc = cv2.VideoWriter_fourcc(*‘flv1’)
功能:指定解码的方式
可以是 *‘mp4v’ *‘flv1’ *‘XVID’ 分别对应的是 .mp4 .flv .avi的解码方式,需要注意的是,一定要保证解码方式和后缀名的对应。

(3)cv2.VideoWriter() 函数

out = cv2.VideoWriter(‘output.flv’, fourcc, 25, (640, 480))
功能:设置后缀名和视频信息
其中的参数如下:
1.‘output.flv’: 输出的文件名及后缀格式
2.fourcc:也就是解码方式,利用上面的VideoWriter_fourcc()函数获得
3.‘25’:FPS 帧率
4.(640, 480):视频大小

(4)out.write(frame)函数

对视频进行写操作

3.具体事例

下面例子,直接运行,开始录制,当按“q”键时(英文输入法下),结束录制,保存的视频文件会在当前路径找到。


"""
    使用python实现:读取USB摄像头的画面
"""
# 导入CV2模块
import cv2

def read_usb_capture():
    # 选择摄像头的编号
    cap = cv2.VideoCapture(0)
    # 添加这句是可以用鼠标拖动弹出的窗体
    cv2.namedWindow('real_img', cv2.WINDOW_NORMAL)
    # .flv 格式 , 25为 FPS 帧率, (640,480)为大小
    fourcc = cv2.VideoWriter_fourcc(*'flv1')
    out = cv2.VideoWriter('output.flv', fourcc, 25, (640, 480))

    # # .mp4格式 , 25为 FPS 帧率, (640,480)为大小
    # fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    # out = cv2.VideoWriter('output.mp4, fourcc, 25, (640, 480))

    # # .avi格式 , 25为 FPS 帧率, (640,480)为大小
    # fourcc = cv2.VideoWriter_fourcc(*'XVID')
    # out = cv2.VideoWriter('output.avi, fourcc, 25, (640, 480))

    while(cap.isOpened()):
        # 读取摄像头的画面
        ret, frame = cap.read()

        # 进行写操作
        out.write(frame)
        # 真实图
        cv2.imshow('real_img', frame)
        # 按下'q'就退出
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    # 释放画面
    cap.release()
    cv2.destroyAllWindows()
if __name__ == '__main__':
    read_usb_capture()

注:

可以更改下面的键盘码变为27, 使得按‘esc’结束

if cv2.waitKey(1) & 0xFF == 27:
            break

时间:2020/3/9 张一根

你可能感兴趣的:(基于python opencv-python 的录制并保存USB摄像头视频(无声版))