今天在项目中发现进行视频压缩发送的时候出现问题。
在windows系统中,常用的编码器压缩比,程序使用M263编码
0x64697663,1684633187,Cinepak Codec by Radius 76032 >> 1860
0x32335649,842225225,Intel Indeo(R) Video R3.2 76032 >> 475
0x56555949,1448433993,Intel IYUV codec 76032 >> 38016 放弃这个,压缩比太低
0x4356534d,1129730893,Microsoft Video 1 76032 >> 3202
0x3336324d,859189837,Microsoft H.263 Video Codec 76032 >> 663 对分辩率有要求
0x33564d57,861293911,Microsoft Windows Media Video 9 76032 >> 196
0x3234504d,842289229,Microsoft MPEG-4 Video Codec V2 76032 >> 349
M263只支持176*144 352*288 (352*288 24彩的试验只支持biPlanes = 1)
大家可以看一下 举例 H263方式 0x3336324d 反应到acsii码中为 'M263'
对于
HIC m_hIC;
COMPVARS m_cv;
m_cv.fccHandler=859189837; //H263
m_hIC=ICOpen(ICTYPE_VIDEO,m_cv.fccHandler,ICMODE_COMPRESS|ICMODE_DECOMPRESS);
针对windows自带的H263压缩方式来说,只能压缩 176*144分辨率的图片。但是最新的一些摄像头采集模式没有这个格式,这样就导致了,采集出来的数据不能使用H263的方式进行压缩解编码。
我的解决办法是使用 320*240的采集方式,但是人工将分辨率调整为176*144再进行压缩发送,相关代码如下。