基于内容分发网络的流媒体直播系统、方法及装置的制作方法

文档序号:7692826阅读:90来源:国知局
专利名称:基于内容分发网络的流媒体直播系统、方法及装置的制作方法
技术领域
本发明涉及流媒体应用领域,尤其涉及一种基于内容分发网络的流媒体直 播系统、方法及装置。
背景技术
随着宽带的普及,流媒体应用得到了快速发展。常见的流媒体应用包括视 频展现等业务。传统的由互联网内容提供商(Internet Content Provider, ICP )直接提供流 媒体服务,具体的,ICP在一个或少数几个地方建立物理节点(ICP站点),该 物理节点直接面向全国乃至全球互联网用户提供流媒体服务,即所有互联网用 户都从这些物理节点获取流媒体数据。所述物理节点由部署的若干流媒体服务 器或集群组成。上述由ICP直接提供流媒体服务的问题在于,由于所述物理节点的网络带 宽和处理能力等瓶颈,使得用户访问体验下降,甚至出现无法访问的情况。为了避免上述问题的存在,目前采用内容分发网络(Content Distribution Network, CDN)进行流々某体数据的传输。如图1所示,CDN是在现有的互联网基础之上建立的一层覆盖网络,建 立方法是首先在全国各地部署若干CDN服务节点,然后将这些节点通过互 联网络相互连接形成分发网络。CDN将流媒体数据从ICP站点分发给互联网 用户。具体的,通过CDN传输流々某体数据的技术原理是首先,距离ICP站 点最近或者连接情况最好的一个或者多个CDN服务节点,从ICP站点上获取 流媒体数据;然后,通过建立好的CDN将该流媒体数据推送到最接近用户的CDN服务节点上;最后,用户从就近的CDN服务节点访问到所需的流媒体数 据。从而,CDN能够极大緩解互联网的拥塞情况,为用户提供低延迟、稳定 的信息服务。在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题 当较多用户同时访问CDN服务节点时,由于CDN服务节点在带宽等方面 的限制,CDN服务节点将流媒体数据传输给用户的效率较低,甚至用户对CDN 服务节点的访问失败,使得流4某体数据传输的服务质量得不到保证。发明内容本发明实施例提供一种基于内容分发网络的流媒体直播系统、方法及装 置,用以解决现有技术中内容分发网络将流媒体数据传输给用户的效率低、服 务质量得不到保证的问题。本发明实施例提供一种基于内容分发网络CDN的流媒体直播系统,该系 统包括CDN服务节点,用于向客户端提供流媒体数据以及维护在线客户端的信 息并响应对该信息的获取请求;至少一个客户端,与所述CDN服务节点相连,用于从所述CDN服务节点 获取流媒体数据;和/或从所述CDN服务节点获取在线客户端的信息,并从所 述在线客户端获取流媒体数据;以及应其他客户端请求提供流媒体数据。本发明实施例提供一种基于内容分发网络CDN的流i某体直播方法,该方 法包括客户端向CDN服务节点请求获取流媒体数据; 客户端从CDN服务节点获取在线客户端信息;若所述客户端从所述CDN服务节点成功获取所述流i某体数据,则向所述 在线客户端提供所述流媒体数据;否则,从所述在线客户端获取所述流媒体数 据。本发明实施例提供一种内容分发网络CDN服务装置,该装置包括 标准直播单元,用于向客户端提供流媒体数据;P2P直播单元,用于维护在线客户端的信息并响应对该信息的获取请求。 本发明的有益效果在于本发明中,CDN服务节点可以向客户端分发流媒体数据,同时还维护在 线客户端信息,使得客户端不仅可以从CDN服务节点获取流媒体数据,还可 以在获知在线客户端信息后从在线客户端获取流媒体数据,同时,具有流媒体 数据的客户端还可以作为种子节点向除自身之外的其他客户端提供流媒体数 据。可见,本发明结合CDN技术与P2P技术,大大提高了 CDN向用户传输 流媒体数据的效率和服务质量。


图1为现有技术中CDN的结构示意图;图2为本发明实施例所提供系统的结构示意图;图3为本发明实施例所提供系统的工作示意图;图4为本发明实施例所提供方法的流程示意图;图5为本发明实施例所提供方法实例的流程示意图;图6为本发明实施例所提供装置的结构示意图。
具体实施方式
为了提高CDN向用户传输流媒体数据的效率以及服务质量,本发明实施 例提供一种基于CDN的流媒体直播系统,本系统中,CDN的CDN服务节点 除了可以向用户分发流々某体数据,还维护在线用户信息,并在收到用户请求时 将在线用户信息提供给用户,从而该用户还可以从在线用户获取流媒体数据。如图2所示,本发明实施例提供的基于CDN的流媒体直播系统包括至少 一个ICP站点20、至少一个CDN服务节点21和至少一个客户端22,其中所述ICP站点20,用于向CDN服务节点发送流媒体数据;所述CDN服务节点21,用于向客户端提供流媒体数据;以及维护在线客 户端的信息并响应对该信息的获取请求;所述客户端22,与所述CDN服务节点相连,用于从所述CDN服务节点 获取流媒体数据;从所述CDN服务节点获取在线客户端的信息,并从所述在 线客户端获取流媒体数据;以及应其他客户端请求提供流i某体数据。具体的,所述CDN服务节点21包括标准直播单元30和P2P直播单元31, 其中标准直播单元30,用于向客户端提供流媒体数据;该标准直播单元具体可 以是通用的流媒体服务器,也可以是专用的緩存设备;标准直播单元釆用标准 流媒体协议向客户端提供流媒体数据,标准流々某体协议包括但不限于多媒体 信息服务(MMS)协议、实时流协议(RTSP)等;P2P直播单元31,用于维护在线客户端的信息并响应对该信息的获取请 求。该P2P直播单元具体可以是能够运行P2P传输协议的服务器。更具体的,P2P直播单元31包括信息维护单元和请求处理单元,其中信息维护单元,用于接收来自客户端的状态报告,并根据该状态报告对在 线客户端信息进行建立、维护以及更新;请求处理单元,用于接收来自客户端的对在线客户端信息的获取请求,查 询自身保存的在线客户端信息并发送给所述客户端。所述信息维护单元和请求处理单元可以设置在一个单元中,也可以分开设 置,附图2中信息维护单元和请求处理单元设置在集合点(RP)单元40中。较佳的,为了降低客户端加入P2P直播过程中等待数据的时间,需要为客 户端提供进行P2P数据传输过程中的辅助数据源,由此,所述P2P直播单元进 一步包括数据源(DS)单元41,用于在所述客户端从所述在线客户端获取流媒体 数据的同时,向所述客户端提供流媒体数据。该DS单元具体采用P2P传输协议向所述客户端提供流媒体数据。P2P传输协议包括但不限于BitTorrent(BT) 协议、emule协议等。较佳的,为了使得DS单元能够根据客户端的状态决定是否向客户端提供 流媒体数据,所述P2P直播单元31进一步包括状态维护单元,用于维护从DS单元获取流媒体数据的客户端的状态信息, 处理来自所述客户端的状态报告,包括接收到来自所述客户端的状态报告时, 根据该状态报告通知DS单元是否继续向所述客户端提供流媒体数据。具体的, 若所述客户端发送的状态报告包含的状态信息为在线,则通知DS单元继续向 所述客户端提供流媒体数据;若所述客户端发送的状态报告包含的状态信息为 离线,则通知DS单元停止向所述客户端提供流媒体数据。较佳的,为了提高数据传输的灵活性以及降低数据传输的冗余度,减小传 输过程中的资源浪费,DS单元需要根据客户端通过P2P方式获取流媒体数据 的情况来决定向客户端发送部分或完整流媒体数据,由此,所述P2P直播单元 31进一步包括传输比例控制单元,用于根据收到的控制信令通知DS单元调整向所述客 户端提供流媒体数据占完整流媒体数据的比例。所述控制信令可以来自从DS单元获取数据的客户端,具体包括如下三种 情况在所述客户端未从在线客户端获取到流々某体数据时(通常发生在客户端 与在线客户端建立P2P连接阶段),通知所述CDN服务节点向所述客户端发送 完整的流媒体数据;以及,在所述客户端从在线客户端获取到部分流媒体数据 时,通知所述CDN服务节点停止向所述客户端发送所述部分的流媒体数据; 以及,在所述客户端从在线客户端获取到完整流i某体数据时,通知所述CDN 服务节点停止向所述客户端发送流媒体数据。在划分流媒体数据的各个部分时,可以釆用如下方法流媒体数据通常具有两项主要的属性,即数据包的序号以及时间戳,其中 序号是连续且递增的,用于标识数据包发送的顺序,以及检查是否有数据在传输过程中丢失;时间戳则用于表示该数据所含音视频内容的展现时间。根据这 两项属性,可以将流々某体数据划分成多个部分,例如将数据按照序号奇偶分 成两部分,或者将数据按照时间戳分为十个部分,等等,划分方法可以有多种, 这里仅给出几个典型的例子。DS单元通过调整向客户端发送流媒体数据的全 部内容或某部分内容,可以提高数据调度的灵活性以及降低数据传输的冗余 度,减小传输过程中的资源浪费。具体的,所述客户端22包括标准获取单元42、 P2P获取单元43和共享单 元44,其中标准获取单元42,用于从所述CDN服务节点获取流々某体数据;该标准获 取单元采用标准流媒体传输协议获取流媒体数据;P2P获取单元43,用于从所述CDN服务节点获取在线客户端的信息,并 从所述在线客户端获取流媒体数据;标准获取单元可以优先从CDN服务节点获取流媒体数据,若获取成功, 则P2P获取单元不再从在线客户端获取流媒体数据;否则,P2P获取单元通过 访问CDN服务节点从在线客户端获取流媒体数据。也可以是,P2P获取单元 与标准获取单元同时从CDN服务节点获取流媒体数据。P2P获取单元在从其他在线客户端获取流^ 某体数据时,可以向多个在线客 户端请求流媒体数据的不同部分,最终拼出完整的流媒体数据。具体的数据获 取方法是所述客户端与其他在线客户端建立P2P连接后,向在线客户端发送 流媒体获取请求,在线客户端根据该请求向发送该请求的客户端发送相应的流 媒体数据。所述流媒体获取请求中可以包含需要获取数据部分的标识信息,例如时间戳、序号等,在线客户端根据该标识信息向客户端发送流媒体数据的相 应部分;较佳的,P2P获取单元在从在线客户端获取流J 某体数据的同时,还可以从 CDN服务节点的DS单元以P2P方式获取流^ 某体数据,以降低客户端加入P2P 直播过程中等待数据的时间。随着来自于在线客户端的数据部分的增加,客户端可以逐渐减少向DS单元请求的数据部分,直到完全停止向DS单元获取数 据,最终由在线客户端提供后续数据。共享单元44,用于向除自身之外的其他客户端提供流媒体数据。具体的, 本客户端的标准获取单元或P2P获取单元成功获取到数据后,成为种子节点, 与当前在线的其他客户端建立P2P成员关系,具体是与当前在线的其他客户端 建立P2P连接,等待其他客户端向其发送数据获取请求,并根据收到的请求提 供相应的流媒体数据。更具体的,所述共享单元44包括转换单元和发送单元,其中 转换单元,用于将流媒体数据转换成P2P传输协议规定的数据格式; 发送单元,用于将所述转换后的流媒体数据发送给除自身之外的客户端。 所述客户端进一步包括状态上报单元45,用于向所述CDN服务节点上报状态报告。所述CDN 服务节点的RP单元或DS单元接收并处理该状态报告,对于RP单元,主要是 根据该状态报告对在线客户端信息进行建立、维护以及更新;对于DS单元, 主要是根据该状态报告决定是否继续向客户端发送流媒体数据。如图3所示,本发明实施例提供的系统在访问人数相对较少的情况下,可 以利用现有CDN的设备和网络资源,通过标准直播的方式向互联网用户提供 服务,此时客户端将主要从标准直播服务器获取数据;在访问人数突发性增长 并且超出CDN资源的负载能力的情况下,启用P2P直播,充分利用在线用户 的网络资源,来服务更多的用户,将上述访问标准直播服务器作为数据源,建 立大规模、多源的P2P覆盖网络,从而稳定、高效地分发流媒体数据。参见图4,本发明实施例还提供一种基于CDN的流媒体直播方法,该方 法包括以下步骤步骤40:客户端向CDN服务节点请求获取流媒体数据;这里,客户端采用标准流媒体协议从所述CDN服务节点获取流媒体数据。 所述标准流媒体协议包括但不限于MMS、 RTSP等。步骤41:判断所述客户端是否从所述CDN服务节点成功获取流々某体数据, 若成功,则到步骤42;否则,到步骤43;步骤42:向当前在线客户端提供所述流媒体数据;这里,客户端在向当前在线客户端提供流媒体数据之前,需要将所述流媒 体数据转换成P2P传输协议规定的数据格式,并将转换后的流々某体数据发送给在线客户端。步骤43:从当前在线客户端获取所述流媒体数据。需要说明的是,步骤42或步骤43中客户端需要从CDN服务节点获取当 前在线客户端的信息,该获取步骤可以在步骤42或步骤43之前执行,也可以 在步骤42或步骤43中执行。较佳的,在客户端从所述当前在线客户端获取所述流i某体数据的同时,还 可以采用P2P传输协议从所述CDN服务节点获取流々某体数据,即将CDN服 务节点作为辅助的数据源。所述P2P传输协议包括但不限于BitTorrent协议、 emule协议等。具体的,客户端采用P2P传输协议从CDN服务节点获取流媒体数据时, 可以动态调整获取数据所占的比例,具体包括如下三种情况在所述客户端未从所述在线客户端获取到流々某体数据时,通知所述CDN 服务节点向所述客户端发送完整的流媒体数据;以及在所述客户端从所述在线客户端获取到部分流々某体数据时,通知所述CDN 服务节点停止向所述客户端发送所述部分的流媒体数据;以及在所述客户端从所述在线客户端获取到完整流^ 某体数据时,通知所述CDN 服务节点停止向所述客户端发送流媒体数据。本方法中,客户端需要定时向CDN服务节点上报状态信息,CDN服务节 点根据收到的状态信息建立、维护和更新在线客户端信息。下面以结合图2所述的系统对本发明实施例提供的方法进行说明步骤501: CDN的ICP站点将所需发布的流媒体数据分发到直接面向用户 提供服务的CDN服务节点,该CDN服务节点中的标准直播单元和P2P直播 单元同时工作,面向互联网用户提供服务;步骤502: CDN服务节点向客户端发布两个统一资源定位(URL)地址 URL1和URL2,其中URL1用于标准直播服务,URL2用于P2P直播服务, 可以通过字符串形式或者网页脚本形式将两个URL地址发布给用户;步骤503:如果客户端已经安装了客户端程序,则转入步骤507,否则转入 步骤504;步骤504:客户端通过第三方播放器连接URL1,进而从标准直播单元获取 流媒体数据;步骤505:如果播放成功则完成流媒体传输过程,否则转入步骤506; 步骤506:提示客户端用户安装客户端程序; 步骤507:客户端通过安装的客户端程序连接URL1; 步骤508:如果能够连接成功并获得流媒体数据,则转入步骤509,否则转 入步骤510;步骤509:客户端程序连接URL2,与P2P直播单元中的RP单元通信,获 得其它在线客户端的信息,并与其它在线客户端建立P2P对等成员关系,向其 它在线客户端提供流媒体数据,转入步骤514;步骤510:客户端程序连接URL2,与P2P直播单元中的RP模块通信,获 得其它在线客户端程序的信息,与其它在线客户端建立P2P对等成员关系,并 向其它在线客户端请求流i某体数据,同时向P2P直播单元中的DS单元请求流 媒体数据;步骤511:客户端程序从其它在线客户端和DS单元同时接收流媒体数据, 如果客户端从其它在线客户端获取到部分数据,而并非完整的数据,则转入步 骤512;如果客户端从其它在线客户端获得完整的流媒体数据,则转入步骤513;步骤512:根据已获得的来自于其它在线客户端的数据部分的情况,通知DS单元停止相应部分的数据的发送,转入步骤511;步骤513:客户端程序停止向DS单元请求数据,由其它在线客户端提供后 续的数据,转入步骤514;步骤514:客户端程序获得稳定的流媒体数据流且緩沖区已被填满,则开 始进行播放,流^ 某体数据分发完成。参见图6,本发明实施例还提供一种内容分发网络CDN服务装置,可以 用于基于CDN的流媒体直播系统中,该装置包括标准直播单元60,用于向客户端提供流媒体数据;该标准直播单元用采用 标准流媒体协议向客户端提供流媒体数据。P2P直播单元61,用于维护在线客户端的信息并响应对该信息的获取请求。所述P2P直播单元61包括信息维护单元81,用于接收来自客户端的状态报告,并根据该状态报告对 在线客户端信息进行建立、维护和更新;请求处理单元82,用于接收来自客户端的对在线客户端信息的获取请求, 查询自身保存的在线客户端信息并发送给所述客户端。信息维护单元81和请求处理单元82可以设置在一个单元中,也可以分开 设置,附图6中信息维护单元81和请求处理单元82设置在集合点(RP)单元 70中。所述P2P直播单元61进一步包括数据源(DS)单元71,用于在所述客户端从所述在线客户端获取流媒体 数据的同时,向所述客户端提供流媒体数据。该数据源单元采用P2P传输协议 向所述客户端提供流媒体数据。所述P2P直播单元61进一步包括状态维护单元72,用于接收来自所述客户端的状态报告,并根据该报告通 知DS单元是否继续向所述客户端提供流媒体数据。所述P2P直播单元61进一步包括传输比例控制单元73,用于根据收到的控制信令通知DS单元调整向所述 客户端提供流媒体数据占完整流媒体数据比例。 综上,本发明的有益效果在于本发明中,CDN服务节点可以向客户端分发流媒体数据,同时还维护在 线客户端信息,使得客户端不仅可以从CDN服务节点获取流媒体数据,还可 以在获知在线客户端信息后从在线客户端获取流媒体数据,同时,具有流媒体 数据的客户端还可以作为种子节点向除自身之外的其他客户端提供流媒体数 据。可见,本发明结合CDN技术与P2P技术,大大提高了 CDN向用户传输 流媒体数据的效率和服务质量。本发明在访问人数相对较少的情况下,充分利用现有CDN的设备和网络 资源,通过标准直播的方式向互联网用户提供服务,保证服务质量,具有启动 快、延迟低、播放流畅的特点;在访问人数突发性增长并且超出CDN资源的 负载能力的情况下,启用P2P直播服务,充分利用在线用户的网络资源,来支 持更多的用户,同时保证服务质量,对于流媒体应用规模的逐渐扩大,本发明 具有很好的扩展性和灵活性。
权利要求
1、一种基于内容分发网络CDN的流媒体直播系统,其特征在于,该系统包括CDN服务节点,用于向客户端提供流媒体数据以及维护在线客户端的信息并响应对该信息的获取请求;至少一个客户端,与所述CDN服务节点相连,用于从所述CDN服务节点获取流媒体数据;和/或从所述CDN服务节点获取在线客户端的信息,并从所述在线客户端获取流媒体数据;以及应其他客户端请求提供流媒体数据。
2、 如权利要求l所述的系统,其特征在于,所述CDN服务节点包括 标准直播单元,用于向客户端提供流媒体数据;P2P直播单元,用于维护在线客户端的信息并响应对该信息的获取请求。
3、 如权利要求2所述的系统,其特征在于,所述P2P直播单元包括 信息维护单元,用于接收来自客户端的状态报告,并根据该状态报告对在线客户端信息进行建立、维护和更新;请求处理单元,用于接收来自客户端的对在线客户端信息的获取请求,查 询自身保存的在线客户端信息并发送给所述客户端。
4、 如权利要求3所述的系统,其特征在于,所述P2P直播单元进一步包括数据源单元,用于在所述客户端从所述在线客户端获取流媒体数据的同 时,向所述客户端提供流媒体数据。
5、 如权利要求4所述的系统,其特征在于,所述P2P直播单元进一步包括传输比例控制单元,用于根据收到的控制信令通知所述数据源单元调整向 所述客户端提供流媒体数据占完整流媒体数据的比例。
6、 一种基于内容分发网络CDN的流媒体直播方法,其特征在于,该方法 包括客户端向CDN服务节点请求获取流媒体数据; 客户端从CDN服务节点获取在线客户端信息;若所述客户端从所述CDN服务节点成功获取所述流々某体数据,则向所述 在线客户端提供所述流媒体数据;否则,从所述在线客户端获取所述流媒体数 据。
7、 如权利要求6所述的方法,其特征在于,在所述客户端从所述在线 客户端获取所述流^ 某体数据的同时,该方法进一步包括所述客户端采用P2P传输协议从所述CDN服务节点获取流媒体数据。
8、 如权利要求7所述的方法,其特征在于,所述客户端从所述CDN服务 节点获取流媒体数据包括在所述客户端未从所述在线客户端获取到流媒体数据时,通知所述CDN 服务节点向所述客户端发送完整的流媒体数据;在所述客户端从所述在线客户端获取到部分流媒体数据时,通知所述CDN 服务节点停止向所述客户端发送所述部分的流J 某体数据;在所述客户端从所述在线客户端获取到完整流媒体数据时,通知所述CDN 服务节点停止向所述客户端发送流媒体数据。
9、 一种内容分发网络CDN服务装置,其特征在于,该装置包括 标准直播单元,用于向客户端提供流媒体数据;P2P直播单元,用于维护在线客户端的信息并响应对该信息的获取请求。
10、 如权利要求9所述的装置,其特征在于,所述P2P直播单元包括 信息维护单元,用于接收来自客户端的状态报告,并根据该状态报告对在线客户端信息进行建立、维护和更新;请求处理单元,用于接收来自客户端的对在线客户端信息的获取请求,查 询自身保存的在线客户端信息并发送给所述客户端。
11、 如权利要求10所述的装置,其特征在于,所述P2P直播单元进一步 包括数据源单元,用于在所述客户端从所述在线客户端获取流媒体数据的同 时,向所述客户端提供流媒体数据。
全文摘要
本发明实施例公开了一种基于内容分发网络(CDN)的流媒体直播系统,用于解决现有技术中CDN向用户传输流媒体数据效率低、服务质量得不到保证的问题,该系统包括CDN服务节点,用于向客户端提供流媒体数据以及维护在线客户端的信息并响应对该信息的获取请求;至少一个客户端,用于从所述CDN服务节点获取流媒体数据;和/或从所述CDN服务节点获取在线客户端的信息,并从所述在线客户端获取流媒体数据;以及应其他客户端请求提供流媒体数据。本发明实施例还公开了一种基于CDN的流媒体直播方法和装置。采用本发明,能够大大提高CDN向用户传输流媒体数据的效率和服务质量。
文档编号H04H20/65GK101237429SQ20081010089
公开日2008年8月6日 申请日期2008年2月25日 优先权日2008年2月25日
发明者浩 尹, 锋 邱, 邹焕英 申请人:蓝汛网络科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1