在DirectShow框架下,多媒体数据以媒体样本为单位在滤镜之间流动。一个特定应用程序的滤镜图中,相邻滤镜的引脚之间流动的媒体样本类型一般不同。因此,传输两端需要选用合理滤镜图,确保服务器端传出的媒体样本能被客户端正确播放。
程序实现中,传输两端的滤镜图如图5所示。服务器采用摄像头滤镜捕获视频数据,向后传送,经过编码器滤镜压缩,传到MyRTPRenderer滤镜,并由他负责网络发送;在客户端,MyRTPSource滤镜收到MyRTPRenderer发来的数据,经过解码器滤镜解压缩后显示到屏幕渲染滤镜。服务器的编码器和客户端的解码器是配套的,保证服务器传输的媒体样本能被客户端正确解压播放。从客户端来看,网络对于用户透明,就相当于是一个远程摄像头捕捉、压缩、解压、播放的过程。