【发布时间】:2021-01-02 15:09:30
【问题描述】:
在开始修改视频中的帧之前,我正在尝试获取一个非常简单的复制视频的示例。但是,与 2.8 mb 的barriers.avi 视频相比,output.avi 视频是 5kb 的损坏文件。我使用的是 OpenCV 4.2.0 版和 Python 3.7.7 版。
代码如下:
import cv2
input = cv2.VideoCapture("../video/barriers.avi")
height = int(input.get(cv2.CAP_PROP_FRAME_HEIGHT))
width = int(input.get(cv2.CAP_PROP_FRAME_WIDTH))
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
out = cv2.VideoWriter('../video/output5.avi', fourcc, 30, (height, width), isColor=True)
while input.isOpened():
# get validity boolean and current frame
ret, frame = input.read()
# if valid tag is false, loop back to start
if not ret:
break
else:
out.write(frame)
input.release()
out.release()
如果我打印框架形状,我会得到:
(480, 640, 3)
注意:其他堆栈溢出解决方案都没有帮助。
编辑:如果使用 cv2.imshow(),所有帧都可以正常显示。
【问题讨论】:
标签: python opencv save video-processing