iphone流媒体基于RTP协议系统功能模块开发设计

RTP,RTCP,RTDP协议


R11P(real一time transport protoc01)实时传输协议提供了实时信息的端对端传输业务埘,数据传输结构以及典型的应用是在UDP层上传输RTP包,以利用它的复用和总和检测。RTCP(real—timetransport control protoc01)是RTP的伴随协议,用来进行音频/视频的同步以及其他用途,是一种控制协议o RTSP(real—time transport streaming protoc01)
是一个应用层协议,RTSP提供了一个可供扩展的框架,它的意义在于使得实时流媒体数据的受控和点播变得可能。总的说来,RTSP是一个流媒体表示协议,主要用来控制具有实时特性的数据发送,但它本身并不传输数据,而是必须依赖于下层传输协议所提供的某些服务。

系统功能模块设计


系统分为服务器端和客户端两部分131,在网络传输中,采用SessionManager方式进行R1'P数据传输。利用LIVE555插件,在程序上设计音、视频流和控制信号两条信道。

H.264视频数据的RTP封装格式


RTP数据格式
RTP的每一个数据报都由头部(header)和负载(payload)个部分组成闱,其中iphone开发头部前12个字节的含义是固定的,而负载则可以是音频或者视频数据。RTP数据报的头部格式其中:同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。时戳(Timestamp):占32位,时戳反映了该RTP
报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。

H.264编码的RTP封包
系统采用G.729A音频编解码和H.264编解码圈。将H.264数据流按照RTP包头结构,封装成RTP包以便于数据传输。G.729编码速率为8Kb/s,H.264最多可以使用32个参考帧,这里定制为20帧。时间戳计算的单位由采样频率所代替.这样可以使时间戳单位更为精准,这里的时间戳单位设为1/8 000。相邻两帧之间的时间差,也就是时间戳增量,显而易见是用8000120,那么这个时间戳增量就为400。对于iphone开发 流媒体音频如果采用频率是8 000 Hz,那么时间戳单位就是1/8000,这个1就是指1 s,即每个声波幅度样本的时间间隔是1/8000 s。视频采用H.264编解码,其编码图像为QCIF格式(176"144像素,YUV为4:1:1),正常播放帧率约为25帧/s。根据内存大小和图像帧大小倍数划分缓冲区,
读取一帧图像数据,按照H.264获取图像头、块信息和图像尾等格式参数,将这些信息映射到RTP固定头部、数据、有效载荷。程序产生RTP的序列号、时间戳和同步源标识等。一个RTP包封装而成,然后将此包发送给客户端。

猜你喜欢

转载自wujiachen3888.iteye.com/blog/1744166
今日推荐