基于组件的远程监控系统的快速开发
2003-11-6初稿,lucky2all@gmail.com
基于DirectShow RTP技术,可以简化视频流的采集、压缩、网络传输、解码和渲染。多路视频切换显示部分可采用可复用的ActiveX控件,简化监控端的开发。具体技术可参见Microsoft DirectX, ATL帮助文档,RTP、RTCP RFC文档。
1. 数据源(采集端)
数据采集包含以下几个部分:
标准采集设备(standerd capture device):无需特殊开发库支持;
压缩过滤器(encode filter):现有成熟压缩算法封装;
RTP发送打包过滤器(rtp sph for the special encoder):需要与采用的压缩算法相对应;
RTP Render Filter:指定监控端IP及端口。
连接方式及数据流向参见下图(采用Intel Architecture Lab演示图)
2. 播放器(监控端)
播放器由以下几部分组成:
RTP Source Filter:配置数据源IP及有关网络传输信息;
RTP Demux Filter 解包过滤器;
RTP RPH: 特定算法支持的收包负载处理器;
解码器Filter: 与数据采集端压缩方式相对应;
渲染: 播放视频流,要与显示模式匹配。
数据流向参见下图:
3. 多路可切换显示界面组件
多路视频切换比较复杂,故封装为单独控件供UI调用。本控件可实现任意路视频的切换显示(变换某路视频显示窗口的大小)。
存在问题:
1.SPH,RPH的开发,现有支持的Codecs方式较少;
2.采用压缩卡时,需要为之单独开发相关组件。
http://www.zhangjiang.cn/bbs/forum.asp?boardid=270&Coding=10101010000
RTP RTCP 可参考 rfc1889