[发明专利]一种媒体流转分发的方法及其系统有效
申请号: | 201410103142.0 | 申请日: | 2014-03-19 |
公开(公告)号: | CN103841380B | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 梁黎;陈卫东 | 申请(专利权)人: | 苏州科达科技股份有限公司 |
主分类号: | H04N7/18 | 分类号: | H04N7/18;H04N21/637;H04N21/6437 |
代理公司: | 北京三聚阳光知识产权代理有限公司11250 | 代理人: | 张建纲 |
地址: | 215011 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 媒体 流转 分发 方法 及其 系统 | ||
1.一种媒体流转分发的方法,其特征在于,包括如下步骤:
S1:监控前端将媒体流数据打包成数据包并通过服务器发送至客户端,所述服务器接收客户端丢失数据包后发送的重传请求,当所述服务器接收到针对同一数据包的多个重传请求时,所述服务器过滤掉多余的重传请求,使得所述监控前端只收到针对该同一数据包的一个重传请求;具体为:
所述监控前端将媒体流数据根据RTP协议打包,并且为每一打包后媒体流数据均添加一包含序列号的RTP包头形成RTP数据包;
所述客户端接收所述RTP数据包,获得每一RTP数据包中RTP包头中的序列号,根据序列号是否连续判断是否丢失数据包;
所述重传请求为RTCP重传请求数据包,其中包含丢失的RTP数据包的序列号以及数量;
所述服务器将所有数据包存储至环形缓冲区内;所述服务器收到来自客户端的重传请求后,在所述环形缓冲区内查找是否存在该重传请求对应的重传包,若不存在,进入步骤S2;若存在,进入步骤S4;
S2:所述服务器与每一发送重传请求的客户端均创建一条重传请求记录,所述重传请求记录该客户端针对同一重传包的重传请求的引用计数;所述服务器收到来自同一个客户端针对同一重传包的重传请求时,该重传请求记录中的引用计数加一;
S3:所述服务器根据重传请求记录发送重传包给相应的客户端,每发送一次重传包,该条重传请求记录中与该重传包对应的引用计数减一,直至该条重传请求记录中针对所有重传包的引用计数均为零,清除该条重传请求记录;
S4:所述服务器从所述缓冲区中提取该重传包发送至客户端。
2.根据权利要求1所述的媒体流转分发的方法,其特征在于,所述步骤S2中:
所述服务器创建的每一所述重传请求记录,在到达清零时间阈值后自动清除。
3.根据权利要求2所述的媒体流转分发的方法,其特征在于,所述清零时间阈值为10s。
4.根据权利要求1-3任一所述的媒体流转分发的方法,其特征在于,所述步骤S1中的所述环形缓冲区存储空间S为:
S=R×1024×1024×T÷8÷D,其中R代表媒体流传输的码率,其单位为Mbps,D代表每一所述数据包的大小,单位为Byte,T表示客户端发送多次重传请求所需的总时间。
5.根据权利要求4所述的媒体流转分发的方法,其特征在于,T≤3秒。
6.根据权利要求1-3任一所述的媒体流转分发的方法,其特征在于,所述步骤S1还包括:
设定转发模式,所述转发模式包括单纯转发模式、精确重传模式和全缓存模式。
7.一种媒体流转分发的系统,其特征在于,包括:
传输模块,内置于服务器中,用于将监控前端打包的数据包发送至客户端,并接收所述客户端丢失数据包后发送的重传请求,当所述服务器接收到针对同一数据包的多个重传请求时,所述服务器过滤掉多余的重传请求,使得所述监控前端只收到针对该同一数据包的一个重传请求;所述监控前端包括:
打包模块,用于将媒体流数据根据RTP协议打包,并且为每一打包后媒体流数据均添加一包含序列号的RTP包头形成RTP数据包;
所述客户端包括:
丢包判断模块,用于接收所述RTP数据包,获得每一RTP数据包中RTP包头中的序列号,根据序列号是否连续判断是否丢失数据包;
所述重传请求为RTCP重传请求数据包,其中包含丢失的RTP数据包的序列号以及数量;
环形缓冲区模块,所述服务器将所有数据包存储至环形缓冲区模块内;所述服务器收到来自客户端的重传请求后,在所述环形缓冲区模块内查找是否存在该重传请求对应的重传包,若不存在,进入重传请求记录创建模块中;若存在,进入重传发送模块;
重传请求记录创建模块,用于在所述服务器与每一发送重传请求的客户端均创建一条重传请求记录,所述重传请求记录该客户端针对同一重传包的重传请求的引用计数;所述服务器收到来自同一个客户端针对同一重传包的重传请求时,该重传请求记录中的引用计数加一;
所述服务器根据重传请求记录发送重传包给相应的客户端,每发送一次重传包,该条重传请求记录中与该重传包对应的引用计数减一,直至该条重传请求记录中针对所有重传包的引用计数均为零,清除该条重传请求记录;
所述重传发送模块用于通过所述服务器从所述缓冲区模块中提取该重传包发送至客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州科达科技股份有限公司,未经苏州科达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410103142.0/1.html,转载请声明来源钻瓜专利网。