OpenCV VideoWriter自动编解码器选择

时间:2015-01-14 17:18:54

标签: python opencv

我遇到了很多其他人在使用openCV时遇到的问题,因为当我使用下面的代码时,openCV无法编写视频文件。我使用的是openCV 2.4.10和python 2.7

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

一个可行的解决方法是用-1替换第二个参数,这会在程序运行时给出一个带编码选项的弹出窗口。选择其中一个时,将创建视频。

问题是,我将它添加到运动检测软件中,该软件每次检测到运动时都会写入15秒的带时间戳文件,显然手动选择编解码器不适用于此方案。

有没有办法指导openCV使用VideoWriter或其他方法选择其中一个编解码器?

我已经尝试过的事情: 将opencv_ffmpeg.dll复制到python文件夹并从FOURCC

中选择FMP4编解码器

1 个答案:

答案 0 :(得分:0)

虽然我没有找到另一种方法来选择可用的编解码器,但我确实找到了openCV的基本问题的答案,而不是找到它自己的编解码器(这很好,因为windows编解码器生成的文件比生成的文件大50倍通过fmp4编解码器)。

访问编解码器,将文件从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