小编KRH*_*KRH的帖子

在 Python 中为 OpenCV 视频对象指定压缩质量

我必须使用包含在各个目录中的大量 jpeg 图像创建低分辨率 AVI 视频。我有将近一百个目录,每个目录可能包含数千个图像。

为了自动化这个过程,我使用 OpenCV 编写了一个 python 脚本来创建一个视频对象,从给定目录加载每个图像,并将每个图像写入该目录的特定视频文件。所有这些都很好用。我的问题是如何控制视频对象的压缩质量。

VideoWriter 模块接受 5 个参数。第二个参数“fourcc”设置压缩代码。

cv2.VideoWriter.open(文件名,fourcc,fps,frameSize[,isColor])

我们可以使用“四字符代码”(即fourcc)在cv2.VideoWriter 中指定压缩代码。

Fourcc = cv2.cv.CV_FOURCC('M','S','V','C') #Microspoft Video 1

这种方法有效,只是视频对象的压缩质量始终设置为最大值。

如果我们让fourcc = -1,则会打开一个Windows 视频压缩对话框,允许用户选择视频压缩并在0 到100 之间设置压缩质量(或时间质量比)。

此 Windows 视频压缩对话框的屏幕截图

每个视频必须是 AVI,并且必须满足特定的文件大小要求。如果使用最大压缩质量,则视频文件太大。然而,要求用户为每个视频选择视频压缩和压缩质量会破坏脚本的自动化。

那么,如何在不使用 Windows 视频压缩对话框的情况下指定视频对象的压缩质量?

我的整个代码发布在下面

import cv2, os

Workspace = "J:\jpg to AVI test"
year = "2014"
file_extension = "avi"
Image_file_dir = Workspace + "\\12 - ECD-BONNETT CREEK Y INT (" + year + ")"
print Image_file_dir
Image_file_list = os.listdir(Image_file_dir)
print "Image_file_list: " + str(Image_file_list)

img_cnt = 0

for …
Run Code Online (Sandbox Code Playgroud)

python compression opencv avi fourcc

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

avi ×1

compression ×1

fourcc ×1

opencv ×1

python ×1