OpenCV VideoWriter 自动编解码器选择

OpenCV VideoWriter Automatic Codec selection

我遇到了很多其他人在使用 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,当程序为 运行 时,它会弹出一个带有编码选项的 window。当其中之一被 selected 时,视频就被创建了。

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

有没有办法使用 VideoWriter 或其他方法将 openCV 定向到 select 这些编解码器之一?

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

selecting FMP4 编解码器

虽然我没有找到 select 可用编解码器的替代方法,但我确实找到了 openCV 找不到自己的编解码器的根本问题的答案(这很好,因为 windows编解码器生成的文件比 fmp4 编解码器生成的文件大 50 倍)。

访问编解码器,将文件从 opencv\sourcesrdparty\ffmpeg 文件夹复制到您的 python27 文件夹,然后将名称从 opencv_ffmpeg.dll 更改为 opencv_ffmpegXYZ.dll,其中 XYZ = 您的版本的开放简历。例如,我有 openCV 2.4.10,所以我将其更改为 opencv_ffmpg2410.dll。可以在这个问题上找到更多示例。

OpenCV 2.4 VideoCapture not working on Windows