昨天重装了系统,重装后发现opencv竟然读不出之前科研生成的一些视频文件了,想必是缺少了某种解码器,于是凭着记性去网上搜索曾经装过的解码器,把网上各种主流解码器都安装了一遍后仍旧没能解决问题,在这个问题上基本上整整耗了一个晚上啊,都要抓狂了快。
最终找到了一个叫Xvid的解码器,所有用过的人都说以前opencv读不了视频,装了它之后就行了,但我把它装上之后仍旧没有用诶。
今天早上很早就来到实验室继续想办法解决,在查看了视频的属性后,发现那些不能读取的视频的编码方式叫什么IV50,看上去真是一种非主流的编码方式啊,网上是这么描述这种编码的:
Indeo Video是微软早先视窗系统内建支持的一种视频格式,但是到了Vista和Win7时代,这个格式就默认不支持了。
要是我们没装那些万能解码器包的话,可能就不能播放此类型的影片,比如会提示缺少iv50解码器什么的。其实我们不用去下载什么解码器,这些微软都给我们准备好了,IndeoVideo的解码器都在系统的System32里面,只是没有注册而已。
我们要做的只需要在注册表中添加相应的信息,你可以直接复制下面的保存为XX.reg,然后双击添加到注册表中
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionDrivers32]
"vidc.cvid"="iccvid.dll"
"vidc.iv31"="ir32_32.dll"
"vidc.iv32"="ir32_32.dll"
"vidc.iv41"="ir41_32.ax"
"vidc.iv50"="ir50_32.dll"
问题迎刃而解了。。。。囧大。。。