视频处理学习笔记(二)——基于cv2处理视频后并保存

对视频处理后不可避免的要对处理后的结果进行保存,以下是具体实现的代码,其实思路很简单,就是利用cv2.VideoWriter类逐帧写入视频文件。

import cv2
# 通过cv2中的类获取视频流操作对象cap
cap = cv2.VideoCapture(
    "C:\\Users\\ranmaohua\\Desktop\\123.MP4")  # 这里的参数是视频文件的绝对路径
# 调用cv2方法获取cap的视频帧(帧:每秒多少张图片)
fps = cap.get(cv2.CAP_PROP_FPS)
print(fps)
# 获取cap视频流的每帧大小
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
print(size)

# 定义编码格式mpge-4
# 一种视频格式,参数搭配固定,不同的编码格式对应不同的参数
fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', '2')
# 定义视频文件输入对象
outVideo = cv2.VideoWriter(
    "C:\\Users\\ranmaohua\\Desktop\\456.MP4", fourcc, fps, size)#第一个参数是保存视频文件的绝对路径
# 获取视频流打开状态
if cap.isOpened():
    rval, frame = cap.read()
    print('ture')
else:
    rval = False
    print('False')

tot = 1
c = 1
# 循环使用cv2的read()方法读取视频帧
while rval:
    rval, frame = cap.read()
    tot += 1
    print('tot=', tot)
    # 使用VideoWriter类中的write(frame)方法,将图像帧写入视频文件
    outVideo.write(frame)
# 释放窗口
cap.release()
outVideo.release()
cv2.destroyAllWindows()

注意:

cv2.VideoWriter_fourcc('M', 'P', '4', '2')

是定义一种编码格式,其他编码格式的参数可以看看这篇博客

写在最后

本文主体代码来源这篇博客,在复现的基础上进行了简单修改并进行了详细的注释。

你可能感兴趣的:(视频处理)