流媒體簡介
1.流
1.視頻,音頻 download
2.streaming :progressive,realtime -带宽,图像质量,精确时间关系
2.流媒体组件
1.player
2.server
3.Encode
3.流媒体服务器功能
1.响应客户请求,与客户端保持双向通信
2.响应广播,处理实时广播数据,并编码
3.其他:DRM,插播广告,组播…
4.流媒体服务方式:单播,组播,点播与广播
4.构建流媒体服务器
- RTP(Realtime Transport Protocol)实时传输协议。典型应用建立在UDP上,但也可在TCP或ATM【ATM是Asynchronous Transfer Mode(ATM)异步传输模式的缩写,是实现B-ISDN的业务的核心技术之一。ATM是以信元为基础的一种分组交换和复用技术 】等其他协议上。
- RTCP(Realtime Transport Control Protocol)实时传输控制协议。在RTP会话期间,各参与者周期性传送RTCP,服务器协调改变传输速率。RTP,TRCP配合使用,能以有效的反馈和最小的开销使传输效率最佳,适合传送网上实时数据。
RTCP功能:
2.1反馈信息,提供分配数据的传送质量,可用来进行流量拥塞控制,也可来监视网络和诊断网络
2.2为RTP提供永久性的CNAME的传送层标志
2.3根据与会者的数量来调整RTCP包的发送率
2.4传送会话控制信息 - .RTP/RTCP工作过程
上层媒体信息流 —> RTP协议层装配RTP包—>下层—>下层协议提供RTP和RTCP的分流。RTP包无长度限制,只受下层协议限制 - 服务器算法
主要两种:并发和循环服务器
在应用中,客户分为:请求实时数据和请求文件数据。
1、打开设备,分配资源。创建一个RTP实时线程和一个RTCP实时服务线程
2、创建一个UDP套接字并绑定到锁提供的服务的地址上
3、反复调用接收模块,接收来自客户的RTCP报告,并响应。对新实时客户的请求,把客户地址添加到列表中,对新文件客户的请求,则创建一个新的RTP文件服务线程和一个新RTCP文件服务线程。对已经在服务器中的客户则根据RTCP报告内容调整服务。
5.注意问题
- 会话和流的两极分用
- 多线程管理
- 时间戳的处理,单调递增,即时静默时,发送方不必发送数据,保持时间戳的增长,在接收端,因接收的数据分组序号没有丢失,知数据未丢失。
- 媒体数据发送速度的控制。因RTP未规定RTP分组的长度和发送数据的速度,需根据情况调整服务器端发送媒体数据的速度
- 多种流同步。RTCP能让接收方同步接收多个RTP流,如音频与视频。NTP(Network Time Protocol)发送方报告中含一个含NTP格式的绝对时间。