首页> 中国专利> 一种流媒体数据共享方法、共享系统和流媒体节点

一种流媒体数据共享方法、共享系统和流媒体节点

摘要

本发明公开了一种流媒体数据共享方法、共享系统和流媒体节点。其中流媒体数据共享方法包括:流媒体节点报告自身的状态信息,并查询其它流媒体节点的状态信息;流媒体节点从其它流媒体节点下载和/或调度流媒体节点自身没有的流媒体数据。本发明的流媒体数据共享方法、共享系统和流媒体节点,通过流媒体节点之间的数据共享,使得下载用户的数据也能提供给在线播放用户,在线播放用户的数据也可以提供给下载用户,提高用户间的数据分享率,减少服务器带宽负载。

著录项

  • 公开/公告号CN101764831A

    专利类型发明专利

  • 公开/公告日2010-06-30

    原文格式PDF

  • 申请/专利权人 中国移动通信集团公司;

    申请/专利号CN200810240749.8

  • 申请日2008-12-24

  • 分类号H04L29/08(20060101);H04L12/54(20060101);H04N7/173(20060101);

  • 代理机构11279 北京中誉威圣知识产权代理有限公司;

  • 代理人王春光;丛芳

  • 地址 100032 北京市西城区金融大街29号

  • 入库时间 2023-12-18 00:18:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-09-19

    授权

    授权

  • 2010-08-25

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20081224

    实质审查的生效

  • 2010-06-30

    公开

    公开

说明书

技术领域

本发明涉及一种P2P技术,尤其涉及一种流媒体数据共享方法、共享系统和流媒体节点。

背景技术

P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。P2P文件共享和P2P流媒体在线播放是P2P的两个非常重要的应用。

P2P文件共享最典型的应用是BitTorrent。BitTorrent中的节点在共享一个文件时,首先将文件分片并将文件和分片信息保存在一个Torrent类型文件中,这种节点被形象地称作“种子”节点。其他用户在下载该文件时根据Torrent文件的信息,将文件的部分分片下载下来,然后在其他下载该文件的节点之间共享自己已经下载的分片,互通有无,从而实现文件的快速分发。由于每个节点在下载文件的同时也在为其他用户上传该文件的分片,所以整体来看,不会随着用户数的增加而降低下载速度,反而下载的人越多,速度越快。

流媒体是指在数据网络上按时间先后次序传输和播放的连续音频/视频数据流。传统流媒体服务都是C/S模式,即用户从流媒体服务器点击观看节目,然后流媒体服务器以单播方式把媒体流推送给用户。这种方式在流媒体业务用户量增大之后就会显现出流媒体服务器带宽占用大和流媒体负载均衡要求高的问题。

流媒体业务在到达一定阶段后,就需要大规模扩充带宽、服务器以满足需求,这些举措都会大大增加开销。它无法从根本上解决流媒体业务发展所遭遇到的瓶颈问题。在这种背景下,P2P技术走入人们的视野,开始在流媒体领域引入P2P技术。P2P流媒体技术和传统流媒体不同之处在于用户在播放过程中不仅仅可以从流媒体服务器取得媒体流,还可以从其它用户那里取得媒体流,与此同时,用户还会向其它用户提供自己拥有的、别人需要的媒体流。

P2P流媒体的应用可以分为流媒体直播和流媒体点播。流媒体直播中,观看同一个节目的用户;流媒体点播系统中,用户随时可以启动观看,也可以拖动后定位到流媒体节目的任意位置,因此观看的节目时间和进度不一致,导致节点间能共享数据的概率远远不如P2P直播。

从系统架构上来看,如图1所示,P2P流媒体的下载和在线播放的系统包括:发布服务器:如网站(使用浏览器访问)、或者特定的服务器(通过终端软件访问),在这里用户能浏览或找到想下载的文件、或者想看的流媒体节目;索引(Tracker)服务器:维护有哪些节点正在下载文件、或者观看流媒体节目;节点可以向其发出查询请求,由其返回一批节点,实现后续的节点间数据分享。

现有基于P2P技术的流媒体点播系统因为点播系统的用户可自由定位的特性,造成用户观看时间不一致,观看的节目进度也不一致,导致节点间能共享数据的概率远远不如P2P直播,从而运营成本比P2P直播大得多。因此基于P2P技术的点播系统并不像P2P直播系统那样容易扩展。

现有的P2P文件下载系统,对流媒体这类实时数据并没有优化处理,其处理模式和普通文件在分片和下载方式没有区别,通常不提供在线播放功能或者提供流畅的在线播放功能。

因此,如何解决P2P流媒体点播系统用户间由于数据共享率低导致服务器带宽成本比较大,以及P2P文件下载流媒体视频文件时无法实时播放或者播放效果差,同时也不能为流媒体点播系统服务的缺陷成为现有技术中急需解决的技术问题。

发明内容

本发明的第一目的在于,针对现有技术中P2P流媒体点播系统用户间由于数据共享率低导致服务器带宽成本比较大,以及P2P文件下载流媒体视频文件时无法实时播放或者播放效果差,同时也不能为流媒体点播系统服务的缺陷,提供一种在下载用户和在线播放用户之间可以相互提供数据,提高流媒体数据共享率并降低服务器带宽成本的流媒体数据共享方法。

本发明的第二目的在于,针对现有技术中P2P流媒体点播系统用户间由于数据共享率低导致服务器带宽成本比较大,以及P2P文件下载流媒体视频文件时无法实时播放或者播放效果差,同时也不能为流媒体点播系统服务的缺陷,提供一种在下载用户和在线播放用户之间可以相互提供数据,提高流媒体数据共享率并降低服务器带宽成本的流媒体节点。

本发明的第三目的在于,针对现有技术中P2P流媒体点播系统用户间由于数据共享率低导致服务器带宽成本比较大,以及P2P文件下载流媒体视频文件时无法实时播放或者播放效果差,同时也不能为流媒体点播系统服务的缺陷,提供一种在下载用户和在线播放用户之间可以相互提供数据,提高流媒体数据共享率并降低服务器带宽成本的流媒体数据共享系统。

根据本发明的第一目的提供一种流媒体数据共享方法包括:流媒体节点报告自身的状态信息,并查询其它流媒体节点的状态信息;流媒体节点从其它流媒体节点下载和/或调度所述流媒体节点自身没有的流媒体数据。

其中,状态信息包括:流媒体节点的工作模式信息、第一数据和第二数据。工作模式信息用于描述所述流媒体节点处于下载模式或在线播放模式;第一数据用于描述所述流媒体节点在下载模式时已下载及未下载的流媒体数据;第二数据用于描述所述流媒体节点在线播放模式时已下载的流媒体数据及需要调度的流媒体数据。

优选地,流媒体节点从其它流媒体节点下载自身没有的流媒体数据的操作之后还包括:对所述下载或调度的流媒体数据进行校验。

优选地,所述流媒体数据包括多个分片,每个分片中包含相同数量的帧。

优选地,每个分片的数据小于或等于512Kbyte。

根据本发明的第二目的提供一种流媒体节点包括:数据管理模块,用于生成所述流媒体节点的状态信息,并生成查询其他流媒体节点的状态查询信息;下载调度模块,用于当所述流媒体节点的工作模式为下载时,根据所述状态信息及其他流媒体节点的状态信息下载自身没有的流媒体数据;在线播放调度模块,用于当所述流媒体节点的工作模式为在线播放时,根据所述状态信息及其他流媒体节点的状态信息顺序调度自身没有的流媒体数据;数据收发模块,用于向其他流媒体节点发送所述状态查询信息,接收其他流媒体节点的状态信息,并接收/发送流媒体数据。

其中,数据管理模块包括:工作模式信息生成子模块,用于生成所述流媒体节点的工作模式信息;第一数据生成子模块,用于生成所述第一数据,所述第一数据用于描述所述流媒体节点在下载模式时已下载及未下载的流媒体数据;第二数据生成子模块,用于生成所述第二数据,所述第二数据用于描述所述流媒体节点在线播放模式时已下载的流媒体数据及需要调度的流媒体数据。

优选地,数据管理模块还包括:数据更新子模块,根据所述数据收发模块接收的流媒体数据对所述第一数据和所述第二数据进行更新。

优选地,流媒体节点还包括:数据校验模块,用于对所述数据接收模块接收的流媒体数据进行校验。

根据本发明的第三目的提供一种流媒体数据共享系统,包括:发布服务器和多个流媒体节点,发布服务器,用于存储流媒体数据并将所述流媒体数据发布给所述流媒体节点;流媒体节点,用于报告自身的状态信息,并查询其它流媒体节点的状态信息,从所述发布服务器和/或其它流媒体节点下载或调度自身没有的流媒体数据。

优选地,索引服务器,用于存储所有流媒体节点的状态信息,接收所述流媒体节点注册的自身状态信息,并将其他流媒体节点的状态信息发送至所述流媒体节点。

优选地,发布服务器包括:数据分片模块,用于按照所述流媒体数据中帧的顺序对所述流媒体数据进行分片,每个流媒体数据分片中包含相同数量的帧。

本发明的流媒体数据共享方法、共享系统和流媒体节点,通过报告各个流媒体节点的状态信息,流媒体节点可以从其他流媒体节点下载或调度自身所没有的流媒体数据,使得流媒体数据可以在下载用户和在线播放用户之间可以相互提供,不仅提高流媒体数据共享率,还降低服务器带宽成本。

另外,本发明的优选实施例通过设置下载调度模块和实时调度模块,分别完成分片随机下载和帧的在线播放顺序调度,采用第一数据和第二数据来实现两种工作模式的数据共享。由于无论是实时调度的在线播放方式,还是非实时调度的下载方式,都采用基于帧或帧分组来进行P2P数据调度,提高数据分享的效率,从而使得下载和在线播放能很好融合。

附图说明

图1是现有技术中P2P流媒体下载/在线播放的系统结构图;

图2是本发明第一实施例流媒体共享系统的结构图;

图3是本发明第一实施例流媒体节点的具体结构图;

图4是本发明第一实施例流媒体共享方法的流程图;

图5是本发明第一实施例流媒体数据、bitmap_all及bitmap_sche数据结构示意图;

图6是本发明第二实施例流媒体节点下载过程中bitmap_all的数据结构示意图;

图7是本发明第二实施例流媒体节点在线播放过程中bitmap_sche的数据结构示意图;

图8是本发明第二实施例流媒体节点在线播放调度结束后bitmap_all的数据结构示意图。

具体实施方式

以下结合附图对本发明进行详细说明。

如图2所示,本发明第一实施例流媒体数据共享系统包括:发布服务器20,用于存储流媒体数据;流媒体节点40,报告自身的信息,并查询其它流媒体节点的信息,流媒体节点40从发布服务器20和/或其它流媒体节点下载或调度自身没有的流媒体数据。例如第一实施例中流媒体节点40a报告其自身的信息,并查询流媒体节点40b、40c的信息,并从流媒体节点40b、40c下载或调度流媒体节点40a自身没有的流媒体数据。

该流媒体数据共享系统还包括Tracker服务器60,存储流媒体节点40a、40b和40c的信息,各个流媒体节点在Tracker服务器60上注册自身信息,并从Tracker服务器60获得其它流媒体节点的信息。

发布服务器20包括数据分片模块,按照流媒体中帧的顺序对流媒体数据进行分片,每个流媒体数据分片中包含相同数量的帧。如图5所示,流媒体数据中各帧的编号为1、2、3、...n,将每三个帧分为一片,将n个帧分为N个分片。N可依据不同的比特率或者不同格式的流媒体数据来定,通常每个分片包含帧的总长度为不超过512Kbyte。对流媒体数据进行合适的分片可以使得下载节点的数据与在线播放节点的数据高效共享。

在流媒体数据共享的初始阶段,各个流媒体节点首先从发布服务器获取该流媒体数据,随着业务的进行,请求数据的流媒体节点越来越多,各个流媒体节点之间就会共享自身已下载或调度的流媒体数据,这样就会大大节省带宽并降低对发布服务器的规模的要求。

如图3所示,流媒体节点40a包括:数据收发模块42,用于向其他流媒体节点发送状态查询信息,接收其他流媒体节点的状态信息,并接收/发送流媒体数据;数据管理模块44,用于生成流媒体节点的状态信息,并生成查询其他流媒体节点的状态查询信息;下载调度模块46,用于当流媒体节点的工作模式为下载时,根据状态信息及其他流媒体节点的状态信息下载自身没有的流媒体数据;在线播放调度模块48,用于当流媒体节点的工作模式为在线播放时,根据状态信息及其他流媒体节点的状态信息顺序调度自身没有的流媒体数据;

其中数据管理模块44包括:工作模式信息生成子模块,用于生成流媒体节点的工作模式信息;第一数据生成子模块,用于生成第一数据bitmap_all,bitmap_all用于描述流媒体节点在下载模式时已下载及未下载的流媒体数据;第二数据生成子模块,用于生成第二数据bitmap_sche,bitmap_sche用于描述流媒体节点在线播放模式时已下载的流媒体数据及需要调度的流媒体数据;数据更新子模块,根据数据收发模块接收的流媒体数据对bitmap_all和bitmap_sche进行更新。

优选地,流媒体节点40a还包括:数据校验模块,用于对数据接收模块42接收的流媒体数据进行校验。

其他流媒体节点40b、40c的结构均与流媒体节点40a相同,在此不再赘述。

如图4所示,第一实施例中,流媒体数据共享方法包括如下步骤:

步骤72,流媒体节点40a报告自身的状态信息,并查询流媒体节点40b、40c的状态信息;步骤74,流媒体节点40a从流媒体节点40b、40c下载和/或调度自身没有的流媒体数据。

步骤72中流媒体节点40a报告的状态信息的包括:工作模式信息,用于描述流媒体节点处于下载模式或在线播放模式;第一数据bitmap_all,用于描述流媒体节点40a在下载模式时已下载及未下载的流媒体数据;第二数据bitmap_sche,用于描述流媒体节点40a在线播放模式时已下载的流媒体数据及需要调度的流媒体数据。

如图5所示,第一实施例中,bitmap_all为一组二进制码,每个比特的数据表示流媒体节点40a自身是否拥有一个分片的有无,当第一比特数据为1,则该流媒体节点有该第一分片,第二比特数据为0,则该流媒体节点没有第二分片。

如图5所示,第一实施例中,bitmap_sche用于描述该流媒体节点40a在在线播放时调度数据的情况。bitmap_sche包括:起始帧序号start、当前帧序号current、bitmap数据、末尾帧序号end。其中,从start到curent之间的帧均为该流媒体节点40a已有的帧,即已下载到本地,存储在内存或磁盘的帧。bitmap数据表示从current之后该流媒体节点40a自身所拥有的帧的情况,bitmap为一组二进制码,每个比特的数据表示一个帧的有无。末尾帧序号end表示bitmap中最后一个已有的帧的序号。

随着流媒体数据的调度和接收,current、end、bitmap和end都会相应进行更新。当start和current之间包含一个分片的所有帧时,将更新bitmap_all数据中对应该分片的的比特数据为1,表示自身已有相应的分片。

本发明第二实施例,流媒体数据共享的具体工作过程如下:

(1)流媒体节点40a先从发布服务器20下载流媒体数据相关的种子文件,与现有技术中的BT下载类似,该种子文件包括该流媒体数据的以下信息:文件特征值,可以用安全哈希算法1(Secure HashAlgorithm1,简称SHA-1)算法得到的所有分片的摘要;总的帧数量;每分片包含的帧数量;每个分片的校验码,可以用SHA-1算法得到某个分片的摘要;Tracker服务器地址。

(2)流媒体节点40a将自身注册到Tracker服务器60上,并从Tracker服务器60获得其它流媒体节点,包括下载中的和在线播放中的节点的信息。第二实施例中,流媒体节点40a中数据管理模块42生成bitmap_all和bitmap_sche,流媒体节点40a初始为下载模式,bitmap_all_a1为0。流媒体节点40a向Tracker服务器60报告自身的工作模式、bitmap_all和bitmap_sche,并从Tracker服务器60获得流媒体节点40b、40c的工作模式、bitmap_all和bitmap_sche。

(3)流媒体节点40a从Tracker服务器60获得流媒体节点40b的bitmap_all_b图6所示,流媒体节点40b为下载模式。流媒体节点40a中的下载调度模块46从流媒体节点40b下载序号为3、7和13的分片。

(4)流媒体节点40a中数据收发模块42接收到流媒体节点40b返回的分片数据,当分片下载完整时,根据种子文件中该分片校验码校验数据是否接收正确。当验证正确时,继续下载其它分片。流媒体节点40a下载完成三个分片如序号为3、7和13的分片后,如图6所示,更新流媒体节点40a的bitmap_all_a2的第3、7和13个比特的数据变为1。

(5)此时流媒体节点40a切换到在线播放模式,下载调度模块46停止下载数据的请求。在线播放调度模块48根据用户观看的起始位置(根据播放器所提供的时间戳、偏移量等信息)获得在线播放的起始帧序号。例如,此时起始帧序号start为650,而每个分片包含100个帧,则该起始帧位于序号为7的分片中,第7分片的数据已经下载完成,可以重复加以利用。此时,如图7所示,流媒体节点40a的bitmap_sche_a1起始帧序号start为650;当前帧序号current为700;bitmap包括从第700个帧之后各个帧的有无;末尾帧序号end为1300。

(6)流媒体节点40a的在线播放调度模块48从第701号帧开始向其他流媒体节点调度数据。流媒体节点40b拥有第8分片的数据,因此,在线播放调度模块48可以继续向流媒体节点40b请求调用第8分片的数据。

如果此时流媒体节点40c处于在线播放模式,如图7所示,流媒体节点40c的bitmap_sche_c起始帧序号start为1000;当前帧序号current为20000;末尾帧序号end为20280。流媒体节点40c拥有从1000到20000之间的所有帧的数据。因此,流媒体节点40c拥有流媒体节点40a需要实时顺序调度的bitmap范围内的数据,流媒体节点40a也可以向流媒体节点40c调度数据。

(7)在线播放一段时间后,在线播放调度模块48下载了一批数据后,当发现某分片包含的所有帧数据都已经接收完成,则将数据保存到文件中,并更新bitmap_sche,如图7所示,更新后的bitmap_sche_a2起始帧序号start为630;当前帧序号current为1050;末尾帧序号end为1500。

(8)当流媒体节点40a再次切换到下载模式时,在线播放调度模块48停止调度数据,序号为8和9的分片下载完成,数据管理模块44更新Bitmap_all_a3,如图8所示,第8和9比特的数据变为1。同时,下载调度模块46启动,重复执行第(3)步操作。

对于下载模式的流媒体节点,当所有帧都下载完之后,将所有流媒体数据重新按照源格式组装成相应格式的文件。如果下载的是asf格式,则组装成asf格式的文件,如果下载的是rmvb格式则组装成rmvb格式的文件。

与现有技术相比,本发明的流媒体节点包含两种数据调度模块:下载调度模块和实时调度模块,分别完成分片随机下载和帧的在线播放顺序调度,采用Bitmap_all和Bitmap_sche两种数据来实现两种工作模式的数据共享。同时当有其他流媒体节点来请求数据时,可以优先给在线播放的流媒体节点提供数据上传服务。

本发明提出的流媒体数据共享方法和系统,在对同一流媒体文件提供P2P下载和P2P在线播放时,可以随意切换下载和在线播放模式。同时,下载用户的数据也能提供给在线播放用户,在线播放用户的数据也可以提供给下载用户,从而提高用户间的数据分享率,减少服务器带宽负载。并且,由于无论是实时调度的在线播放方式,还是非实时调度的下载方式,都采用基于帧或帧分组来进行P2P数据调度,提高数据分享的效率,从而使得下载和在线播放能很好融合。

应说明的是:以上实施例仅用以说明本发明而非限制,本发明也并不仅限于上述举例,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号