當我試圖將幀寫入視頻時,我不斷收到斷言錯誤。我得到的錯誤是這樣的:使用OpenCV + Python + Mac編寫視頻
Traceback (most recent call last):
File "VideoMixer.py", line 23, in <module>
cv.WriteFrame(writer, cv.LoadImage(fileName))
cv.error: dst.data == dst0.data
這裏是我的腳本:
import cv
import sys
files = sys.argv[1:]
for f in files:
capture = cv.CaptureFromFile(f)
height = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)
width = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT)
fps = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FPS)
fourcc = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FOURCC)
print fourcc
writer = cv.CreateVideoWriter('ok.mov', int(fourcc),fps,(int(width),int(height)),1)
print writer
for i in range(30):
frame = cv.QueryFrame(capture)
print frame
if frame:
cv.WriteFrame(writer, frame)
保存幀作爲圖像正常工作,所以我知道有沒有錯捕獲。我創作的作家是錯的嗎? '打印fourcc'輸出0.0,但我已經嘗試了許多FOUR_CC值。
謝謝!
非常感謝,但你可以玩out.avi?這個腳本運行良好並生成文件,但當我嘗試播放時,VLC給了我一個錯誤:ps error:can not peek main debug:沒有可以加載匹配「avi」的demux模塊 main debug:TIMER module_need() :303.765 ms - 總計303.765 ms/1 intvls(平均303.765 ms) 主要錯誤:沒有合適的demux模塊用於'file /:///Users/***/Documents/Code/Video/out.avi' – rgbrgb 2011-03-25 06:27:14
I can播放該文件,我在Mac上使用最新的VLC。我會用screencap更新我的答案。 – samplebias 2011-03-25 15:46:24
我還能夠使用[AviDemux](http://avidemux.sourceforge.net/)和Quicktime打開並播放out.avi文件。 – samplebias 2011-03-25 18:28:36