2003-2005年前后开发directShow的程序,只是知道照猫画虎,根据一个例子写另外一个filter,当时写了好多独立的com组件,H.261,H.263,H.264,Mpeg4等视频编解码的Filter,音频方面,G.711,G.729,G.723等Filter。当时把jrtplib对应的也写成了jrtpSendVideo,jrtpRecvVideo,jrtpSendAudio,jrtpRecvAudio等Filter。在进行H.323系统开发的时候,也曾使用Graphedit将其链接起来,进行过处理。并成功开发了H.323项目。后来独立写过处理这些Filter的Demo程序,也就是我在以前提到过的MediaSever程序。
后来开发sip程序,发现这种使用方式,虽然每个模块完全独立,但是在使用过程中,因为每一个组件都可以独立注册,反注册,一旦有人反注册了自己使用的组件,整个应用程序便不能正常工作了。于是就想着把这部分重新整理下。后来因为忙,当然也可以说是懒,就放下了。最近,想起来要整理下这些东西了。
刚刚使用H.264,jrtp做了一个demo程序,实现了对视频的采集和编解码以及rtp收发。这个将所有的组件放在一个模块里面实现。保证不会因别人反注册某个组件影响我们的进程工作。