OpenCV Wiki 直接解决了这个问题。请参阅http://opencv.willowgarage.com/wiki/VideoCodecs,特别是标题“兼容性列表”。
不幸的是,所有三个平台(Linux、Windows 和 OSX)都支持的唯一编解码器是“DIB”、“I420”和“IYUV”,它们都是未压缩的视频编解码器,因此文件大小非常大。
wiki 还列出了一些可以在任何两个平台上工作但不能在所有三个平台上尝试的编解码器。
如果您决定使用未压缩的视频文件,您可以使用类似VirtualDub的程序将它们转换为文件大小较小的文件。
编辑:仅供参考,在 Windows 上,我在 Motion-JPEG 中有 OpenCV 输出,然后我在直接流复制模式下使用 VirtualDub 来重新保存文件,该文件纠正了电影索引的错误。然后这些 M-JPEG 视频文件默认在 Mac 和 Windows 上播放。
如果我想将视频读入OpenCV,我通常会首先将我的视频转换为 Cinepak(使用虚拟配音、quicktime 等),然后将其输入 OpenCV。我使用 Cinepak 是因为出于某种原因,Cinepak 编码器似乎比 MJPEG 编码器更普遍。