OpenCv中avi视频的读取问题,以及内部格式要求

先写好了文章,网络不稳定,网站的自动保存竟然也没起作用…泪奔…

正题:

做图像处理经常会用Matlab来仿真,验证算法思路,进而用OpenCv来实现交付。

最初用Matlab做仿真,读取avi基本没有问题,有问题的100个视频也内格式工厂搞定。不过转到Opencv后就出现了问题:那些Matlab能读的,Opencv读不了。

这真是恼人。

后来参考了:http://blog.sina.com.cn/s/blog_5728fc490100qq6v.html这篇文章,下载了Xvid解码器,解决了一部分问题。说是一部分问题,是因为,这时候有些视频Opencv可以读了,Matlab回过头来却读不了了…

不过在当时那阶段,这个问题不大。待Opencv代码写好,便开始解决这个问题。

在解决过程中,MediaCoder x64这个软件起到了决定性作用。

先上图片:

00.avib不能读

figure1.Opencv读不了的视频信息(1)

00.avib不能读1

figure2.Opencv读不了的视频信息(2)

可以读

figure3.Opencv读的了的视频信息(1)

可以读2

figure4.Opencv读的了的视频信息(2)

可以读3

figure4.Opencv读的了的视频信息(3)

对比一个“正常”和一个“不正常”的图片,发现几个不一样的地方,其中那个CodeId是嫌疑最大的了。因为按照上面链接博客指示,我电脑中已经安装了Xvid,那么Xvid能被读是肯定的,MJPG不被读,就有理由了。于是用MediaCoder 来转码 :

11

图片中区域1可以看详细信息,转码信息就在区域2,将格式选为Xvid,再转码。用Opencv再试试,果然成功!!

1. 任何单位或个人认为本博的内容可能涉嫌侵犯其合法权益,可以及时的联系我(olenet#126#com),我会立即更正或删除。 2. 欢迎转载,记得贴链接^_^。www.cnblogs.com/OleNet
原文地址:https://www.cnblogs.com/OleNet/p/3075916.html