把每一幀寫入視頻檔案 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()
uj5u.com熱心網友回復:
將*'XVID'換為'X', 'V', 'I', 'D',并注意每個檔案是否存在。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/122830.html
