把每一帧写入视频文件 output.avi 中,可是只有 6k ,他是不是不支持连续写入,他只保存一帧??(自己想实现写一个程序,传入两个视频0、1,然后他们合成一个大尺寸的视频2,然后2的左边是0的内容,右边是1的内容,同步播放。现在退而求其次,我先 提某视频的每一帧 ,合成图片集合,最后将这图片集合依次保存成视频,但是每次视频都是只有6K,是不是覆盖了?只保存最后一帧???大神们有好的实现方案欢迎指导。)
代码如下,新手,可能不太规范,还望指点(望指点更好的设计方案):
#coding:utf-8
import os
import cv2
import numpy as np
import time
from PIL import Image
cap = cv2.VideoCapture('E:\\00.mp4') #是对的,没问题的
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (768,432)) #视频的每一帧高768 宽432
frames=[] #保存每一帧的图片集合
while(cap.isOpened()):
ret,frame=cap.read()#略过判断,实践表明无影响
frames.append(frame)
if cv2.waitKey(2)==27:
break
#frames=array(frames)
for frame in frames:
out.write(frame) #把每一帧写入视频文件 output.avi 中,可是只有 6k ,他是不是不支持连续写入,他只保存一帧??
# 释放窗口
cap.release()
out.release()
cv2.destroyAllWindows()