c# 视频开发中使用VFW功能的编解码的处理思路

本文使用VFW来解决视频过程中的编解码处理.所用的编码格式为XVID.

本人也是第一次处理视频.刚开始时在网上查阅了很多的资料,包括下载了不少C#视频处理的代码,如gowk,及lanmsg3.0 (也是使用的gowk的内核)但是.发觉关于视频编解码时的代码都是不正确的.有的把这部分代码省了.看来作者在调试这一段代码时没有通过.

网上关于视频的处理代码或文章都是delphi或者C++的,同时都是一些介绍性的文章,其中关于核心的解决思路都没有说出来.

在处理编解码时,我们需要约定相同的编码类型,这一点可以使用ICOpen 函数来获取hic.有了hic后,当有数据要处理时,都要使用该hic.同时对于解编码过程中的BITMAPINFO对象,处理的规则,是编码时的BITMAPINFO b1及生成编码后的BITMAPINFO b2,当要解码时,则解码时的顺序正好相反,也就是用b2当输入,b1为输出.而这些基本的思路在网上我却没有找到.最终是通过阅读一段老外的C++代码才理解的.而前面时间就花了我一个星期.

因此对于gowk中的ICM类,我们根本就不需要其派生的二个类,我们需要把编解码子类的功能集成在一个类中,这样就可以共享hic,及BITMAPINFO对象.

真正的函数无非就是ICDecompress,ICSeqCompressFrame这些.都可以在MSDN中查找到.如果想做视频方面的处理,我认为只要理解了思路,都是可以实现的.

你可能感兴趣的:(C++,c,C#,Delphi)