在媒体分发网络中实现视频直播的系统、方法和客户端的制作方法

文档序号:7964169阅读:174来源:国知局
专利名称:在媒体分发网络中实现视频直播的系统、方法和客户端的制作方法
技术领域
本发明涉及在媒体分发网络中传输视频的技术,特别涉及一种在媒体分发网络中实现视频直播的系统、方法和客户端。
背景技术
随着互联网的发展,用户在使用网络时对网站的浏览速度和效果更加重视,但由于用户数量激增,网络访问路径过长,从而使用户的访问质量受到严重影响。特别是当用户与网站之间的链路被突发的大流量数据拥塞时,对于异地互联网用户急速增加的地区来说,访问质量不良更是一个急待解决的问题。如何才能让各地的用户都能够进行高质量的访问,并尽量减少由此而产生的费用和网站管理压力呢?内容分发网络(CDN,Content DeliveryNetwork)出现了。
CDN通过在英特网中增加一层网络架构,将网站的内容从中心节点发布到最接近用户的边缘节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。因此,CDN可以明显提高英特网中信息流动的效率,从技术上全面解决由于网络带宽小、用户访问量大、网站所在站点分布不均等问题,提高用户访问网站的响应速度。
由于网络应用的不断出现,用户对多媒体内容的需求也不断增加,比如视频点播和视频直播等。CDN相关技术也逐渐被运用到了视频内容的分发上,产生了专门用于传输多媒体内容的媒体分发网络(MDN,Media DeliveryNetwork)。由于视频传输具有实时性和大容量的特点,通过将视频内容分布到靠近用户的边缘节点上,可以为用户提供更好的播放质量,同时又能大大降低对骨干网络的冲击。
图1为现有技术MDN的结构示意图,包括中心节点以及通过承载网与中心节点交互的边缘节点。在中心节点中,包括全局负载均衡器(GSLB,Globle Service Load Balance)、媒体管理器(MM,Media Mangaer)和媒体服务器(MS,Media Server);在边缘节点中,包括本地负载均衡器(SLB,Service Load Balance)、MM和MS。其中,GSLB根据用户对媒体内容的请求将媒体内容调度到靠近用户的边缘节点上;SLB负责本地用户的媒体内容请求路由和负载平衡,根据媒体内容分发和设备负载情况选择最优MS为用户提供服务;MM,通过PULL和PUSH技术进行媒体内容的分发,在中心节点和边缘节点之间、边缘节点和边缘节点之间以及边缘节点内的多个MS之间进行。
在MDN中,用户通过点击中心节点上的直播统一资源定位(URL,Universal Resource Locator)来启动直播流程,这个URL请求会被交给中心节点的GSLB来处理,GSLB通过进一步调度把该请求重定向到某个边缘节点上,边缘节点上的SLB通过MM最终再将该请求重定向到某个MS上。调度的原则主要基于地理位置就近和负载状况。最终提供服务的MS为用户提供单播视频流数据。
在目前的MDN中,用户对视频内容的请求被重定向到边缘节点后,就直接由边缘节点上的MS来提供单播视频流数据为用户服务,但是在这种方案中,对于视频点播内容和视频直播内容对MDN的负荷是相同的,MDN要为每个请求维护一个数据传输通道。
由于是由MS为用户提供单播视频流数据,而边缘节点上MS的带宽是确定的,因此能服务的用户数量是非常有限的,要想满足用户的需求,边缘节点的能力要随用户数量的增加作线性增长,因此对边缘节点的投资庞大。
目前,还可以提供一种方案为用户提供视频数据流,以下进行具体叙述。
由于点播和直播的差异性,对两种视频流数据需求作区分点播还是以单播方式为用户提供媒体流;而直播由于所有用户需要的为相同时间点的内容,因此可以用网际协议(IP,Internet Protocol)层组播的方式来提供视频流数据。在这种方案中,收看同一个直播的所有用户都加入一个组播组中,由视频流数据要经过的网络设备(包括路由器和交换机等组成网络基础架构的网元)来分发数据,因此MS只需要传输一路视频流数据就可以了。应用这种技术来提供直播对MS的负荷是最小的,也是最理想的状态。
但是,这种方案也存在着缺点由于组播方式需要网络底层的支持,而现有网络的异构性对组播的支持十分有限,因此在现有网络上开展组播还需要继续研究,这个方案适合于新建的网络,从开始规划时就考虑各个网络设备对组播的支持。

发明内容
有鉴于此,本发明的主要目的在于提供一种在MDN中实现视频直播的系统,该系统能够提高MDN的负荷率,从而使MDN具有更好的扩张性,使得MDN能更好地支持用户请求视频直播数据的增长。
本发明还提供一种在MDN中实现视频直播的方法,该方法能够提高MDN的负荷率,从而使MDN具有更好的扩张性,使得MDN能更好地支持用户请求视频直播数据的增长。
本发明还提供一种在MDN中实现视频直播的客户端,该客户端能够采用P2P方式获取到视频直播数据。
根据上述目的,本发明的技术方案是这样实现的一种在媒体分发网络MDN中实现视频直播的系统,该系统包括MDN,该系统包括点对点客户端、在MDN的边缘节点中包括节点网关控制器和点对点媒体服务网关,其中,节点网关控制器,用于接收由全局负载均衡器GSLB重定向到本地负载均衡器SLB再重定向到自身的直播频道请求,根据存储的由其他点对点客户端或点对点媒体服务网关发送的直播频道信息确定接收该请求中直播频道传送的视频直播数据的其他点对点客户端或点对点媒体服务网关,将所确定其他点对点客户端或点对点媒体服务网关的地址信息发送给点对点客户端,向点对点媒体服务网关发送建立点对点直播点的命令;点对点媒体服务网关,用于根据接收到节点网关控制器发送的点对点直播点命令建立点对点直播点,从具有直播频道请求中直播频道的媒体服务器MS上接收直播频道的视频直播流数据并缓存为视频直播数据后,将缓存后的该视频直播数据发送给与自身建立连接的点对点客户端,向节点网关控制器发送直播频道信息;点对点客户端,用于向GSLB发起直播频道请求,根据从节点网关控制器接收到的所确定其他点对点客户端或点对点媒体服务网关的地址信息中选取至少一个建立连接,从所建立连接的点对点客户端上或点对点媒体服务网关上接收该请求中直播频道传送的视频直播数据。
所述点对点媒体服务网关还用于在节点网关控制器的指示下删除点对点直播点;所述节点网关控制器还用于向点对点网关媒体服务网关指示删除点对点直播点。
所述点对点媒体服务网关还包括点对点直播点管理模块、点对点直播服务模块和网关信息报告模块,其中,点对点直播点管理模块用于在节点网关控制器的指示下建立或删除点对点直播点;点对点直播服务模块用于与点对点客户端建立连接,将缓存后的该视频直播数据发送给与自身建立连接的点对点客户端;网关信息报告模块用于向节点网关控制器上报直播频道信息。
所述节点网关控制器还包括点对点客户端通讯模块、点对点网关管理模块和数据记录模块,其中,点对点客户端通讯模块,用于接收重定向到自身的直播频道请求,根据从数据记录模块存储的由其他点对点客户端发送的直播频道信息确定接收该请求中直播频道传送的视频直播数据的其他点对点客户端,将所确定其他点对点客户端的地址信息发送给点对点客户端,接收其他点对点客户端发送的直播频道信息且发送给数据记录模块存储;点对点网关管理模块,用于接收重定向到自身的直播频道请求,根据从数据记录模块存储的由点对点媒体服务网关发送的直播频道信息确定接收该请求中直播频道传送的视频直播数据的点对点网关媒体服务网关,将所确定点对点网关媒体服务网发送给点对点客户端,接收点对点媒体服务网关发送的直播频道信息且发送给数据记录模块存储,指示点对点媒体服务网关建立或删除点对点直播点。
所述点对点客户端包括请求控制模块、点对点传输模块和播放模块,其中,请求控制模块用于向GSLB发起直播频道请求、以及与GSLB、SLB和节点网关控制器实现消息交互;点对点传输模块用于所确定其他点对点客户端或点对点媒体服务网关的地址信息中选取至少一个建立连接,接收该请求中直播频道传送的视频直播数据发送给播放模块;播放模块,用于对接收到的视频直播数据进行解码,显示给用户。
所述存储的由点对点媒体服务网关发送的直播频道信息为直播频道标识、点对点媒体服务网关的网际协议地址和端口号以及热度。
所述存储的由点对点客户端发送的直播频道信息为直播频道标识、点对点客户端的网际协议地址和端口号以及时间戳。
一种在MDN中实现视频直播的方法,在MDN的边缘节点中设置存储直播频道信息的节点网关控制器,该方法还包括A、点对点客户端向GSLB发起直播频道请求,该请求被重定向到边缘节点中的SLB,再被重定向到节点网关控制器;B、节点网关控制器根据存储的直播频道信息确定当前接收该请求中直播频道传送的视频直播数据的其他点对点客户端或/和建立的缓存有直播频道传送的视频直播数据的点对点媒体服务网关,将所确定的其他点对点客户端或/和点对点媒体服务网关的地址信息发送给点对点客户端;C、点对点客户端从接收到地址信息中选取至少一个进行连接后,接收由所连接的其他点对点客户端或/和点对点媒体服务网关发送的该请求中直播频道传送的视频直播数据。
在步骤B之前,该方法还包括;节点网关控制器根据存储的直播频道信息判断是否有当前接收该请求中直播频道传送的视频直播数据的点对点媒体服务网关或其他点对点客户端,如果是,则执行步骤B;否则,转入步骤B1;B1、节点网关控制器根据存储的直播频道信息选取本边缘节点中的一个点对点媒体服务网关,向该点对点媒体服务网关发送建立该请求中直播频道的点对点直播点命令;B2、该点对点媒体服务网关向SLB发送获取该直播频道传送的视频直播数据的请求,SLB重定向该请求到具有该直播频道的MS上,MS向该点对点媒体服务网关发送该直播频道传送的视频直播流数据,该点对点媒体服务网关将视频直播流数据以分片数据的结构缓存为视频直播数据后,向节点网关控制器发送直播频道信息,然后执行步骤B。
该方法还包括节点网关控制器根据存储的直播频道信息判断点对点客户端是否已经退出,如果是,则向提供该请求中直播频道传送的视频直播数据的点对点媒体服务网关发送删除命令;该点对点媒体服务网关根据该命令停止从MS接收该请求中直播频道传送的视频直播流数据,等待当前给点对点客户端传输的视频直播数据完成后,删除所缓存的视频直播数据。
所述存储直播频道信息为具有直播频道标识、具有对应直播频道标识的直播频道传输的视频直播数据的其他点对点客户端的端口号、网际协议地址和时间戳、或/和具有对应直播频道标识的直播频道传输的视频直播数据的点对点媒体服务网关的端口号、网际协议地址和热度。
在步骤A所述该请求被重定向到边缘节点中的SLB之后,该方法还包括SLB根据该请求确定是否是点对点请求,如果是,执行步骤A的后续步骤。
所述确定该请求是否为点对点请求的过程为判断该请求在统一资源标识URL是否设置了点对点请求标识,如果是,则是点对点请求。。
所述确定该请求是否为点对点请求的过程为判断该请求在RTSP/HTTP应用层协议中是否将用户代理参数字段设置了设定的表示点对点请求的值,如果是,则是点对点请求。
一种在MDN中实现视频直播的客户端,该客户端包括请求控制模块、点对点传输模块和播放模块,其中,请求控制模块,用于向GSLB发起直播频道的请求,GSLB将该请求重定向到SLB,SLB再将该请求重定向到节点网关控制器,由节点网关控制器完成该请求以及后续的与节点网关控制器的定期消息交互,从节点网关控制器获取点对点媒体服务网关和其他点对点客户端的地址信息后,发送给点对点传输模块;点对点传输模块,用于根据从请求控制模块得到的地址信息从点对点媒体服务网关或其他点对点客户端获取视频直播数据,发送给播放模块;播放模块,用于对从点对点传输模块接收到的视频直播数据进行解码,显示给用户。
从上述方案可以看出,本发明在MDN的边缘节点中设置存储有直播频道信息的节点网关控制器(Tracker),当接收到由P2P client发起的被重定向到自身的直播频道请求后,根据存储的直播频道信息确定当前具有该直播频道传送的视频直播数据的其他P2P client或/和在本边缘节点设置的点对点媒体服务网关(P2P MSGW),将这些设备的地址信息发送给P2P client,P2P client根据接收到地址信息选取至少一个建立P2P连接,获取该直播频道传送的视频直播数据。由于本发明通过P2P模式为P2P client提供直播频道传送的视频直播数据,提供者可以为其他P2P client或/和在本边缘节点设置的P2P MSGW,而不像现有技术那样必须由本边缘节点中的MS通过超文本传输协议(HTTP,HyperTextTransfer Protocol)或请求发送协议(RTSP,Request to send Protocol)提供视频直播流数据,从而使MDN具有更好的扩张性,使得MDN能更好地支持用户请求视频直播数据的增长。


图1为现有技术MDN的结构示意图;图2为本发明在MDN中实现视频直播的系统示意图;图3为在MDN中实现视频直播的模块结构示意图;图4为频道节点数据模块的结构示意图;图5为P2P网关数据模块的结构示意图;图6为P2P直播点管理模块解析视频直播流数据且缓存视频直播分片数据的数据结构示意图;图7为在MDN中实现视频直播的方法流程图。
具体实施例方式
为了使本发明的目的、技术方案和优点更加清楚明白,以下举具体实施例并参照附图,对本发明进行进一步详细的说明。
通过现有技术的MDN来传输视频直播流数据,用户可以就近从最近的边缘节点获取视频直播流数据。但是受限于MDN中边缘节点能力的限制,支持的最大并发用户的数量是确定的。由于在同一时间内用户发起的直播频道的请求的数目具有很大的不确定性,即使增加边缘节点的能力也不可能满足在同一时间内用户发起的直播频道请求的数目突发性增长。因此,一旦在同一个时间内用户发起的直播频道请求的数目超过所属边缘节点的能力,该边缘节点只能拒绝服务。即使通过调度由中心节点或其他边缘节点来提供视频直播服务,也没有解决对整个MDN的负荷过大问题,而且对骨干网络也造成了很大压力。
根据上述分析,本发明利用用户使用客户端的能力在所属边缘节点的范围内通过点对点协议(P2P)互相传输视频直播数据,从而使MDN具有更好的扩张性,使得MDN更好地支持用户发起的直播频道请求的数目突发性增长。
为了实现用户所使用的客户端之间的视频直播数据的相互传输,在MDN现有的边缘节点中增加一个tracker以及至少一个P2P MSGW。图2为本发明在MDN中实现视频直播的系统示意图,该系统包括中心节点和通过承载网与中心节点相连接的至少一个边缘节点。在中心节点中,包括GSLB、MM和MS;在边缘节点中,除了包括SLB、MM和MS之外,还包括本发明提供的Tracker和至少一个P2P MSGW,其中,Tracker分别与SLB、点对点客户端(P2P client)和P2P MSGW进行消息交互相连接,P2P MSGW分别与P2P client、Tracker和MS进行消息交互或视频直播数据的传输。
Tracker,用于接收依次由GSLB重定向到SLB再重定向到自身的直播频道请求,根据存储的直播频道信息确定接收该直播频道传送的视频直播数据的P2P MSGW或/和其他P2P client,将所确定P2P MSGW或/和其他P2P client的地址信息发送给P2P client。
P2P MSGW,用于在Tracker的指示下建立或删除P2P直播点,从具有直播频道传送的视频直播流数据的MS上接收该视频直播数据并缓存为视频直播数据后,将缓存后的该视频直播数据发送给与自身连接的P2P client。
P2P client,用于向GSLB发起直播频道的请求,根据从Tracker接收到的所确定P2P MSGW或/和其他P2P client的地址信息中选取至少一个设备建立连接,接收该直播频道传送的视频直播数据。
在本发明中,在Tracker中存储有直播频道信息,该信息是当前缓存有视频直播数据的P2P MSGW或/和P2P client定期上报的。
现有的SLB中有HTTP/RTSP服务模块,可以根据P2P client发送的直播频道请求分别进行HTTP重定向或RTSP重定向。现有的SLB需要对P2P client的请求作区分,以判断哪些请求仍然按照现有方式重定向到MS上,哪些请求需要重定向到Tracker上。例如,P2P client请求的是rtsp//202.56.45.53/PhenixNews?mode=p2p,其中202.56.45.53是SLB的IP地址,SLB的HTTP/RTSP服务模块根据mode=p2p属性来判断该请求需要用P2P模式来满足,即将该请求重定向到Tracker上。
以下详细叙述Tracker、P2P MSGW和P2P client是如何进行消息交互和传输视频直播数据的。
图3为在MDN中实现视频直播的模块结构示意图,如图所示Tracker由P2P客户端通讯模块、P2P网关管理模块和数据记录模块这3个模块组成。
数据记录模块中包括频道节点数据模块和P2P网关数据模块,其中,频道节点数据模块的结构示意图如图4所示,P2P网关数据模块的结构示意图如图5所示。在频道节点数据模块中包括直播频道标识(ID),用于唯一标志直播频道,可以是直播频道的名称、直播频道的唯一编号等;P2P MSGW信息,至少一条P2P MSGW记录,每条P2P MSGW记录包括P2P MSGW的IP地址、P2P连接端口号和热度,即P2P MSGW定期上报当前直接从自身获得直播的P2P client数量;P2P client信息,0条或多条客户端记录,每条记录包括P2P client的IP地址、端口信息和时间戳。在P2P网关数据模块中包括网关IP、网关控制端口、中央处理器(CPU)利用率、可用内存大小和可用带宽大小,其中,前面两项用于Tracker和P2P MSGW进行通讯,发送控制消息,后面三项用于Tracker进行负载均衡。
P2P客户端通讯模块的主要功能是使收看同一频道的P2P client之间互相发现,从而互相传输视频直播数据。P2P client对某个直播频道的请求被重定向到Tracker后,由该模块读取频道节点数据模块中存储的该直播频道的信息,返回给P2P client该直播频道的限定数量的P2P client信息和P2P MSGW信息。如果限定数量太多,加重Tracker负担;如果限定数量太少,有可能不满足P2P client连接的需要,从而导致客户端经常向Tracker发送直播频道更新消息。另外,在用户通过P2P client接收视频直播数据时,也会向P2P客户端通讯模块定期发送直播频道更新消息,P2P客户端通讯模块也会定期和Tracker进行信息交互,获取新的P2P MSGW和其他P2P client的地址信息。同时,Tracker要更新该P2P client的相关信息,即在直播频道标识ID存储该P2P client当前接收视频直播数据的直播频道、在P2P client信息中存储该P2P client的IP地址、端口信息和时间戳,以及将这两个数据项相关联。在P2P client信息中存储该P2P client的时间戳是该P2P client和Tracker进行通讯的时间,包括第一次发起的,即通过SLB重定向到Tracker的时间或以后定期发起的直接到Tracker的更新消息的时间。设置时间戳的目的在于,P2P客户端通讯模块可以定期检测时间戳,判断是否超过所设置的时间,如果是,则确定P2P client已经非正常推出视频直播服务,直接将该P2P client的信息从相应数据项中删除;如果否,则再定期检测时间戳。当然,P2P client也可以直接向P2P客户端通讯模块发送请求,请求将该P2P client的信息从相应数据项中删除,P2P客户端通讯模块接收到后,数据该P2P client的信息。
P2P网关管理模块的主要功能是维护P2P MSGW状态,在P2P MSGW上建立和删除P2P直播点。当P2P client对某个直播频道的请求被重定向到Tracker时,如果之前在所属边缘节点上没有任何P2P client收看该直播频道,则在频道节点数据模块中没有相应的存储信息,这时,该模块根据数据记录模块的P2P网关数据模块的负载信息选择一个P2P MSGW,指示其建立P2P直播点后,将该P2P MSGW的信息存储在数据记录模块中,即直播频道标识ID对应一个P2PMSGW信息和一个P2P client信息,前者包含至少一个P2P MSGW记录,后者包含0个或多个P2P client记录。当P2P网关管理模块检测到当前某个直播频道已经没有P2P client在接收视频直播数据时,P2P网关管理模块指示相应的P2P MSGW删除相应的P2P直播点后,将存储在数据记录模块中的该P2PMSGW的信息删除。
如图3所示,P2P MSGW包括P2P直播点管理模块、P2P直播服务模块和网关信息报告模块。
P2P直播点管理模块用于根据Tracker中的P2P网关管理模块指示,建立或删除P2P直播点。
建立P2P直播点的过程为第一步,P2P直播点管理模块根据Tracker发送的直播频道URL向SLB请求视频直播流数据;第二步,SLB接收到该请求后,将该请求按照现有技术重定向到MS上,该MS有该视频直播流数据;第三步,MS接收到该请求后,将该视频直播流数据通过现有的MMS/HTTP/RTP向P2P直播点管理模块发送;第四步,P2P直播点管理模块解析该视频直播流数据且缓存视频直播数据,缓存方式如下所述;第五步,P2P直播点管理模块准备接受P2P client的请求,根据直播频道ID和分片时间标志提供所缓存的视频直播数据。
在第四步中,P2P直播点管理模块解析该视频直播流数据且缓存为视频直播数据的数据结构如图6所示根据视频直播流数据中的时间信息,将视频直播流数据按照时间分片,如以1秒为单位,并且为每个分片上打上时间标志,在本地缓存一段时间,如20秒的分片视频直播数据。图6中当前正在接收到的分片数据为n,则在本地已经缓存的分片数据为从n~n-20。
删除P2P直播点的过程为第一步,P2P直播点管理模块根据Tracker发送的删除消息中的直播频道ID,断开与MS之间的连接,停止接收该直播频道传输的视频直播流数据;第二步,P2P直播点管理模块给P2P client传输完当前正在传输的视频直播数据后,拒绝为P2P client后续发送的直播频道的请求;第三步,P2P直播点管理模块删除所缓存的视频直播数据。
P2P直播服务模块的主要功能是接受P2P client客户端的连接,为客户端提供所缓存的视频直播数据。
网关信息报告模块的主要功能是定期向Tracker上报已经建立的P2P直播点的热度、网关负载信息等数据,即定期向Tracker的P2P网关管理模块上报,Tracker的数据记录模块将上报的信息存储在相应的频道节点数据模块和P2P网关数据模块中的相应数据项中。
如图3所示,P2P client包括请求控制模块、P2P传输模块和播放模块。
请求控制模块,用于向中心节点的GSLB发起直播频道的请求,GSLB会将该请求重定向到SLB,SLB再将该请求重定向到Tracker,由Tracker完成该请求以及实现后续的与Tracker的定期消息交互,获取新的P2P MSGW和其他P2P client的地址信息,同时,Tracker要更新该P2P client的相关信息。
P2P传输模块,采用现有P2P直播技术实现,用于与P2P MSGW或其他P2P client交互并获取视频直播数据。
播放模块,对接收到的视频直播数据进行解码,并显示给用户。
本发明还提供一种在MDN中实现视频直播的方法,图7为在MDN中实现视频直播的方法流程图,预先在各个边缘节点中设置存储有直播频道信息的Tracker和缓存有直播频道传输的视频直播数据的P2P MSGW,其具体步骤为步骤700、用户通过P2P client向中心节点的GSLB发起直播频道的请求,该请求携带有直播频道的URL和要求以P2P模式接收直播频道传送的视频直播数据的信息。
步骤701、GSLB接收到该请求后,按照现有技术采用就近原则将该请求重定向到P2P client就近边缘节点的SLB上。
步骤702、该SLB根据该请求携带的以P2P模式接收直播频道传送的视频直播数据的信息判断是P2P请求,将该请求采用现有技术重定向到同一边缘节点的Tracker上。
步骤703、该Tracker根据存储的直播频道信息判断是否有提供该请求指定的直播频道的视频直播数据的P2P MSGW或/和P2P client,如果有,转入步骤708;如果没有,转入步骤704。
步骤704、该Tracker按照各个P2P MSGW负载情况选择一个P2P MSGW,向所选择的P2P MSGW发送建立P2P直播点的命令,该P2P直播点为该请求指定的直播频道的直播点。
步骤705、所选择的P2P MSGW向本边缘节点的SLB发出请求该直播频道数据的请求,该请求被SLB重定向到提供该直播频道的视频直播流数据的MS上,MS给所选择的P2P MSGW发送该视频直播流数据,该P2P MSGW采用应用层分片打包的方法缓存视频直播数据。
步骤706、所选择的P2P MSGW向该Tracker通知已经建立好P2P直播点。
步骤707、该Tracker存储该直播频道信息。
步骤708、该Tracker返回提供该请求指定的直播频道传输的视频直播数据的P2P MSGW或/和P2P client的地址信息给P2P client。
步骤709、P2P client根据接收到的P2P MSGW或/和P2P client的地址信息随机选取至少一个与其建立连接,接收所缓存的视频直播数据。
以下举两个具体实施例说明本发明。
具体实施例一第一步、现有的MDN中直播频道URL为rtsp//www.aaa.com/PhenixNews,那在本系统中提供P2P直播的URL为p2p//www.aaa.com/PhenixNews?mode=rtsp。
第二步、用户点击网页上的URL,根据”p2p//”客户操作系统可以自动打开关联的P2P client,P2P client将URL修改为rtsp//www.aaa.com/PhenixNews?mode=p2p后发起直播频道请求。
第三步、MDN将请求重定向到提供PhenixNews的边缘节点的SLB上。
第四步、SLB根据请求中的URL的参数mode=p2p判断这是一个P2P请求,因此重定向到本边缘节点的Tracker上。这时Tracker收到请求的URL是rtsp//tracker的IP/PhenixNews?mode=p2p。
第五步、Tracker根据URL里的直播频道ID(”PhenixNews”)搜索所存储的直播频道信息,如果没有,则需要先在P2P MSGW上建立P2P直播点后,再返回P2P MSGW和P2P client的地址信息给当前请求的P2P client;如果有,则返回P2P MSGW和P2P client的地址信息给当前请求的P2P client。
需要要注意的是,P2P client第一次向Tracker发送的是请求发送协议建立(RTSP SETUP)消息,Tracker返回一个消息指示接下来进行直播频道节点信息交互,然后P2P client上报自身IP、端口等信息,Tracker再返回P2P MSGW和P2P client的地址信息。
第六步、P2P client根据接收到的P2P MSGW和P2P client的地址信息,选择至少一个建立连接获取视频直播数据。
具体实施例二第一步、现有的MDN中直播频道URL为rtsp//www.aaa.com/PhenixNews。
第二步、用户点击网页上的URL,通过将P2P客户端和“rtsp//”作关联,客户操作系统可以自动打开P2P client。客户端通过标准的RTSP请求该URL。
第三步、MDN将用户请求重定向到提供PhenixNews的SLB上。
第四步、P2P client向SLB请求该URL,具体如下RTSP SETUP rtsp//202.83.8.1/PhenixNews RTSP/1.0 //202.83.8.1是SLB的IP地址CSeq3 //序列号TransportRTP/AVP/UDP;//传输方式unicast;client_port=5576-5577;[mode=″PLAY″]//单播;客户端端口号;模式为播放User-Agentp2p client //用户代理属性,即接收视频直播数据的方式第五步、SLB根据用户代理(User-Agent)的属性判断是P2P client,重定向到本边缘节点的Tracker上,这时Tracker收到的应用层消息是如第四步所述的RTSP SETUP消息。
第六步、Tracker根据URL里的直播频道ID(”PhenixNews”)搜索所存储的直播频道信息,如果没有,则需要先在P2P MSGW上建立P2P直播点后,再返回P2P MSGW和P2P client的地址信息给当前请求的P2P client;如果有,则返回P2P MSGW和P2P client的地址信息给当前请求的P2P client。
第七步、P2P client根据接收到的P2P MSGW和P2P client的地址信息,选择其中至少一个建立连接获取视频直播数据。
本发明利用P2P技术改进了现有的MDN。本发明先通过MDN的全局调度能力将用户的请求调度到离P2P client最近的边缘节点,然后在每个边缘节点上将收看同一直播频道的客户端组织成一个边缘P2P网络。由于P2P client的数据来源在物理上相对靠近,因此传输质量比较有保证,而且大大降低了对骨干网络的压力。同时充分利用了P2P client的能力,使系统的扩张性更好,能应付用户收看直播频道请求的突发性增长。
本发明新增加的Tracker和P2P MSGW将P2P能力和原有的媒体分发能力作了比较好的隔离,既实现了P2P的能力,同时对原有MDN的架构和流程的影响很小。因此,本发明提供的系统及方法能够对P2P能力作比较好的控制和管理而不影响原有MDN的控制管理功能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种在媒体分发网络MDN中实现视频直播的系统,该系统包括MDN,其特征在于,该系统包括点对点客户端、在MDN的边缘节点中包括节点网关控制器和点对点媒体服务网关,其中,节点网关控制器,用于接收由全局负载均衡器GSLB重定向到本地负载均衡器SLB再重定向到自身的直播频道请求,根据存储的由其他点对点客户端或点对点媒体服务网关发送的直播频道信息确定接收该请求中直播频道传送的视频直播数据的其他点对点客户端或点对点媒体服务网关,将所确定其他点对点客户端或点对点媒体服务网关的地址信息发送给点对点客户端,向点对点媒体服务网关发送建立点对点直播点的命令;点对点媒体服务网关,用于根据接收到节点网关控制器发送的点对点直播点命令建立点对点直播点,从具有直播频道请求中直播频道的媒体服务器MS上接收直播频道的视频直播流数据并缓存为视频直播数据后,将缓存后的该视频直播数据发送给与自身建立连接的点对点客户端,向节点网关控制器发送直播频道信息;点对点客户端,用于向GSLB发起直播频道请求,根据从节点网关控制器接收到的所确定其他点对点客户端或点对点媒体服务网关的地址信息中选取至少一个建立连接,从所建立连接的点对点客户端上或点对点媒体服务网关上接收该请求中直播频道传送的视频直播数据。
2.如权利要求1所述的系统,其特征在于,所述点对点媒体服务网关还用于在节点网关控制器的指示下删除点对点直播点;所述节点网关控制器还用于向点对点网关媒体服务网关指示删除点对点直播点。
3.如权利要求1或2所述的系统,其特征在于,所述点对点媒体服务网关还包括点对点直播点管理模块、点对点直播服务模块和网关信息报告模块,其中,点对点直播点管理模块用于在节点网关控制器的指示下建立或删除点对点直播点;点对点直播服务模块用于与点对点客户端建立连接,将缓存后的该视频直播数据发送给与自身建立连接的点对点客户端;网关信息报告模块用于向节点网关控制器上报直播频道信息。
4.如权利要求1所述的系统,其特征在于,所述节点网关控制器还包括点对点客户端通讯模块、点对点网关管理模块和数据记录模块,其中,点对点客户端通讯模块,用于接收重定向到自身的直播频道请求,根据从数据记录模块存储的由其他点对点客户端发送的直播频道信息确定接收该请求中直播频道传送的视频直播数据的其他点对点客户端,将所确定其他点对点客户端的地址信息发送给点对点客户端,接收其他点对点客户端发送的直播频道信息且发送给数据记录模块存储;点对点网关管理模块,用于接收重定向到自身的直播频道请求,根据从数据记录模块存储的由点对点媒体服务网关发送的直播频道信息确定接收该请求中直播频道传送的视频直播数据的点对点网关媒体服务网关,将所确定点对点网关媒体服务网发送给点对点客户端,接收点对点媒体服务网关发送的直播频道信息且发送给数据记录模块存储,指示点对点媒体服务网关建立或删除点对点直播点。
5.如权利要求1所述的系统,其特征在于,所述点对点客户端包括请求控制模块、点对点传输模块和播放模块,其中,请求控制模块用于向GSLB发起直播频道请求、以及与GSLB、SLB和节点网关控制器实现消息交互;点对点传输模块用于所确定其他点对点客户端或点对点媒体服务网关的地址信息中选取至少一个建立连接,接收该请求中直播频道传送的视频直播数据发送给播放模块;播放模块,用于对接收到的视频直播数据进行解码,显示给用户。
6.如权利要求1所述的系统,其特征在于,所述存储的由点对点媒体服务网关发送的直播频道信息为直播频道标识、点对点媒体服务网关的网际协议地址和端口号以及热度。
7.如权利要求1所述的系统,其特征在于,所述存储的由点对点客户端发送的直播频道信息为直播频道标识、点对点客户端的网际协议地址和端口号以及时间戳。
8.一种在MDN中实现视频直播的方法,其特征在于,在MDN的边缘节点中设置存储直播频道信息的节点网关控制器,该方法还包括A、点对点客户端向GSLB发起直播频道请求,该请求被重定向到边缘节点中的SLB,再被重定向到节点网关控制器;B、节点网关控制器根据存储的直播频道信息确定当前接收该请求中直播频道传送的视频直播数据的其他点对点客户端或/和建立的缓存有直播频道传送的视频直播数据的点对点媒体服务网关,将所确定的其他点对点客户端或/和点对点媒体服务网关的地址信息发送给点对点客户端;C、点对点客户端从接收到地址信息中选取至少一个进行连接后,接收由所连接的其他点对点客户端或/和点对点媒体服务网关发送的该请求中直播频道传送的视频直播数据。
9.如权利要求8所述的方法,其特征在于,在步骤B之前,该方法还包括;节点网关控制器根据存储的直播频道信息判断是否有当前接收该请求中直播频道传送的视频直播数据的点对点媒体服务网关或其他点对点客户端,如果是,则执行步骤B;否则,转入步骤B1;B1、节点网关控制器根据存储的直播频道信息选取本边缘节点中的一个点对点媒体服务网关,向该点对点媒体服务网关发送建立该请求中直播频道的点对点直播点命令;B2、该点对点媒体服务网关向SLB发送获取该直播频道传送的视频直播数据的请求,SLB重定向该请求到具有该直播频道的MS上,MS向该点对点媒体服务网关发送该直播频道传送的视频直播流数据,该点对点媒体服务网关将视频直播流数据以分片数据的结构缓存为视频直播数据后,向节点网关控制器发送直播频道信息,然后执行步骤B。
10.如权利要求9所述的方法,其特征在于,该方法还包括节点网关控制器根据存储的直播频道信息判断点对点客户端是否已经退出,如果是,则向提供该请求中直播频道传送的视频直播数据的点对点媒体服务网关发送删除命令;该点对点媒体服务网关根据该命令停止从MS接收该请求中直播频道传送的视频直播流数据,等待当前给点对点客户端传输的视频直播数据完成后,删除所缓存的视频直播数据。
11.如权利要求8所述的方法,其特征在于,所述存储直播频道信息为具有直播频道标识、具有对应直播频道标识的直播频道传输的视频直播数据的其他点对点客户端的端口号、网际协议地址和时间戳、或/和具有对应直播频道标识的直播频道传输的视频直播数据的点对点媒体服务网关的端口号、网际协议地址和热度。
12.如权利要求8所述的方法,其特征在于,在步骤A所述该请求被重定向到边缘节点中的SLB之后,该方法还包括SLB根据该请求确定是否是点对点请求,如果是,执行步骤A的后续步骤。
13.如权利要求12所述的方法,其特征在于,所述确定该请求是否为点对点请求的过程为判断该请求在统一资源标识URL是否设置了点对点请求标识,如果是,则是点对点请求。
14.如权利要求12所述的方法,其特征在于,所述确定该请求是否为点对点请求的过程为判断该请求在RTSP/HTTP应用层协议中是否将用户代理参数字段设置了设定的表示点对点请求的值,如果是,则是点对点请求。
15.一种在MDN中实现视频直播的客户端,其特征在于,该客户端包括请求控制模块、点对点传输模块和播放模块,其中,请求控制模块,用于向GSLB发起直播频道的请求,GSLB将该请求重定向到SLB,SLB再将该请求重定向到节点网关控制器,由节点网关控制器完成该请求以及后续的与节点网关控制器的定期消息交互,从节点网关控制器获取点对点媒体服务网关和其他点对点客户端的地址信息后,发送给点对点传输模块;点对点传输模块,用于根据从请求控制模块得到的地址信息从点对点媒体服务网关或其他点对点客户端获取视频直播数据,发送给播放模块;播放模块,用于对从点对点传输模块接收到的视频直播数据进行解码,显示给用户。
全文摘要
一种在媒体分发网络MDN中实现视频直播的系统、方法和客户端,该方法包括A.点对点客户端向GSLB发起直播频道请求,该请求被重定向到边缘节点中的SLB,再被重定向到节点网关控制器;B.节点网关控制器根据存储的直播频道信息确定当前接收该请求中直播频道传送的视频直播数据的其他点对点客户端或/和建立的缓存有直播频道传送的视频直播数据的点对点媒体服务网关,将所确定的其他点对点客户端或/和点对点媒体服务网关的地址信息发送给点对点客户端;C.点对点客户端选取至少一个进行连接后,接收由所连接的其他点对点客户端或/和点对点媒体服务网关发送的视频直播数据。
文档编号H04L12/18GK1909509SQ20061009889
公开日2007年2月7日 申请日期2006年7月19日 优先权日2006年7月19日
发明者陈浩华, 严哲峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1