现在的位置: 首页 > 综合 > 正文

流媒体服务器

2012年03月08日 ⁄ 综合 ⁄ 共 1126字 ⁄ 字号 评论关闭

1. 流媒体技术原理

 

流式传输的实现需要缓存。
因为Internet以包传输为基础进行断续的异步传输,对一个实时A/V源或存储的A/V文件,在传输中它们要被分解为许多包,由于网络是动态变化的,
各个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据
包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数
据:通过丢弃已经播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。——流式传输的实现需要合适的传输协议。由于TCP需要较多的
开销,故不太适合传输实时数据。在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。流式传输的过
程一般是这样的:用户选择某一流媒体服务后,Web浏览器与
Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;然后客户机上的Web浏览器启动A/VHelper
程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些参数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地
址。

A/VHelper程序及A/V服务器运行实时流控制
协议(RTSP),以交换A/V传输所需的控制信息。与CD播放机或VCRs所提供的功能相似,RTSP提供了操纵播放、快进、快倒、暂停及录制等命令的
方法。A/V服务器使用RTP/UDP协议将A/V数据传输给A/V客户程序(一般可认为客户程序等同于Helper程序),一旦A/V数据抵达客户
端,A/V客户程序即可播放输出。

需要说明的是,在流式传输中,使用RTP/UDP和
RTSP/TCP两种不同的通信协议与A
/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/VHelper程序所在客户机的目的地址。实现流式传输一般都需要专用服务器和
播放器,其基本原理如图所示。

 

2. RTSP协议具体内容

 

http://blog.csdn.net/yufangbo/archive/2009/10/29/4743219.aspx

 

3. 一些开源的流媒体项目

目前的流媒体服务器代码有Darwin(苹果公司),是用c++开发的,过于复杂不适合用在嵌入式设备上;
live555是c开发的但是只支持mpeg格式的音频;[[http://www.live555.com|官网]]
Feng 流媒体服务器支持h.264格式的视频,mp3音频,支持RTSP,RTP/RTCP,可以用来在嵌入式设备上开发流媒体服务器。

抱歉!评论已关闭.