视频会议设备维修传输控制、协议处理模块
视频流传输与传统的TCP/IP网络的数据传输有明显的区别,主要表现在:传统的数据传输对传输延时和传输抖动没有严格的要求,但是有严格的差错控制和错误重传机制。而视频流要求传输具有实时性,对同步要求较高,并且对传输延时和抖动非常敏感,但在一定的情况下可以允许分组丢失,即可以接受一定程度的传输误码。并且流媒体服务需要满足广播和多播应用,同时应具有根据网络的实时可用传输带宽自适应地调整视频的传输质量的能力。
基于上述显著的不同网络应用要求,若要在Internet上面提供流媒体数据服务,则需要使用RTP/RTCP(Real-time
Transport Protocol/Real-time Transport Control
Protocol)协议。RTP协议在一对一或者一对多的传输情况下面工作,提供数据包传输过程中的时间信息和实现流数据同步;RTCP协议与RTP协议一起工作,提供网络传输中的流量控制和拥塞控制。
网络拥塞控制是传输控制协议提供流媒体服务时需要处理的核心问题。解决的基本思路是:估计网络的可用带宽,然后根据网络当前的吞吐量调整终端的数据输出速率,使得终端的码率能自适应地随着网络传输条件的变化而变化。估计网络可用带宽主要基于RTT(网络传输往返时间)和丢包率进行估计[7];对速率的调整,常采用AIMD(Additive
Incresae,Multiplication
Decrease)算法(加法增,乘法减)[8]算法进行拥塞控制。
给出了视频网络传输中所使用的传输控制协议。
其中,对应用程序生成流媒体数据进行打包处理,并进行RTP协议数据封装;将RTP协议数据封装在UDP的消息字段,然后进行IP数据封装;经过传输网络完成数据包的发送。RTP协议数据包的包头部分含有数据包的载荷类型(Payload
Type)、序列号(Sequence
Number)、时间戳(Timestamp)和同步标识符(Synchronization
Source Identifier)等。利用RTP包头的信息,采取适当缓存的工作方式,可以做到视频流的正确解码播放与回放。RTCP数据包对流媒体数据不进行封装,它只封装发送端或者接收端的发送、接收统计信息(比如传输延时、传输丢包率等)。利用RTCP的反馈信息,在发送端能够估计出网络的传输带宽,实时地根据网络的传输条件自适应地调整编码器的编码速率,使得在网络传输带宽波动的情况下可以提供稳定的视频流服务。
在需要提供流媒体的点对点或者一对多、多对多的通信业务时,还需要使用与具体的通信网络环境相对应的传输控制协议。如在ISDN环境下提供视频会议设备维修的H.320协议,在PSTN环境下提供视频会议设备维修的H.324协议,在局域网环境下提供视频会议设备维修的H.323。支持的速率有64k、192k、384k、768k等。
在我们搭建的视频网络传输平台上面,传输控制、协议处理模块的硬件平台以MPC860为核心,结合嵌入式的LINUX系统开发,在用户程序平面设计基于RTP/RTCP的应用程序,通过操作系统提供的传输层UDP协议,利用LINUX的Socket网络编程接口[9],实现实时视频的网络传输。
|