Windows OpenCV跨平台视频

Windows OpenCV跨平台视频,windows,linux,video,cross-platform,opencv,Windows,Linux,Video,Cross Platform,Opencv,我正在Linux机器上使用OpenCV编写视频。我想在Windows机器上使用OpenCV阅读相同的视频。我无法使用openCV中提供的标准编解码器来实现这一点 有人能建议我如何在这两个平台上读/写视频吗?我认为问题不在于OpenCV,而在于编解码器,正如你提到的那样。我也不认为OpenCV有编解码器。。。仔细检查是否在Windows下安装了正确的编解码器 您看过OpenCV Wiki上的文档了吗?OpenCV Wiki直接解决了这个问题。具体请参见标题“兼容性列表” 不幸的是,所有三种平台(L

我正在Linux机器上使用OpenCV编写视频。我想在Windows机器上使用OpenCV阅读相同的视频。我无法使用openCV中提供的标准编解码器来实现这一点


有人能建议我如何在这两个平台上读/写视频吗?

我认为问题不在于OpenCV,而在于编解码器,正如你提到的那样。我也不认为OpenCV有编解码器。。。仔细检查是否在Windows下安装了正确的编解码器


您看过OpenCV Wiki上的文档了吗?

OpenCV Wiki直接解决了这个问题。具体请参见标题“兼容性列表”

不幸的是,所有三种平台(Linux、Windows和OSX)上支持的唯一编解码器是“DIB”、“I420”和“IYUV”,它们都是未压缩的视频编解码器,因此文件大小非常大

wiki还列出了一些可以在任何两个平台上使用但不能在所有三个平台上使用的编解码器

如果您决定使用未压缩的视频文件,则可以在windows计算机上使用类似的程序将其转换为文件大小较小的文件


编辑:仅供参考,在Windows上,我以运动JPEG格式输出OpenCV,然后在directstream复制模式下使用VirtualDub重新保存该文件,以纠正电影索引中的错误。默认情况下,这些M-JPEG视频文件将在Mac和Windows上播放


如果我试图将视频读入OpenCV,我通常会首先将视频转换为Cinepak(使用虚拟配音、quicktime等),然后将其输入OpenCV。我使用Cinepak是因为出于某种原因,Cinepak编码器似乎比MJPEG编码器更普遍。

如何让opencv能够输出运动JPEG?我的崩溃了,说编解码器不可用。这是我使用的相关代码行。我使用的是Windows XP
exp->Vid=cvCreateVideoWriter(电影文件名,CV_FOURCC('M','J','P','G'),30,cvSize(xdim,ydim),0)我认为(尽管我不是肯定的)MJPEG编码器默认带有OpenCV。我一直认为是OpenCV的MJPEG实现弄乱了索引文件,这就是为什么在任何其他视频播放器读取它之前,我必须使用VirtualDub进行第二次传递和直接流复制。