2015-01-14 78 views
1

我遇到了許多其他人使用openCV遇到的同樣的問題,因爲當我使用下面的代碼時,openCV無法寫入視頻文件,我使用的是openCV 2.4.10,蟒蛇2.7OpenCV VideoWriter自動編解碼器選擇

out = cv2.VideoWriter('C:\motion\output.avi',cv2.cv.CV_FOURCC('X','V','I','D'), 20, (640,480),True) 

一個可行的解決方法是使用-1,在程序運行時給出了編碼選項的彈出窗口。當選擇其中之一,創建了視頻來取代第二個參數。

問題是,我將它添加到運動檢測軟件中,它每次檢測到運動時都會寫入15秒的時間戳文件,顯然s手動選擇編解碼器不適用於此方案。

有沒有辦法指導openCV使用VideoWriter或其他方法選擇這些編解碼器之一?

事情我已經嘗試: 複製opencv_ffmpeg.dll從FOURCC

+0

請注意,彈出窗口是一個vfw功能,並且只能在windows上工作。 – berak

回答

0

蟒蛇文件夾並選擇FMP4編解碼器雖然我沒有找到一個替代的方式來選擇可用的編解碼器,我沒有找到答案的根本openCV的問題找不到它自己的編解碼器(這很好,因爲windows編解碼器生成的文件比fmp4編解碼器生成的文件大50倍)。

訪問編解碼器,將文件從opencv \ sources \ 3rdparty \ ffmpeg文件夾複製到您的python27文件夾,然後將名稱從opencv_ffmpeg.dll更改爲opencv_ffmpegXYZ.dll,其中XYZ =您的openCV版本。例如,我有openCV 2.4.10,所以我將其更改爲opencv_ffmpg2410.dll。在這個問題上可以找到更多的例子。

OpenCV 2.4 VideoCapture not working on Windows

+0

框架的大小必須是640x480以匹配'cv2.VideoWriter()'中指定的尺寸。 – karlphillip