代码语言:javascript复制
import cv2
cameraCapture=cv2.VideoCapture('C:/Users/xpp/Desktop/2021091.avi')#读取视频
fps=24#对帧速率进行赋值
size=(int(cameraCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(cameraCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))#获取视频帧的大小
fourcc=cv2.VideoWriter_fourcc('X','V','I','D')#定义视频文件格式
out=cv2.VideoWriter('C:/Users/xpp/Desktop/output.avi',fourcc,fps,size)#创建视频文件写入对象
while(cameraCapture.isOpened()):
ret, frame=cameraCapture.read()
if ret==True:
frame=cv2.flip(frame,1)#帧图像翻转
out.write(frame)#写入文件
cv2.imshow('VideoCapture',frame)
if cv2.waitKey(1)&0xFF==ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
算法:视频存储是读取视频写入存储文件的过程。其中,VideoWriter_fourcc类用于定义视频文件的写入格式,其参数有多种格式可选。
- VideoWriter_fourcc('I','4','2','0'):该选项为一个未压缩的YUV颜色编码类型,是4:2:0色度子采样。该编码有着很好的兼容性,但会产生较大的文件,文件扩展名为“.avi”。
- VideoWriter_fourcc('P','I','M','1'):该选项为MPEG-1编码类型,文件扩展名为“.mpeg”。
- VideoWriter_fourcc('X','V','I','D'):该选项为MPEG-4编码类型,如果希望得到的视频大小为平均值,推荐使用该选项。文件扩展名为“.mp4”。
- VideoWriter_fourcc('T','H','E','O'):该选项为Ogg Vorbis编码类型,文件扩展名为“.ogv”。
- VideoWriter_fourcc('F','L','V','I'):该选项为Flash编码类型,文件扩展名为“.flv”。
注意:定义好输出视频的格式后,用VideoWriter类进行文件写入时,指定帧速率和帧大小,从另一个视频文件复制视频帧,这些属性通过VideoCapture类的get()函数得到。