您的位置:首页 > 其它

基于H.264的流媒体服务器的设计和实现

2010-12-31 16:33 337 查看
工作。

2. 服务器的主要流程

服务器端的具体流程为:服务器首根据流的名称准备传输的文件的类型等信息创建一个会话,并且把这个会话加入到列表中,然后进入监听状态等待客户端的请求

服务器收到客户端的请求时,对请求进行处理,向客户端发送请求响应信息,并且进行传输数据的准备工作。对客户端发出的播放(PLAY)请求中一些字段的值分析完成后,服务器开始向客户端发送数据。

服务器根据得到的客户端的地址,用创建的接收器开始取得数据,这个接收器以字节流模式打开要传输的文件,根据这种文件的特定格式(RTP格式或者Annex B格式)从中读取数据,对头部、数据类型、长度等字段进行计算和解析然后构建符合RTP标准的数据包,接着通过RTP接口发送到目的地址。这个过程不断继续,直到文件中的数据发送完毕。

数据发送完毕以后,服务器向客户端发送RTCP的“BYE”消息,然后客户端向服务器发送拆除连接的请求,服务器响应这个请求后便结束此次会话。

3. 服务器的实现

根据本文实际传输的H.264的视频文件的具体情况
RTCP用来配合RTP工作,它向发送端提供接收端关于数据包的统计信息,发送端可以利用这些信息进行拥塞控制和流量控制。RTSP协议可以使接收端和发送端进行数据传输过程中的交互,提供诸如播放、暂停、快进、快退等操作

服务器中与H.264传输有关的几个主要的类为H264ServerMediaSession、(---------->)、H264VideoRTPSink和(-------->)H264VideoStreamFramer
本文设计的传输H.264文件的过程如下:

* 服务器打开要传输的H.264视频文件,把它作为一个数据源;

* H264StreamFramer取出数据源中的NAL单元,作为一个数据帧,递交给H264VideoRTPSink

* H264VideoRTPSink给NAL单元,加上RTP包头,通过网络接口发送到接收端然后调度发送下一个RTP包的任务

* 重复前两步,直到所有的数据发送完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐