基于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包的任务;
* 重复前两步,直到所有的数据发送完毕。
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包的任务;
* 重复前两步,直到所有的数据发送完毕。
相关文章推荐
- 基于EasyDarwin框架实现EasyNVR H5无插件直播流媒体服务器方案
- 基于Red5的流媒体实时视频系统的设计与实现
- 基于EasyDarwin框架实现EasyNVR H5无插件直播流媒体服务器方案
- 基于ARM的嵌入式web服务器的设计与实现
- 基于RTSP协议流媒体服务器的实现
- 基于S5pv210流媒体服务器的实现之网络摄像头(by liukun321 咕唧咕唧)
- 一种基于Qt的可伸缩的全异步C/S架构服务器实现(三) 流水线结构线程池设计
- 基于嵌入式WEB的视频服务器的设计与实现
- 一种基于Qt的可伸缩的全异步C/S架构服务器实现(三) 流水线结构线程池设计
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
- 基于RTSP协议流媒体服务器的实现
- [导入]基于RTSP协议流媒体服务器的实现[转载]
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
- 基于Windows Media技术的流媒体系统的设计与实现
- javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)
- 【转】 基于RTSP协议流媒体服务器的实现
- 基于MYSQL的 网络游戏 多线程 数据库 服务器 设计与实现
- 基于C/S结构的高校学生网络行为规范系统的设计与实现(包含服务器与客户端)
- 与王翔面对面——《设计模式——基于C#的工程化实现及扩展》作者访谈录
- 与王翔面对面——《设计模式——基于C#的工程化实现及扩展》作者访谈录