民心工程:mpeg mux filter开发(希望得所有高手的帮助)
(建议长期置顶,方便大家协作)
一直以来,网络上缺少一个免费的开源的mpeg mux filter,我找了很久都没找到。所以我决定开发一个这样的filter,IceageMpegMux,设想是:
(1)mpeg版本采用mpeg2.
(2)为了简化,input pin固定为两个,一个Audio Input,一个Video Input.
(3)filter的类从CBaseFiler继承.命名为CIceageMpegMuxFilter.
CTransformFilter只支持一个Input pin, 一个Output pin.所以只能从CBaseFilter继承,CIceageMpegMuxFilter的实现类似于CTransformFilter,区别是把CTransformFilter的几个用于进一步派生的纯虚方法实现掉,另外加上类工厂,这样CIceageMpegMuxFilter类就可以直接应用了.
(4)关于mux filter,sample里面没有现成的参考代码,而且是遍寻网络难求.其实现原理不明。我的想法是:Audio Sample和Video Sample进入Mux Filter,再此经过缓冲处理,变成一个一个的System Sample输出.
(5)关于Audio Sample和Video Sample如何合成System Sample的问题,基本与DirectShow无关,该部分技术我已经具备。
现在第一步需要做的是搭建一个mux filter的框架,即初步实现一个2转1的filter.
该filter能够接收一路Video,一路Audio,输出一路System流.mux filter里面什么也不要做,仅仅把sample传过去。
我想,等到该框架可以正常工作以后,再考虑下一步mpeg合成的问题.