著录项信息
专利名称 | 云流媒体数据传输方法及系统 |
申请号 | CN201110180285.8 | 申请日期 | 2011-06-29 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2012-02-15 | 公开/公告号 | CN102355448A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6;;;H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 北京原力创新科技有限公司 | 申请人地址 | 山西省运城市盐湖区府东街263号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 卫小刚 | 当前权利人 | 卫小刚 |
发明人 | 卫小刚;卫国;陈志佳;王默哲 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 吴贵明 |
摘要
本发明公开了一种云流媒体数据传输方法及系统。其中,该方法包括:客户端发起对流媒体数据的访问;中心目录服务器根据条件参数向客户端返回一个或多个内容源终端的地址,并将地址加入伙伴终端列表;客户端与伙伴终端列表中的内容源终端建立连接,并按照需求动态选择与内容源终端的连接方式;客户端从内容源终端上获取流媒体数据。通过本发明,实现了通过基于客户端自身网络状况的动态数据来获取实现按需的流媒体数据分发,解决了相关技术的流媒体传输方法无法保障流媒体数据传输的及时性和稳定性的问题,能够实现在出现网络抖动或单节点失效等故障的时候,保障流媒体数据获取的及时性和稳定性。
1.一种云流媒体数据传输方法,其特征在于,包括:
客户端发起对流媒体数据的访问;
中心目录服务器根据条件参数向所述客户端返回一个或多个内容源终端的地址,并将所述地址加入伙伴终端列表;
所述客户端与所述伙伴终端列表中的所述内容源终端建立连接,并按照需求动态选择与所述内容源终端的连接方式;
所述客户端从所述内容源终端上获取所述流媒体数据;
所述中心目录服务器根据所述条件参数来返回一个或多个所述内容源终端的地址包括:所述中心目录服务器按照所述内容源终端的优先级依次返回所述内容源终端的地址,所述内容源终端包括以下任意一个或多个设备:普通用户终端、优选用户终端以及服务器终端,其中,所述内容源终端的优先级通过以下公式获得:
nodescore=K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K为基础因子常数,rtti为终端节点间的动态网络延时,minrtti为终端节点间的静态最佳网络延时,recvpercent为终端节点间的数据成功接收率,R为当前码流量化值;
其中,所述内容源终端的优先级顺序为:所述普通用户终端、所述优选用户终端、所述服务器终端。
2.根据权利要求1所述的方法,其特征在于,中心目录服务器根据条件参数向所述客户端返回一个或多个内容源终端的地址包括:
所述中心目录服务器接收点播或直播内容请求;
所述中心目录服务器将满足所述条件参数的一个或多个所述内容源终端的地址返回至所述客户端;
所述客户端接收返回的所述内容源终端的地址;
其中,所述条件参数包括:所述内容源终端的位置、运行状态、优先级以及提供的流媒体数据的内容。
3.根据权利要求1所述的方法,其特征在于,所述客户端与所述伙伴终端列表中的所述内容源终端建立连接,并按照需求动态选择与所述内容源终端的连接方式包括:
在所述客户端的网络带宽低于第一预定值时,所述客户端选择与所述伙伴终端列表中的所述服务器终端建立单向直接接入式的连接;
在所述客户端的网络带宽高于第一预定值时,所述客户端选择与伙伴终端列表中的所述服务器终端、所述优选用户终端以及所述普通用户终端建立连接,其中,所述客户端以所述单向直接接入的方式与所述服务器终端连接,以双向共享接入的方式与所述优选用户终端或者所述普通用户终端建立连接。
4.根据权利要求3所述的方法,其特征在于,所述客户端选择与所述伙伴终端列表中的所述服务器终端建立单向直接接入式的连接包括:
判断所述客户端与所述服务器终端的访问时延是否大于或等于预设的静态访问时延,其中,
在大于等于所述静态访问时延的情况下,所述客户端与所述服务器终端建立基于UDP协议访问的连接;
在小于所述静态访问时延的情况下,所述客户端与所述服务器终端建立基于TCP协议访问的连接。
5.根据权利要求3所述的方法,其特征在于,所述服务器终端之间通过TCP协议建立共享互联,所述优选用户终端与所述普通用户终端之间以及所述普通用户终端彼此之间通过TCP协议建立共享互联,所述共享互联用于获取P2P内容共享。
6.根据权利要求3所述的方法,其特征在于,所述客户端从所述内容源终端上获取所述流媒体数据包括:
所述客户端按照先通过UDP协议读取所述普通用户终端,再通过UDP协议读取所述优选用户终端,最后通过TCP协议读取所述服务器终端的优先级顺序,来获取所述流媒体数据;
将所述流媒体数据保存至所述客户端的缓存。
7.根据权利要求6所述的方法,其特征在于,在将所述流媒体数据保存至所述客户端的缓存之后,所述方法还包括:
所述客户端播放并共享所述缓存中的所述流媒体数据,其中,
当所述客户端缓存中的所述流媒体数据大小低于第二预定值时,所述客户端选择向所述服务器终端读取流媒体数据;
当所述客户端缓存中的所述流媒体数据大小处于所述第二预定值和第三预定值之间时,所述客户端选择向所述服务器终端、所述优选用户终端以及所述普通用户终端中的任意一个终端读取流媒体数据;
当所述客户端缓存中的所述流媒体数据大小超过所述第三预定值时,所述客户端选择向所述普通客户端读取流媒体数据。
8.根据权利要求7所述的方法,其特征在于,读取流媒体数据的步骤包括:
预先将所述流媒体数据按照播放顺序划分成数据块,每个所述数据块包括一个或多个数据包;
所述客户端从所述内容源终端上按照随机顺序获取一个或多个所述数据包,并将所述流媒体数据以数据包为单位进行共享;
所述客户端根据各个所述数据包的索引编号将获得的一个或多个所述数据包进行排序组合,以获取完整的所述流媒体数据。
9.根据权利要求1-8中任一项所述的方法,其特征在于,在所述客户端从所述内容源终端上获取所述流媒体数据之前,所述方法还包括:
所述内容源终端向满足以下任意一个或多个条件的所述客户端优先上传所述流媒体数据,所述条件包括:
所述客户端需要上传的所述流媒体数据最多;
所述客户端与所述内容源终端处于相同的网段;
所述客户端为新加入的终端节点。
10.根据权利要求1-8中任一项所述的方法,其特征在于,在所述客户端根据条件参数在中心目录服务器中获取一个或多个内容源终端的地址,并将所述地址加入所述客户端的伙伴终端列表之后,所述方法还包括:
按照预定周期来定期更新所述伙伴终端列表,并周期性的共享所述伙伴终端列表中所述内容源终端的终端数据。
11.一种云流媒体数据传输系统,其特征在于,包括:
中心目录服务器,用于保存所有内容源终端的地址以及伙伴终端列表;
客户端,用于与所述伙伴终端列表中的所述内容源终端建立连接,以获取所述流媒体数据,并按照需求动态选择与所述内容源终端的连接方式;其中,
所述中心目录服务器根据条件参数向所述客户端返回一个或多个所述内容源终端的地址,并将所述地址加入伙伴终端列表;
所述中心目录服务器包括:第一处理装置,用于按照所述内容源终端的优先级依次返回所述内容源终端的地址,所述内容源终端包括以下任意一个或多个设备:普通用户终端、优选用户终端以及服务器终端,其中,所述内容源终端的优先级通过以下公式获得:
nodescore=K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K为基础因子常数,rtti为终端节点间的动态网络延时,minrtti为终端节点间的静态最佳网络延时,recvpercent为终端节点间的数据成功接收率,R为当前码流量化值;
其中,所述内容源终端的优先级顺序为:所述普通用户终端、所述优选用户终端、所述服务器终端。
12.根据权利要求11所述的系统,其特征在于,所述客户端包括:
发射装置,用于向所述中心目录服务器发送点播或直播内容请求;
接收装置,用于接收所述中心目录服务器中满足所述条件参数的一个或多个所述内容源终端的地址;
其中,所述条件参数包括:所述内容源终端的位置、运行状态、优先级以及提供的流媒体数据的内容。
13.根据权利要求11所述的系统,其特征在于,所述客户端还包括:
第二处理装置,用于在所述客户端的网络带宽低于第一预定值时,所述客户端选择与所述伙伴终端列表中的所述服务器终端建立单向直接接入式的连接;在所述客户端的网络带宽高于第一预定值时,所述客户端选择与伙伴终端列表中的所述服务器终端、所述优选用户终端以及所述普通用户终端建立连接,其中,所述客户端以所述单向直接接入的方式与所述服务器终端连接,以双向共享接入的方式与所述优选用户终端或者所述普通用户终端建立连接,在所述客户端与所述服务器终端的访问时延大于等于预设的静态访问时延的情况下,所述客户端与所述服务器终端建立基于UDP协议访问的连接,否则,所述客户端与所述服务器终端建立基于TCP协议访问的连接。
14.根据权利要求13所述的系统,其特征在于,所述客户端还包括:
读取装置,用于按照先通过UDP协议读取所述普通用户终端,再通过UDP协议读取所述优选用户终端,最后通过TCP协议读取所述服务器终端的优先级顺序,来获取所述流媒体数据,并将所述流媒体数据保存至缓存;
播放装置,用于播放所述缓存中的所述流媒体数据,其中,当所述客户端缓存中的所述流媒体数据大小低于第二预定值时,所述客户端选择向所述服务器终端读取流媒体数据;
当所述客户端缓存中的所述流媒体数据大小处于所述第二预定值和第三预定值之间时,所述客户端选择向所述服务器终端、所述优选用户终端以及所述普通用户终端中的任意一个终端读取流媒体数据;当所述客户端缓存中的所述流媒体数据大小超过所述第三预定值时,所述客户端选择向所述普通客户端读取流媒体数据。
15.根据权利要求14所述的系统,其特征在于,所述客户端还包括:
第三处理装置,与所述内容源终端连接,用于从所述内容源终端上按照随机顺序获取一个或多个所述数据包,并将所述流媒体数据以数据包为单位进行共享;并根据各个所述数据包的索引编号将获得的一个或多个所述数据包进行排序组合,以获取完整的所述流媒体数据,其中,所述流媒体数据按照播放顺序划分成数据块,每个所述数据块包括一个或多个数据包。
16.根据权利要求13-15中任一项所述的系统,其特征在于,所述服务器终端之间通过TCP协议建立共享互联,所述优选用户终端与所述普通用户终端之间以及所述普通用户终端彼此之间通过TCP协议建立共享互联,所述共享互联用于获取P2P内容共享。
云流媒体数据传输方法及系统\n技术领域\n[0001] 本发明涉及通讯领域,具体而言,涉及一种云流媒体数据传输方法及系统。\n背景技术\n[0002] 流媒体是指采用流式传输的方式在互联网上实时播放的媒体,包括在线的视频直播和点播业务。随着视频会议、远程教学、在线游戏和娱乐等应用的日益广泛,流媒体传输技术经历了从IP组播、CDN内容分发技术到P2P技术的发展,然而现有流媒体技术仍然无法完全满足高性能、大规模的系统运营需求。由于用户规模的剧增,传统基于客户/服务器(C/S)模式或内容分发网络(CDN)模式存在服务器性能的瓶颈,无法满足扩展性的要求;同时,流媒体业务中媒体内容即时性获取的要求,不同与传统的P2P文件共享系统,使得完全依靠P2P模式时间换取空间模式同样不再可行。\n[0003] 为了解决上述问题,现有技术通过结合传统的CDN和P2P流媒体技术,能够满足大规模并发用户的流媒体分发要求,且可靠性高和可扩展性强,上述传输技术是“以数据为中心”的流媒体数据传输方法,但当系统中出现网络抖动或单节点失效等故障的时候,客户端获取流媒体数据的过程将不可避免出现中断或不流畅的问题。\n[0004] 目前云计算模式的出现为构建可管理、可扩展和有质量保障的流媒体应用创造了新的机遇。狭义云计算是指IT基础设施的交付和使用模式,将动态伸缩的虚拟化资源通过互联网以服务的方式提供给用户。广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。云计算流媒体(简称云流媒体),指通过网络以按需、易扩展的方式向不同终端用户提供有质量保障流媒体服务。作为支撑云流媒体业务的关键技术,流媒体数据传输将直接影响服务平台的稳定性、播放的连续性和用户的服务质量。传统流媒体传输技术由于缺乏对大规模的、异构的用户的充分考虑,无法很好地实现数据传输及时性和稳定性的保障,故而无法满足云流媒体业务中不同终端和不同质量要求用户按需分发的需求。\n[0005] 目前针对相关技术的流媒体传输方法无法保障流媒体数据传输的及时性和稳定性的问题,目前尚未提出有效的解决方案。\n发明内容\n[0006] 本发明的主要目的在于提供一种云流媒体数据传输方法及系统,以解决上述相关技术的流媒体传输方法无法保障流媒体数据传输的及时性和稳定性的问题。\n[0007] 为了实现上述目的,根据本发明的一个方面,提供了一种云流媒体数据传输方法,该流媒体数据传输方法包括:客户端发起对流媒体数据的访问;中心目录服务器根据条件参数向客户端返回一个或多个内容源终端的地址,并将地址加入伙伴终端列表;客户端与伙伴终端列表中的内容源终端建立连接,并按照需求动态选择与内容源终端的连接方式;\n客户端从内容源终端上获取流媒体数据。\n[0008] 进一步地,中心目录服务器根据条件参数向客户端返回一个或多个内容源终端的地址包括:中心目录服务器接收点播或直播内容请求;中心目录服务器将满足条件参数的一个或多个内容源终端的地址返回至客户端;客户端接收返回的内容源终端的地址;其中,条件参数包括:内容源终端的位置、运行状态、优先级以及提供的流媒体数据的内容。\n[0009] 进一步地,中心目录服务器根据条件参数来返回一个或多个内容源终端的地址包括:中心目录服务器按照内容源终端的优先级依次返回内容源终端的地址,内容源终端包括以下任意一个或多个设备:普通用户终端、优选用户终端以及服务器终端,其中,内容源终端的优先级通过以下公式获得:nodescore=K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K为基础因子常数,rtti为终端节点间的动态网络延时,minrtti为终端节点间的静态最佳网络延时,recvpercent为终端节点间的数据成功接收率,R为当前码流量化值。\n[0010] 进一步地,客户端与伙伴终端列表中的内容源终端建立连接,并按照需求动态选择与内容源终端的连接方式包括:在客户端的网络带宽低于第一预定值时,客户端选择与伙伴终端列表中的服务器终端建立单向直接接入式的连接;在客户端的网络带宽高于第一预定值时,客户端选择与伙伴终端列表中的服务器终端、优选用户终端以及普通用户终端建立连接,其中,客户端以单向直接接入的方式与服务器终端连接,以双向共享接入的方式与优选用户终端或者普通用户终端建立连接。\n[0011] 进一步地,客户端选择与伙伴终端列表中的服务器终端建立单向直接接入式的连接包括:判断客户端与服务器终端的访问时延是否大于或等于预设的静态访问时延,其中,在大于等于静态访问时延的情况下,客户端服务器终端建立基于UDP协议访问的连接;在小于静态访问时延的情况下,客户端服务器终端建立基于TCP协议访问的连接。\n[0012] 进一步地,服务器终端之间通过TCP协议建立共享互联,优选用户终端与普通用户终端之间以及普通用户终端彼此之间通过TCP协议建立共享互联,共享互联用于获取P2P内容共享。\n[0013] 进一步地,客户端从内容源终端上获取流媒体数据包括:客户端按照先通过UDP协议读取普通用户终端,再通过UDP协议读取优选用户终端,最后通过TCP协议读取服务器终端的优先级顺序,来获取流媒体数据;将流媒体数据保存至客户端的缓存。\n[0014] 进一步地,在将流媒体数据保存至客户端的缓存之后,方法还包括:客户端播放并共享缓存中的流媒体数据,其中,当客户端缓存中的流媒体数据大小低于第二预定值时,客户端选择向服务器终端读取流媒体数据;当客户端缓存中的流媒体数据大小处于第二预定值和第三预定值之间时,客户端选择向服务器终端、优选用户终端以及普通用户终端中的任意一个终端读取流媒体数据;当客户端缓存中的流媒体数据大小超过第三预定值时,客户端选择向普通客户端读取流媒体数据。\n[0015] 进一步地,读取流媒体数据的步骤包括:预先将流媒体数据按照播放顺序划分成数据块,每个数据块包括一个或多个数据包;客户端从内容源终端上按照随机顺序获取一个或多个数据包,并将流媒体数据以数据包为单位进行共享;客户端根据各个数据包的索引编号将获得的一个或多个数据包进行排序组合,以获取完整的流媒体数据。\n[0016] 进一步地,在客户端从内容源终端上获取流媒体数据之前,方法还包括:内容源终端向满足以下任意一个或多个条件的客户端优先上传流媒体数据,条件包括:客户端需要上传的流媒体数据最多;客户端与内容源终端处于相同的网段;客户端为新加入的终端节点。\n[0017] 进一步地,在客户端根据条件参数在中心目录服务器中获取一个或多个内容源终端的地址,并将地址加入客户端的伙伴终端列表之后,方法还包括:按照预定周期来定期更新伙伴终端列表,并周期性的共享伙伴终端列表中内容源终端的终端数据。\n[0018] 为了实现上述目的,根据本发明的另一方面,提供了一种云流媒体数据传输系统,该流媒体数据传输系统包括:中心目录服务器,用于保存所有内容源终端的地址以及伙伴终端列表;客户端,用于与伙伴终端列表中的内容源终端建立连接,以获取流媒体数据,并按照需求动态选择与内容源终端的连接方式;其中,中心目录服务器根据条件参数向客户端返回一个或多个内容源终端的地址,并将地址加入伙伴终端列表。\n[0019] 进一步地,客户端包括:发射装置,用于向中心目录服务器发送点播或直播内容请求;接收装置,用于接收中心目录服务器中满足条件参数的一个或多个内容源终端的地址;\n其中,条件参数包括:内容源终端的位置、运行状态、优先级以及提供的流媒体数据的内容。\n[0020] 进一步地,中心目录服务器包括:第一处理装置,用于按照内容源终端的优先级依次返回内容源终端的地址,内容源终端包括以下任意一个或多个设备:普通用户终端、优选用户终端以及服务器终端,其中,内容源终端的优先级通过以下公式获得:nodescore=K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K为基础因子常数,rtti为终端节点间的动态网络延时,minrtti为终端节点间的静态最佳网络延时,recvpercent为终端节点间的数据成功接收率,R为当前码流量化值。\n[0021] 进一步地,客户端还包括:第二处理装置,用于在客户端的网络带宽低于第一预定值时,客户端选择与伙伴终端列表中的服务器终端建立单向直接接入式的连接;在客户端的网络带宽高于第一预定值时,客户端选择与伙伴终端列表中的服务器终端、优选用户终端以及普通用户终端建立连接,其中,客户端以单向直接接入的方式与服务器终端连接,以双向共享接入的方式与优选用户终端或者普通用户终端建立连接,在客户端与服务器终端的访问时延大于等于预设的静态访问时延的情况下,客户端服务器终端建立基于UDP协议访问的连接,否则,客户端服务器终端建立基于TCP协议访问的连接。\n[0022] 进一步地,客户端还包括:读取装置,用于按照先通过UDP协议读取普通用户终端,再通过UDP协议读取优选用户终端,最后通过TCP协议读取服务器终端的优先级顺序,来获取流媒体数据,并将流媒体数据保存至缓存;播放装置,用于播放缓存中的流媒体数据,其中,当客户端缓存中的流媒体数据大小低于第二预定值时,客户端选择向服务器终端读取流媒体数据;当客户端缓存中的流媒体数据大小处于第二预定值和第三预定值之间时,客户端选择向服务器终端、优选用户终端以及普通用户终端中的任意一个终端读取流媒体数据;当客户端缓存中的流媒体数据大小超过第三预定值时,客户端选择向普通客户端读取流媒体数据。\n[0023] 进一步地,客户端还包括:第三处理装置,与内容源终端连接,用于从内容源终端上按照随机顺序获取一个或多个数据包,并将流媒体数据以数据包为单位进行共享;并根据各个数据包的索引编号将获得的一个或多个数据包进行排序组合,以获取完整的流媒体数据,其中,流媒体数据按照播放顺序划分成数据块,每个数据块包括一个或多个数据包。\n[0024] 进一步地,服务器终端之间通过TCP协议建立共享互联,优选用户终端与普通用户终端之间以及普通用户终端彼此之间通过TCP协议建立共享互联,共享互联用于获取P2P内容共享。\n[0025] 通过本发明,采用客户端发起对流媒体数据的访问;中心目录服务器根据条件参数向客户端返回一个或多个内容源终端的地址,并将地址加入伙伴终端列表;客户端与伙伴终端列表中的内容源终端建立连接,并按照需求动态选择与内容源终端的连接方式;客户端从内容源终端上获取流媒体数据,实现了通过基于客户端自身网络状况的动态数据来获取实现按需的流媒体数据分发,解决了相关技术的流媒体传输方法无法保障流媒体数据传输的及时性和稳定性的问题,进而实现了在出现网络抖动或单节点失效等故障的时候,保障流媒体数据获取的及时性和稳定性的效果。\n附图说明\n[0026] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:\n[0027] 图1是根据本发明实施例的云流媒体数据传输系统的结构示意图;\n[0028] 图2是根据图1所示实施例的云流媒体数据传输系统的工作流程示意图;\n[0029] 图3是根据本发明实施例的云流媒额体数据传输方法的流程图;\n[0030] 图4是根据图3所示实施例的多发式访问机制的工作流程示意图;\n[0031] 图5是与图4相对应的多发式访问机制的坐标示意图;以及\n[0032] 图6是根据本发明实施例的云流媒体数据播放过程中的动态数据调度机制示意图。\n具体实施方式\n[0033] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。\n[0034] 本申请中所涉及到的优选用户终端是从用户终端中选取的性能较好的节点,优选用户终端具有数据传出大于数据输入的特性,即优选用户终端起到种子终端的作用,以提供给其他用户有保障的可供获取的数据流,其一般选择标准是:1)下行带宽超过2Mbps;2)在一个固定时段内被请求用户成功连接次数超过某个设定标准。在网络系统中不具备上述特点的用户终端为普通用户终端。本发明中的客户端为发出云流媒体数据访问的用户终端。\n[0035] 图1是根据本发明实施例的云流媒体数据传输系统的结构示意图;图2是根据图\n1所示实施例的云流媒体数据传输系统的工作流程示意图。\n[0036] 如图1所示,该云流媒体数据传输系统包括:中心目录服务器30,用于保存所有内容源终端50的地址以及伙伴终端列表;客户端10,用于与伙伴终端列表中的内容源终端50建立连接,以获取流媒体数据,并按照需求动态选择与内容源终端50的连接方式;其中,中心目录服务器30根据条件参数向客户端10返回一个或多个内容源终端50的地址,并将该地址加入伙伴终端列表。\n[0037] 本发明上述实施例中的内容源终端50可以是图1中的流媒体边缘服务器、优选用户终端503以及普通用户终端502,这些终端都可以提供客户端10所需的流媒体数据。该实施例不同于传统的“以数据为中心”的流媒体数据传输系统,实现“以用户为中心”的设计理念,以客户端10用户端的网络带宽情况为基础,动态选择与内容源终端50按需的接入方式以及内容源数据的获取优先级,保障了用户终端流媒体数据的即时和连续播放质量,实现在发生网络抖动或终端单节点失效的情况下,仍旧可以保障流媒体数据获取的及时性和稳定性问题。\n[0038] 该实施例充分满足了云计算流媒体业务对按需的和易扩展的特性的要求,通过服务器和用户两层的互联共享实现系统的扩展性,通过基于用户自身网络状况的动态数据获取实现按需的流媒体内容分发。\n[0039] 具体的,如图2所示,本发明具体的实施例提供的云流媒体传输系统包括:客户端\n10、流媒体中心目录服务器30,内容源终端50(例如流媒体终端服务器),其中内容源终端\n50又包括普通用户终端节点502和优选用户终端节点503。用户节点和服务器节点之间的连接方式如图2所示。总体上分为两层,服务器间互联层和用户终端节点间互联层。在实时流媒体数据传输过程中,在中心目录服务器管理下,服务器间互联层采用TCP协议进行流媒体终端服务器之间的数据交换,用户间互联层采用UDP协议进行用户间的数据交换。服务器和用户之间采用基于UDP或TCP的协议进行数据交换。其中,服务器与服务器之间的数据传输是双向的,服务器与用户之间的数据传输是单向的,用户节点之间的数据传输是双向的。特别地,优选用户节的数据传出要大于输入。\n[0040] 本发明上述图1所示的实施例中,所涉及到的客户端10可以包括:发射装置101,用于向中心目录服务器30发送点播或直播内容请求;接收装置102,用于接收中心目录服务器30中满足条件参数的一个或多个内容源终端50的地址;其中,条件参数包括:内容源终端50的位置、运行状态、优先级以及提供的流媒体数据的内容。\n[0041] 上述实施例实现了本申请内容源节点选取的功能,具体的,如图1和图2所示,当客户端10(即新用户)加入到网络时,可以以网页重导向等方式通过发射装置101向流媒体中心目录服务器30(Tracker)发送点播或直播内容请求,中心目录服务器30根据客户端\n10请求节目和位置情况,返回正在播放用户所请求节目的内容源终端50节点,内容源终端\n50可以包括普通用户终端502,优选用户终端503和服务器终端501,该服务器终端501可以是流媒体边缘服务器。中心目录服务器30选择返回给内容源节点的机制为P2P优先的本地化节点选择策略。\n[0042] 其中,中心目录服务器30选择可供客户端10用户访问的内容源终端50节点的基本标准是:1)该内容源终端50节点拥有客户端10用户所请求内容一致的数据片段;2)该内容终端的运行状态处于活跃状态,存在上下行带宽。\n[0043] 优选的,中心目录服务器30选择可供客户端10用户访问的内容源终端50节点的附加标准是:1)该内容源终端50节点在物理位置上离请求用户在固定时延范围内,如30秒;2)该内容源终端50节点不处于满负荷状态,即连接它的内容源终端50节点数量不超过某固定设定值,一般普通用户终端502节点为5个,优选用户终端503节点为20个,服务器终端501节点为200个。\n[0044] 本发明上述实施例中,如图1所示,所涉及到的中心目录服务器30可以包括:第一处理装置301301,用于按照内容源终端50的优先级依次返回内容源终端50的地址,内容源终端50包括以下任意一个或多个设备:普通用户终端502、优选用户终端503以及服务器终端501,其中,内容源终端50的优先级通过以下公式获得:nodescore=K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K为基础因子常数,rtti为终端节点间的动态网络延时,minrtti为终端节点间的静态最佳网络延时,recvpercent为终端节点间的数据成功接收率,R为当前码流量化值。\n[0045] 具体的,中心目录服务器30向请求节点返回可供访问的内容源终端50节点的优先级顺序为:普通用户终端502节点;优选用户终端503节点;服务器终端501节点。同一类型的终端节点的选择标准是在用户同一IP段的优先,以减少端到端的访问时延和过多的跨ISP流量。优选用户终端503节点是从用户节点中选取的性能较好的节点,优选用户终端503具有数据传出大于数据输入的特性,即优选用户终端503起到种子终端的作用,以提供给其他用户有保障的可供获取的数据流,其一般选择标准是:1)下行带宽超过2Mbps;\n2)在一个固定时段内被请求用户成功连接次数超过某个设定标准。\n[0046] 基于内容源终端50的标准,中心目录服务器30通过对所有内容源终端50节点(包括用户节点和服务器节点)进行打分来确定其优先级,即对内容源终端50节点进行量化的评分机制,分数较高的将被优先返回。作为量化标准的一种可能实现形式示例,具体的评分公式如下:\n[0047] 1)nodescore=K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,该公式为内容源终端50的节点级别值(nodescore)的获取公式,这个节点级别值(nodescore)的计算结果就是选取的某一个内容终端节点评分后的优先级值,nodescore值越大,越优先被选取为共享内容的终端节点。\n[0048] 2)nodescore(now)=(nodescore(pre)+3*nodescore)/4,该公式为当前节点值=(前一个节点值+3*节点级别值)/4,用于体现一个动态调整,表征在不同的统计时间段,当前节点的nodescore值和之前节点的nodescore值有什么关系,体现一个动态递推关系。\n[0049] 参数说明:K为基础因子常数,是经验实测值,当node为服务器时,因子较小,node为相同网段的用户节点时,取值较大。典型值:源服务器K=700;分发服务器K=800;一般节点K=1000;相同网段用户节点K=1300。rtti为节点间的动态网络延时;minrtti为节点间的静态最佳网络延时;recvpercent为节点间的数据成功接收率,相当于1-包率;\nR为当前码流量化值。其中,相关rtti计算参考TCP标准,一般用两个节点间互发包的接收时间计算,在计算机命令里面用现成的ping命令即可实现。\n[0050] 如图1所示,本发明上述各个实施例中的客户端10还可以包括:第二处理装置\n103,用于在客户端10的网络带宽低于第一预定值时,客户端10选择与伙伴终端列表中的服务器终端501建立单向直接接入式的连接;在客户端10的网络带宽高于第一预定值时,客户端10选择与伙伴终端列表中的服务器终端501、优选用户终端503以及普通用户终端\n502建立连接,其中,客户端10以单向直接接入的方式与服务器终端501连接,以双向共享接入的方式与优选用户终端503或者普通用户终端502建立连接,其中,在客户端10与服务器终端501的访问时延大于等于预设的静态访问时延的情况下,客户端10服务器终端\n501建立基于UDP协议访问的连接,否则,客户端10服务器终端501建立基于TCP协议访问的连接。\n[0051] 上述实施例涉及使用TCP与UDP相结合的基于缓存动态调度的流媒体数据传输方法,其特征是在连接方式上基于客户端10用户的网络状况为触发,动态选择与服务器直连和/或与用户终端节点P2P连接的混合连接方式,优先选择多个用户终端节点间基于UDP的P2P连接,其次选择与服务器间的TCP或UDP直连,同时服务器间按TCP方式进行直连和P2P共享。\n[0052] 本申请上述实施例中,客户端10的第二处理装置103用于控制客户端10与内容源终端50之间连接方式的选取。主要基于新终端用户当前的网络情况和所处的位置,按需动态选择连接方式,向内容源节点发送请求,在连接成功后从内容源节点处接收数据。具体包括以下动态选择机制:\n[0053] 1)用户带宽优先的连接策略。如图2所示,当用户网络接入带宽低于某第一预定值(如1M)时,用户进行与服务器的直接连接,不参与用户之间的P2P连接;当用户接入带宽大于该第一预定值(如1M)时,进行客户端10与优选用户终端503或普通用户终端502节点以P2P方式连接以及和服务器终端501直连连接的混合连接方式。\n[0054] 在连接的协议上,将TCP和UDP协议融合,当用户节点离服务器终端501较远(超过设定静态访问时延),采用基于UDP协议的直接连接方式;当用户节点离服务器较近(低于设定静态访问时延),采用基于TCP协议的直接连接方式。用户终端节点之间进行UDP连接,实现分布式的P2P充分共享。并利用基于UDP的打洞机制,实现对NAT局域网后用户内容的充分共享。\n[0055] 2)可扩展的服务器互联策略。如图2所示,多个服务器(如流媒体边缘服务器)之间进行TCP连接,实现P2P内容共享。中心媒体库将热点的点播视频和直播流提前在各服务器中进行预分发,在用户连接时,根据服务器负载情况,以相互共享形式提供给用户;\n非热点内容和较大的视频内容只在部分服务器存储,根据客户端10用户请求情况在各服务器间进行调度,下载到本地服务器的视频可成为新内容源供客户端10用户下载。\n[0056] 3)公平与效率兼顾的连接请求判定策略。如图2所示,当拥有内容的节点收到新用户请求后,要确定是否向请求用户发送数据,首先必须满足一个约束:总连接数不超过本节点最大连接数(如一般普通用户终端502节点为5个,优选用户终端503节点为20个,服务器终端501节点为200个),以保证内容源节点不会负载过重。具体满足三个标准:1)向该节点上传内容数据多的节点优先,保障互相共享;2)同一网段的节点优先,促进本地化访问;3)新加入的节点优先,保障新节点能快速启动和拥有初始内容进行共享。既保证P2P效率,也保证公平。\n[0057] 4)动态伙伴节点更新和连接策略。如图2所示,当内容源终端50节点接收客户端\n10用户的请求后,它成为客户端10用户维护伙伴终端列表,即伙伴节点(Partner)目录中的一个。每个内容源终端50节点的伙伴节点数量固定(一般为10到20个),并且周期性更新,以维持一定数量的能向本节点提供数据的活跃伙伴节点。每个网络中的节点周期性地与其伙伴节点交换各自拥有数据信息,进而从其他节点中获取其不拥有的内容片,同时为其他节点提供其拥有的内容片。\n[0058] 如图1所示,本申请上述各个实施例中的客户端10还可以包括:读取装置104,用于按照先通过UDP协议读取普通用户终端502,再通过UDP协议读取优选用户终端503,最后通过TCP协议读取服务器终端501的优先级顺序,来获取流媒体数据,并将流媒体数据保存至缓存;播放装置105,用于播放缓存中的流媒体数据,其中,当客户端10缓存中的流媒体数据大小低于第二预定值时,客户端10选择向服务器终端501读取流媒体数据;当客户端10缓存中的流媒体数据大小处于第二预定值和第三预定值之间时,客户端10选择向服务器终端501、优选用户终端503以及普通用户终端502中的任意一个终端读取流媒体数据;当客户端10缓存中的流媒体数据大小超过第三预定值时,客户端10选择向普通客户端\n10读取流媒体数据。\n[0059] 优选地,如图1和2所示,本申请各个实施例中的服务器终端501之间通过TCP协议建立共享互联,优选用户终端503与普通用户终端502之间以及普通用户终端502彼此之间通过TCP协议建立共享互联,共享互联用于获取P2P内容共享。同时不影响用户的其他应用,实现服务器和用户的负载均衡。具体传输方式上,不简单依赖纯P2P方式的按可用性共享,实现按需的内容分发,既保障了P2P的效率,也保障了公平。\n[0060] 本发明上述实施例实现在云流媒体数据块内容获取方式上,在播放启动时利用缓存获取即将播放内容,以大于播放速度的并行多发快速获取即将播放的内容,在播放过程中以三级报警机制触发用户从不同源节点获取内容,并且将内存缓存和硬盘存储的数据与其他节点共享。利用用户缓存预先获取即将播放内容,启动时以大于播放速度的并行多发快速获取即将播放的内容,播放过程中以三级报警机制触发用户从不同源节点获取内容,并且将缓存的数据与其他节点共享。如图1所示,用户终端节点可以是普通用户终端502或优选用户终端503,服务器可以是流媒体边缘服务器。\n[0061] 优选地,客户端还包括:第三处理装置,与内容源终端连接,用于从内容源终端上按照随机顺序获取一个或多个数据包,并将流媒体数据以数据包为单位进行共享;并根据各个数据包的索引编号将获得的一个或多个数据包进行排序组合,以获取完整的流媒体数据,其中,流媒体数据按照播放顺序划分成数据块,每个数据块包括一个或多个数据包。该第三处理装置与第二处理装置为等同的处理装置。\n[0062] 上述实施例实现了本申请云流媒体数据的获取方式选取,具体如下:\n[0063] 在视频播放过程中,用户提前将即将播放的流媒体数据存放到缓存中,实现基于动态缓存的边下边播和数据共享。包括如下选取机制和算法:\n[0064] 1)基于UDP多传的快速启动策略。如图1和2所示,在缓存中数据未满时,用户客户端10启动多个并发连接,利用基于UDP的多传机制,保障以当前播放速度n倍的速度(一般为3)获取缓存中即将播放的数据,以保障在用户启动、拖动、断开重连过程中播放的流畅,并预防网络抖动对播放的影响。\n[0065] 2)基于三级预警的数据获取。如图2所示,缓存管理上采取三级报警机制来保障获取内容源的稳定性,当缓存中数据低于缓存大小的20%时,启动红色警报,用户将以最高优先级向服务器节点发起连接;当缓存中数据低于缓存大小的40%时,启动橙色警报,目录服务器将返回更多的服务器节点和用户节点(特别是优选用户节点)供用户选择和连接;当缓存中数据低于缓存大小的60%时,启动黄色警报,目录服务器将返回更多的用户节点供用户选择和连接。实现上利用客户端10软件上的设定策略进行预警操作触发。\n[0066] 3)按需和随机结合的数据块请求优先级。如图2和6所示,流媒体数据根据播放先后顺序分成数据块(chunk),每数据块包括若干固定长度的数据包(packet)。对于缓存中的数据,用户请求数据的优先级确定原则是:当前播放数据块的下一个数据块首先下载;\n排序靠前的数据块比排序靠后的数据块先下载,实现按序获取;同一数据块内的数据包,根据内容可用性,进行随机顺序获取,以提高P2P请求的效率。缓存数据下载并播放后,存放到用户物理硬盘中,可供其他节点以随机顺序进行分享下载。\n[0067] 图3是根据本发明实施例的云流媒额体数据传输方法的流程图;图4是根据图3所示实施例的多发式访问机制的工作流程示意图;图5是与图4相对应的多发式访问机制的坐标示意图;以及图6是根据本发明实施例的云流媒体数据播放过程中的动态数据调度机制示意图。\n[0068] 如图3所示该方法包括如下步骤:\n[0069] 步骤S102,通过图1和图2中的客户端10发起对流媒体数据的访问。\n[0070] 步骤S104,图1和图2中的中心目录服务器30根据条件参数向客户端10返回一个或多个内容源终端的地址,并将地址加入伙伴终端列表。\n[0071] 步骤S106,图1和图2中客户端10与伙伴终端列表中的内容源终端50建立连接,并按照需求动态选择与内容源终端50的连接方式。\n[0072] 步骤S108,图1和图2中客户端10从内容源终端50上获取流媒体数据。\n[0073] 本发明该实施例不同于传统的“以数据为中心”的流媒体数据传输系统,实现“以用户为中心”的设计理念,以客户端10用户端的网络带宽情况为基础,动态选择与内容源终端50按需的接入方式以及内容源数据的获取优先级,保障了用户终端云流媒体数据的即时和连续播放质量,实现在发生网络抖动或终端单节点失效的情况下,仍旧可以保障流媒体数据获取的及时性和稳定性问题,同时不影响用户的其他应用,实现服务器和用户的负载均衡,不简单依赖纯P2P方式的按可用性共享,实现按需的内容分发,既保障了P2P的效率,也保障了公平。本专利充分满足了云计算流媒体业务对按需的和易扩展的特性的要求,通过服务器和用户两层的互联共享实现系统的扩展性,通过基于用户自身网络状况的动态数据获取实现按需的流媒体内容分发。\n[0074] 本申请上述实施例中,步骤S104,中心目录服务器30根据条件参数向客户端10返回一个或多个内容源终端的地址,并将地址加入伙伴终端列表可以包括如下步骤:中心目录服务器30接收点播或直播内容请求;中心目录服务器30根据条件参数来返回一个或多个内容源终端50的地址,内容源终端50正在播放点播或直播内容请求对应的流媒体数据;\n客户端10接收返回的内容源终端50的地址;其中,条件参数包括:内容源终端50的位置、运行状态、优先级以及提供的流媒体数据的内容。\n[0075] 优选地,中心目录服务器30根据条件参数来返回一个或多个内容源终端50的地址的步骤包括:中心目录服务器30按照内容源终端50的优先级依次返回内容源终端50的地址,内容源终端50包括以下任意一个或多个设备:普通用户终端502、优选用户终端503以及服务器终端501,其中,内容源终端50的优先级通过以下公式获得:\n[0076] nodescore=K/(2+rtti/500)*(minrtti/rtti)2*(recvprecent)2*R,其中,K为基础因子常数,rtti为终端节点间的动态网络延时,minrtti为终端节点间的静态最佳网络延时,recvpercent为终端节点间的数据成功接收率,R为当前码流量化值。\n[0077] 本发明上述实施例中,步骤S106,客户端10与伙伴终端列表中的内容源终端50建立连接,并按照需求动态选择与内容源终端50的连接方式的步骤可以包括:在客户端10的网络带宽低于第一预定值时,客户端10选择与伙伴终端列表中的服务器终端501建立单向直接接入式的连接;在客户端10的网络带宽高于第一预定值时,客户端10选择与伙伴终端列表中的服务器终端501、优选用户终端503以及普通用户终端502建立连接,其中,客户端\n10以单向直接接入的方式与服务器终端501连接,以双向共享接入的方式与优选用户终端\n503或者普通用户终端502建立连接。\n[0078] 优选地,客户端10选择与伙伴终端列表中的服务器终端501建立单向直接接入式的连接的步骤可以包括:判断客户端10与服务器终端501的访问时延是否大于或等于预设的静态访问时延,其中,在大于等于静态访问时延的情况下,客户端10服务器终端501建立基于UDP协议访问的连接;在小于静态访问时延的情况下,客户端10服务器终端501建立基于TCP协议访问的连接。\n[0079] 本申请上述各个实施例中的服务器终端501之间通过TCP协议建立共享互联,优选用户终端503与普通用户终端502之间以及普通用户终端502彼此之间通过TCP协议建立共享互联,共享互联用于获取P2P内容共享。\n[0080] 如图2和3所示,本发明上述实施例中的步骤S108,在步骤客户端10从内容源终端50上获取流媒体数据的过程中可以包括:客户端10按照先通过UDP协议读取普通用户终端502,再通过UDP协议读取优选用户终端503,最后通过TCP协议读取服务器终端501的优先级顺序,来获取流媒体数据;将流媒体数据保存至客户端10的缓存。\n[0081] 优选地,如图2和3所示,在步骤将流媒体数据保存至客户端10的缓存之后,方法还可以包括:客户端10播放并共享缓存中的流媒体数据,其中,当客户端10缓存中的流媒体数据大小低于第二预定值时,客户端10选择向服务器终端501读取流媒体数据;当客户端10缓存中的流媒体数据大小处于第二预定值和第三预定值之间时,客户端10选择向服务器终端501、优选用户终端503以及普通用户终端502中的任意一个终端读取流媒体数据;当客户端10缓存中的流媒体数据大小超过第三预定值时,客户端10选择向普通客户端\n10读取流媒体数据。\n[0082] 优选地,读取流媒体数据的步骤包括:预先将流媒体数据按照播放顺序划分成数据块,每个数据块包括一个或多个数据包;客户端10从内容源终端50上按照随机顺序获取一个或多个数据包,并将流媒体数据以数据包为单位进行共享;客户端10根据各个数据包的索引编号将获得的一个或多个数据包进行排序组合,以获取完整的流媒体数据。\n[0083] 优选地,在客户端10从内容源终端50上获取流媒体数据之前,方法还可以包括如下步骤:内容源终端50向满足以下任意一个或多个条件的客户端10优先上传流媒体数据,条件包括:客户端10需要上传的流媒体数据最多;客户端10与内容源终端50处于相同的网段;客户端10为新加入的终端节点。\n[0084] 优选地,在客户端10根据条件参数在中心目录服务器30中获取一个或多个内容源终端50的地址,并将地址加入客户端10的伙伴终端列表之后,方法还可以包括:按照预定周期来定期更新伙伴终端列表,并周期性的共享伙伴终端列表中内容源终端50的终端数据。\n[0085] 如图2-6所示,本发明具体的实施例提供的流媒体传输系统包括:客户端10、流媒体中心目录服务器30,内容源终端50(例如流媒体终端服务器),其中内容源终端50又包括普通用户终端节点502和优选用户终端节点503。用户节点和服务器节点之间的连接方式如图2所示。总体上分为两层,服务器间互联层和用户终端节点间互联层。在实时流媒体数据传输过程中,在中心目录服务器管理下,服务器间互联层采用TCP协议进行流媒体终端服务器之间的数据交换,用户间互联层采用UDP协议进行用户间的数据交换。服务器和用户之间采用基于UDP或TCP的协议进行数据交换。其中,服务器与服务器之间的数据传输是双向的,服务器与用户之间的数据传输是单向的,用户节点之间的数据传输是双向的。\n特别地,优选用户节的数据传出要大于输入。\n[0086] 当客户端(即新用户)请求流媒体数据时,按照如下1)到17)的流程步骤进行。\n[0087] 具体地,本发明上述流媒体数据传输方法详细的工作流程包括以下步骤:\n[0088] 1)预先地,流媒体服务器以TCP方式互连,并且在节目开始前将热门直播和点播内容预分发到各流媒体边缘服务器。\n[0089] 2)新用户通过网页或终端重定向访问流媒体业务数据,向中心目录服务器30发送获取特定点播或直播内容请求(该用户也称为请求用户),在访问过程中,根据自身网络情况,主动选择获取流媒体业务方式:单向直连接入或双向共享接入。对于网络带宽过低的用户(如拨号上网用户或移动用户,一般接入带宽小于1Mbps),启动C/S模式单向直连接入。一般用户默认启动服务器与P2P结合的双向共享接入模式,需要高清视频的用户默认选择双向共享接入。\n[0090] 3)中心目录服务器接收到客户端用户请求后,对单向直连接入用户直接返回就近的流媒体边缘服务器地址列表;对双向共享接入用户的请求,目录服务器根据不同内容源节点优先级,对正在播放用户所请求节目的用户节点和流媒体服务器节点量化打分后,向用户返回不同优先级的可获取所请求内容的节点地址列表。\n[0091] 4)客户端用户根据中心目录服务器返回的地址列表向内容源节点发送请求。\n[0092] 5)内容源终端节点在接收到客户端的用户数据请求后,根据一定原则同意部分用户的请求。内容源节点包括普通用户节点、优选用户节点和服务器节点。内容源用户节点根据请求用户上传带宽优先和新加入优先结合的原则,有选择地接受部分请求节点;内容源服务器节点在不超过自身负载情况下默认接受所有节点请求,如本机没有所请求内容,利用TCP协议从其他服务器节点中获取,并缓存到本地供其他节点获取。\n[0093] 6)在内容源终端节点接受请求后,新用户将其加入伙伴终端列表,伙伴终端列表中包括一个或多个可以提供流媒体数据的内容源终端的地址。\n[0094] 7)根据接收请求的伙伴终端列表中的终端节点的情况,优先地,新用户通过UDP协议向普通用户终端节点获取数据;其次,通过UDP协议向优选用户终端获取数据;再次地,利用TCP协议向较近的服务器终端节点;最后,利用UDP协议向较远的服务器终端节点获取数据。\n[0095] 8)客户端新用户在内存中设置数据缓冲区来提前缓存一定长度的即将播放的视频。如果新用户缓存中内容未满,启动缓存P2P多发机制,以大于当前播放速度一定倍数的下载速度获取内容,实现快速启动。\n[0096] 9)在播放过程中,新用户当前播放的数据块的后续数据块按自然顺序作为优先级进行获取,组成数据块的最小数据包按随机顺序获取。\n[0097] 10)当新用户缓存中数据低于设定刻度值,启动分级预警机制,由报警级别由高到底,以增加服务器TCP直连,增加优选节点UDP共享,增加普通节点UDP共享为序,向新用户提供内容。\n[0098] 11)新用户播放缓存中的数据,并将播放后和播放中的数据存到本地缓存和硬盘指定目录。\n[0099] 12)用户周期性地主动与其他伙伴节点交换其缓存中的数据块信息,从其他伙伴节点中提前获取未拥有的数据块,分享在本地缓存和硬盘中拥有的其他节点未拥有的数据块。\n[0100] 13)如果用户确认之前连接的内容源节点无法连接后,将主动请求从其他伙伴节点获取缓存中缺失的数据,并周期性地联系目录服务器,动态更新伙伴节点目录。\n[0101] 14)在新用户自身播放的同时,流媒体目录服务器会导引其他在播放同一节目的用户主动连接到本用户,向本用户询问拥有的数据块。\n[0102] 15)如果本用户的缓存和本地硬盘存储中拥有其它用户需要的数据块,则根据本用户自身负载状况,有选择地向其它用户返回所请求的数据块。\n[0103] 16)如果本用户没有其他用户所请求的数据块,返回本用户的伙伴节点地址列表给其他请求用户。\n[0104] 17)当用户上下行速率达到总带宽一定警戒比例时,本用户自发拒绝所有用户的请求。\n[0105] 特别地,在流媒体节目开始时,用户根据自身网络状况,主动选择单向直连式或者双向共享式接入。如图2、图4和图5所示,选择服务器直连形式的客户端用户(一般为接入带宽小于1Mbps)将直接从服务器终端(例如流媒体边缘服务器)处获取稳定的流媒体数据;选择双向共享式的客户端用户,首先启动P2P多发访问机制,以迅速下载部分流媒体数据以快速启动播放和为后续共享过程提供数据。按P2P方式接入的客户端,一般选择的获取数据内容源终端节点的优先级为:普通用户终端节点,优选用户终端节点,同网段的终端流媒体服务器终端节点,非同网段的终端流媒体服务器终端节点。\n[0106] 特别地,在播放过程中,用户预取部分流媒体数据块存入缓存中,边播放缓存中数据,边从其他节点(服务器或用户节点)中不断获取数据,同时与其他用户节点共享。如图6所示,根据不同的缓存报警机制,由报警级别由高到底,客户端用户选择的数据获取源优先级为:终端流媒体服务器节点,优选用户终端节点,普通用户终端节点。流媒体数据在传输时被切分成固定大小的数据包,固定数量数据包形成数据块。在与内容源节点成功连接后,用户缓存中的数据要首先根据顺序原则按播放顺序的先后为优先级获取数据块,而每个数据块中的数据包根据可用性原则从不同节点源中以随机顺序获取。用户缓存中的数据在满足播放的同时,提供给其他用户共享。\n[0107] 总体地,在空间上,本方案实现两层P2P的构建:1)结构化边缘服务器P2P:优化调度边缘服务器节点资源,从超负荷服务器转移负载给可用其他服务器节点,实现负载均衡和带宽高效利用。2)非结构化终端用户P2P:采用纯多发送端多接收端P2P,实现系统最大扩展性。\n[0108] 总体地,在时间上,本方案流媒体数据的分发可分为三个阶段:1)以服务器为主源的TCP分发。服务器节点之间进行P2P式的内容预分发,和所有新加入节点从服务器获取初始内容源。2)服务器与用户节点混合的TCP和UDP分发。随着用户数量的增加和用户可共享内容的增加,P2P网络开始增长,部分节点仍从服务器获取内容,部分节点则可直接从其他P2P节点获取所请求的媒体内容。3)以用户节点为主源的UDP分发。P2P网络已经发展成熟,可以直接支持节点需求。只有临时节点失效才从服务器节点获得支持。\n[0109] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。\n[0110] 从以上的描述中,可以看出,本发明实现了如下技术效果:针对现有技术存在的不足,本发明提出按需分发的云流媒体数据传输方法,主要实现传统流媒体数据传输方法不能很好保障的如下功能:1)连接方式根据用户网络带宽情况,实现C/S(客户端10/服务器)与P2P模式(对等互联)的主动选择;2)数据获取方式上,利用缓存多发和缓存报警机制保证播放的连续性;3)保障流媒体数据获取的及时性,在网络抖动和负载过重导致单节点失效的情况保证了流媒体数据的及时性和稳定性。\n[0111] 本发明提供的流媒体数据传输方法可应用于大规模流媒体应用和新一代云流媒体应用,可以实现面向PC、IPTV机顶盒、手机、MID及其他移动终端的高效内容分发,保障用户稳定、清晰、流畅的获取流媒体数据,按需获取网络直播、点播等流媒体服务。\n[0112] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。\n[0113] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2021-06-15
未缴年费专利权终止
IPC(主分类): H04L 29/06
专利号: ZL 201110180285.8
申请日: 2011.06.29
授权公告日: 2015.07.01
- 2020-06-30
专利权的转移
登记生效日: 2020.06.10
专利权人由北京原力创新科技有限公司变更为卫小刚
地址由100193 北京市海淀区中关村软件园区2C(2173)室变更为044000 山西省运城市盐湖区府东街263号
- 2015-07-01
- 2012-03-28
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201110180285.8
申请日: 2011.06.29
- 2012-02-15
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-11-07
|
2007-06-01
| | |
2
| |
2007-07-25
|
2006-01-19
| | |
3
| |
2008-03-05
|
2006-10-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |