AVI编码方式及OpenCV读取AVI文件-解决opencv无法读AVI视频的问题

转帖地址:http://www.360doc.com/content/10/1228/10/2036337_81939525.shtml

 

 

以AVI结尾的视频文件有以下几种:

 

1、非压缩格式的AVI文件(或是MPEG1格式的),这个不需要装任何插件就可以播放了。

 

2、DIVX格式的AVI,这也是MPEG4的一种,安装最新的DIVX 5.21(目前最新版),就可以播放了,不过缺点是在播放之初会有一个DIVX的标记显示几秒。

下载地址: http://gupin.fangdown.com/soft/138.htm

 

3、XVID格式的AVI,这也是MPEG4的一种,可以说是从DIVX变种而来的,据说是XVID原作者不满意DIVX商业化收费的行为,而开发的一个全Free的MPEG4编码核心,安装最新的XVID(1.02版)就可以播放。

下载地址: http://gupin.fangdown.com/soft/45.htm

 

4、ffdshow MPEG-4格式的AVI,现在越来越多的AVI都采用ffdshow MPEG-4来,集成了DIVX与XVID的一种东西(好象还支持WMV与AC3音频),因此如果你装了ffdshow MPEG-4,就可以不用装XVID与DIVX等编码核心了。另外ffdshow MPEG-4也提供丰富的滤镜功能比如增亮,增加锐度等,最新的ffdshow MPEG-4 Video Decoder 20041012。

下载地址:http://gupin.fangdown.com/soft/383.htm

 

5、WMV9格式的AVI,微软自己推出的MPEG4编码标准,使用Windows Media 9.0就可以播放,如果没有的话,也可以下载一个Windows Media Encoder 9.0,使你的系统支持WMV 9.0的格式。

下载地址:http://www.ogg.cn/Software/view-software-62.html

 

6、VP6格式的AVI,也是一种MPEG4的编码格式,On2 Technologies开发的编码器,VP6号称在同等码率下,视频质量超过了Windows Media 9、Real 9和H.264。VP6视频编码器目前被中国的EVD所采用。说真的,现在用这个不多。最新版本是VP6 vfw Codec 6.2.6.0。

下载地址:http://www.ogg.cn/Software/view-software-56.html

 

7、其它格式的AVI,现在看来还有一些如MKV、OGG等格式的视频编码文件也会使用AVI的结尾名。

 

其实AVI只是一个外壳。里面的东西可不一样的!

 

问题:为什么我的电脑支持AVI或者能够播出AVI,但为什么使用cvCreateFileCapture函数总返回NULL呢?

答案:尽管是AVI文件,但也可能使用了某种codec,例如:MJPEG Decompressor。 需要把它转换OpenCV支持的AVI文件. OpenCV支持的AVI如下:

Container

FourCC

Name

Description

 

AVI

'DIB '

RGB(A)

Uncompressed RGB, 24 or 32 bit

 

AVI

'I420'

RAW I420

Uncompressed YUV, 4:2:0 chroma subsampled

 

AVI

'IYUV'

RAW I420

identical to I420

 

 

 

转换格式解决方法:

解决方法1:下载mencoder.exe, 在window命令行下使用:

mencoder in.avi -ovc raw -vf format=i420 -o out.avi

(注:我测试了这个方法,没有成功,原因不详,希望有朋友们能够详细讨论一下。)

 

 

解决方法2:下载VitualDub, 我使用1.9.4版本

a. File->Open Video File;

b. Video->Filters->Add->Convert format; 选择4:2:0 Planar YCbCr (YV12)或者 32-Bit RGB。

c. Save as AVI. 保存完毕。

(注:成功使用。)

 

你可能感兴趣的:(OpenCV)