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

工作。 

    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包的任务; 

    * 重复前两步,直到所有的数据发送完毕。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值