我必须使用包含在各个目录中的大量jpeg图像来创建低分辨率AVI视频 . 我有近一百个目录,每个目录可能包含数千个图像 .
为了自动执行此过程,我使用OpenCV编写了一个python脚本来创建视频对象,从给定目录加载每个图像,并将每个图像写入该目录的特定视频文件 . 这一切都很棒 . 我的问题是如何控制视频对象的压缩质量 .
VideoWriter模块接受5个参数 . 第二个参数'fourcc'设置压缩代码 .
cv2.VideoWriter.open(filename,fourcc,fps,frameSize [,isColor])
我们可以使用“四字符代码”(即fourcc)在cv2.VideoWriter中指定压缩代码 .
fourcc = cv2.cv.CV_FOURCC('M','S','V','C')#Microsoftpoft Video 1
此方法有效,但视频对象的压缩质量始终设置为最大值 .
如果我们让fourcc = -1,则会打开一个Windows视频压缩对话框,允许用户选择视频压缩并将压缩质量(或时间质量比)设置在0到100之间 .
每个视频必须是AVI,并且必须满足特定的文件大小要求 . 如果使用最大压缩质量,则视频文件太大 . 但是,要求用户为每个视频选择视频压缩和压缩质量会使脚本自动化失败 .
那么,如何在不使用Windows视频压缩对话框的情况下指定视频对象的压缩质量?
我的全部代码发布在下面
import cv2, os
Workspace = "J:\jpg to