著录项信息
专利名称 | 视频点播方法、系统、服务器和终端 |
申请号 | CN200610057035.4 | 申请日期 | 2006-03-13 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2006-11-08 | 公开/公告号 | CN1859562 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N7/173 | IPC分类号 | H;0;4;N;7;/;1;7;3;;;H;0;4;N;7;/;2;4;;;H;0;4;L;2;9;/;0;0查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 马伟;高磊 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 宋志强;麻海明 |
摘要
本发明公开了一种视频点播方法,该方法包括:服务器接收到来自终端的点播请求后,响应该请求,以单播方式向终端发送点播的节目数据,终端接收所述单播的节目数据并播放;服务器为点播相同的所述节目数据的终端建立组播,以组播方式发送所述节目数据,并将所述组播信息通知给所述点播相同节目的终端;接收到组播信息的终端根据该组播信息接收所述组播的节目数据并存储;当终端接收的所述单播的节目数据与该终端中存储的所述组播的节目数据重合后,服务器停止以单播方式向终端发送节目数据,终端读取所述存储的组播节目数据并播放。本发明还公开了一种视频点播系统、一种视频点播服务器和一种视频点播终端。
1、一种视频点播方法,其特征在于,该方法包括以下步骤:
A、视频点播服务器接收到来自视频点播终端的点播请求后,响应该请 求,以单播方式向视频点播终端发送点播的节目数据,视频点播终端接收所 述单播的节目数据并播放;
B、视频点播服务器为点播相同的所述节目数据的视频点播终端建立组 播,以组播方式发送所述节目数据,并将所述组播信息通知给所述点播相同 节目的视频点播终端;
C、接收到组播信息的视频点播终端根据该组播信息接收所述组播的节 目数据并存储;
D、当视频点播终端接收的所述单播的节目数据与该视频点播终端中存 储的所述组播的节目数据重合后,视频点播服务器停止以单播方式向视频点 播终端发送节目数据,视频点播终端读取所述存储的组播节目数据并播放。
2、根据权利要求1所述的方法,其特征在于,所述步骤B包括:
B1、视频点播服务器判断当前是否存在发送所述节目数据的组播,如 果是,执行步骤B2;否则执行所述步骤B3;
B2、视频点播服务器将所述组播的信息通知给该组播对应的视频点播 终端;
B3、视频点播服务器建立组播发送所述节目数据,然后执行步骤B2。
3、根据权利要求2所述的方法,其特征在于,所述步骤B3中进一步 包括:视频点播服务器存储所建立的组播信息;
所述步骤B1中,视频点播服务器根据存储的组播信息执行所述判断步 骤。
4、根据权利要求3所述的方法,其特征在于,所述存储的组播信息包 括:包括节目的ID号、组播的时间标记和组播地址;
则所述步骤B2中,通知给视频点播终端的组播信息为:组播地址。
5、根据权利要求4所述的方法,其特征在于,所述组播的时间标记为: 该组播所对应单播中最早开始的单播的开始时间;或为:在该组播所对应单 播中最早开始的单播的开始时间之后预先设定延迟时间的时刻。
6、根据权利要求5所述的方法,其特征在于,所述步骤B3之前进一 步包括:
B30、视频点播服务器判断是否可以建立组播,如果是执行所述步骤B3; 否则直接结束该流程。
7、根据权利要求6所述的方法,其特征在于,步骤B1中所述的判断 步骤为:
B11、视频点播服务器判断在该时刻之前预先设定的时间之内是否存在 发送所述节目数据的组播;
步骤B30中所述的判断步骤为:
B301、视频点播服务器判断在该时刻之前预先设定的时间之内是否存 在针对所述节目数据的单播,如果是,在步骤B3之后执行的步骤B2中, 所述的组播对应的视频点播终端为所述视频点播终端和所述存在的针对所 述节目数据的单播对应的视频点播终端。
8、根据权利要求6所述的方法,其特征在于,步骤B1中所述的判断 步骤为:
B12、视频点播服务器判断在该时刻所在的预先设定的时间跨度内,是 否存在发送相同所述节目数据的组播;
步骤B30中所述的判断步骤为:
B302、视频点播服务器判断在该时刻所在的预先设定的时间跨度内, 针对所述节目数据的单播数量是否达到或超过了预先设定的最小单播数量, 如果是,在步骤B3之后执行的步骤B2中,所述的组播对应的视频点播终 端为所述视频点播终端和所述针对所述节目数据的单播对应的视频点播终 端。
9、根据权利要求6所述的方法,其特征在于,步骤A中进一步包括: 视频点播服务器记录所述单播信息;
则步骤B30中,视频点播服务器根据所述记录的单播信息判断是否可 以建立组播。
10、根据权利要求1所述的方法,其特征在于,所述步骤D为:
视频点播终端确定出自身接收的所述单播的节目数据和自身中存储的所述 组播的节目数据重合后,向视频点播服务器发送中止单播请求,然后读取所述 存储的组播节目数据并播放。
11、根据权利要求10所述的方法,其特征在于,所述视频点播终端确定自 身接收的所述单播的节目数据和自身中存储的所述组播的节目数据重合的方法 为:
将节目数据划分为块,并为每块设置块号,当视频点播终端识别出所存储 的组播节目数据中存在与当前接收的单播节目数据的块号相同时,确定出自身 接收的单播节目数据和自身中存储的组播节目数据重合;
或为:所述节目数据中包括时间信息,当视频点播终端识别出所存储的组 播节目数据中存在与当前接收的单播节目数据包括相同时间信息时,确定出自 身接收的单播节目数据和自身中存储的组播节目数据重合。
12、根据权利要求1所述的方法,其特征在于,所述步骤D为:
视频点播服务器根据向视频点播终端以单播形式和组播形式发送数据的时 间,确定出视频点播终端接收的单播节目数据和该视频点播终端中存储的组播 节目数据重合后,停止所述的以单播方式向视频点播终端发送节目数据。
13、一种视频点播系统,其特征在于,该视频点播系统包括视频点播服务 器和视频点播终端;其中,
视频点播服务器用于根据来自视频点播终端的点播请求向其以单播形 式发送对应节目数据;和发送组播节目数据,并将确定的所述视频点播终端 加入的组播信息发送给视频点播终端;和根据接收单播节目数据和组播节目 数据的视频点播终端所接收的数据重合的信息,停止向视频点播终端发送单 播节目数据;
视频点播终端用于根据用户的点播请求向视频点播服务器发送点播请 求,接收并播放视频点播服务器以单播方式发送的节目数据;和根据来自视 频点播服务器的组播信息接收组播节目数据;和根据自身以单播方式接收的 节目数据和以组播方式接收的节目数据重合的信息,读取存储的组播节目数 据并播放。
14、一种视频点播服务器,其特征在于,该服务器包括通讯模块、决策模 块和存储模块;其中,
通讯模块用于接收来自终端点播请求,响应该请求读取并以单播方式发 送存储模块中的对应节目数据,并将点播请求传送给决策模块;和将来自决 策模块的组播信息发送给终端,并根据来自决策模块的发起组播的信息从存 储模块中读取并以组播方式发送对应的节目数据,接收来自决策模块的重合 的信息,并根据该重合的信息停止以单播方式发送存储模块中的对应节目数 据,以及根据来自终端的中止请求停止读取和发送对应的节目数据;
决策模块用于根据来自通讯模块的点播请求确定是否将终端加入已有 的组播,或是否需要发起组播,并根据确定出的将终端加入已有组播的信息 或发起组播的信息,将组播信息发送给通讯模块;和将发起的组播的信息存 储在存储模块;根据向同一视频点播终端发送单播节目数据的时间和组播节 目数据的时间,确定终端接收的单播节目数据和组播节目数据的视频点播终 端所接收的数据是否重合,并将确定出的重合的信息发送给通讯模块;
存储模块,用于存储节目数据和组播信息。
15、一种视频点播终端,其特征在于,该终端包括通讯模块、判断模块、 播放控制模块和存储模块;其中,
通讯模块用于接收来自服务器的单播节目数据并将单播节目数据传送 给播放控制模块,以及根据来自服务器的组播信息接收组播节目数据并存储 到存储模块中;并用于将用户发起的点播请求和来自播放控制模块的中止单 播请求发送给服务器,根据来自判断模块的重合的信息向视频点播服务器发 送中止单播请求;
判断模块,用于判断所的接收的单播节目数据和存储模块中存储的组播 节目数据是否重合,并将确定出的单播节目数据和组播节目数据重合的信息 发送给播放控制模块和通讯模块;
播放控制模块用于接收来自通讯模块的单播节目数据并进行解码播放; 或根据确定出的单播节目数据中止的信息读取存储模块中存储的组播节目 数据并进行节目播放,根据来自判断模块的所述重合的信息停止播放所述单 播节目数据,读取存储模块中存储的组播节目数据并播放;
存储模块用于存储组播节目数据。
技术领域\n本发明涉及音视频网络播放技术领域,特别是指一种视频点播方法、一 种视频点播系统、一种视频点播服务器和一种视频点播终端。\n背景技术\n本发明涉及的技术领域是音视频网络播放系统中的视频点播功能,视频 点播是因特网数字电视(IPTV),个人电脑电视(PCTV)等领域中的最为 重要的功能之一。视频点播可以让用户通过视频点播终端按照自己的需求随 意的选择收视节目,随时点播自己喜欢的节目进行收看。目前的视频点播功 能主要实现分为两种方式:一是通过对每个点播在视频点播服务器与视频点 播终端之间建立单播来发送节目数据实现点播功能。二是利用固定时间间隔 的组播,让用户等待加入不同的组播组收视节目。这两种方式都存在自己的 不足,一是视频点播服务器负载大,视频点播服务器网络带宽要求高,二是 响应延迟时间较长,用户体验差。为描述方便,在本说明书中以下将视频点 播服务器简称为服务器,将视频点播终端简称为终端。\n为了实现真正的视频点播(VOD)功能,及时地响应用户点播通常利用 IP网的单播来实现。通过单播的方式实现VOD的主要流程如图1所示,包 括步骤:\n步骤101、终端选择一个节目,并向服务器发送点播请求;\n步骤102、服务器接收到上述点播请求,根据终端的IP地址和点播内 容利用单播方式向终端发送节目数据;\n步骤103、终端接收服务器发送的节目数据,解码播放实现VOD。\n这种采用IP网的单播发送节目数据的方法,可以快速的响应用户的点 播,实现点播的即时响应,提供较好的用户感受。\n利用单播的方式实现VOD功能,针对每一个点播服务器都需要建立一 个连接并发送数据。当同一时刻大量的点播发生时,服务器的负荷将会很大, 同时服务器将消耗大量的带宽。在现有的服务器功能和网络带宽的情况下, 大量发生的点播将会导致服务器的响应缓慢,网络堵塞。\n针对利用单播方式下的实现VOD对服务器的功能和网络要求都过高的 缺点,有相关技术人员提出了利用组播技术实现VOD功能的方法。通常利 用组播技术实现VOD技术的方法是利用将节目分不同的时间发起多个组 播。常用的方法就是每隔一段时间建立一个组播,并向整个网络发送节目数 据。当终端点播节目后,服务器将该节目对应的下一个组播地址发送给终端, 通知终端加入下一个组播接收节目数据;终端根据接收的组播地址接收服务 器以组播方式发送的节目数据。\n还有一种现有技术是针对一个节目固定建立多个组播,将每个节目按时 间分成多个节目片,并将节目片按照一定的算法排序。组播中,按照节目片 排序顺序循环的播放。终端点播节目是就是同时加入多个组播,接收数据并 存储,当接收到节目开始的第一个节目片时开始播放。具体的方法例子如下:\n例如一个50分钟的,节目流为1Mbps的原始节目文件。将节目分为51 块,分别附给从0到50的块号,将节目块按照以下顺序进行发送:\n0, 0, 50, 36, 35, 1, 19;\n0, 9, 6, 3, 2, 20, 1;\n0, 49, 38, 37, 21, 3, 1;\n0, 10, 5, 4, 22, 2, 1;\n0, 40, 39, 23, 7, 5, 1;\n0, 24, 11, 6, 3, 2, 1;\n0, 46, 42, 41, 25, 7, 1;\n0, 12, 8, 26, 4, 2, 1;\n0, 44, 43, 27, 9, 3, 1;\n0, 28, 13, 10, 5, 2, 1;\n0, 45, 30, 29, 14, 11, 1;\n0, 12, 6, 4, 3, 2, 1;\n0, 48, 47, 33, 31, 13, 1;\n0, 32, 15, 14, 7, 2, 1;\n0, 16, 17, 15, 5, 3, 1;\n0, 34, 18, 8, 4, 2, 1。\n在以7Mbps的速度的发送情况下节目的点播响应时间为60秒左右。要 达到即时响应,即以两秒为标准的话则需要以210Mbps的速率进行组播。\n通常的利用组播的方式发送节目来实现VOD功能的方法的响应时间较 长。响应的时间与服务器负担成反比,当要求响应节目时间为2秒时,一个 2小时的节目在同一时间内将要求3600个组播。在快速响应的情况下,起 不到降低服务器负担的作用。\n针对一个节目进行分片排序组播的方法,分片的算法复杂。同时在以这 种方法的响应时间以服务器和终端之间的传送速度为代价,响应时间每减小 一倍,传送节目的速率要增大一倍,同时当节目的长度增大一倍时,节目的 传送速率也将增大一倍。例如一个100分钟的节目,节目码流为1Mbps,那 么2秒响应时间的点播则要求终端的接收带宽为7×30×2=420Mbps;这对终 端的要求过高。\n由此可见利用组播方式实现VOD功能的方法存在较长延迟时间的问 题。这个问题的解决要么起不到降低服务器负担的作用,要么对终端要求太 高。\n发明内容\n有鉴于此,本发明的目的在于提供一种视频点播方法、一种视频点播系 统、一种视频点播服务器和一种视频点播终端,能够解决现有技术中存在的 组播时延长的问题,并能够降低服务器负担,降低对终端的要求。\n为了达到上述目的的第一个方面,本发明提供了一种视频点播方法,该方 法包含以下步骤:\nA、视频点播服务器接收到来自视频点播终端的点播请求后,响应该请 求,以单播方式向视频点播终端发送点播的节目数据,视频点播终端接收所 述单播的节目数据并播放;\nB、视频点播服务器为点播相同的所述节目数据的视频点播终端建立组 播,以组播方式发送所述节目数据,并将所述组播信息通知给所述点播相同 节目的视频点播终端;\nC、接收到组播信息的视频点播终端根据该组播信息接收所述组播的节 目数据并存储;\nD、当视频点播终端接收的所述单播的节目数据与该视频点播终端中存 储的所述组播的节目数据重合后,视频点播服务器停止以单播方式向视频点 播终端发送节目数据,视频点播终端读取所述存储的组播节目数据并播放。\n较佳地,所述步骤B包括:\nB1、视频点播服务器判断当前是否存在发送所述节目数据的组播,如 果是,执行步骤B2;否则执行所述步骤B3;\nB2、视频点播服务器将所述组播的信息通知给该组播对应的视频点播 终端;\nB3、视频点播服务器建立组播发送所述节目数据,然后执行步骤B2。\n较佳地,所述步骤B3中进一步包括:视频点播服务器存储所建立的组 播信息;\n所述步骤B1中,视频点播服务器根据存储的组播信息执行所述判断步 骤。\n较佳地,所述存储的组播信息包括:包括节目的ID号、组播的时间标 记和组播地址;\n则所述步骤B2中,通知给视频点播终端的组播信息为:组播地址。\n较佳地,所述组播的时间标记为:该组播所对应单播中最早开始的单播 的开始时间;或为:在该组播所对应单播中最早开始的单播的开始时间之后 预先设定延迟时间的时刻。\n较佳地,所述步骤B3之前进一步包括:\nB30、视频点播服务器判断是否可以建立组播,如果是执行所述步骤B3; 否则直接结束该流程。\n步骤B1中所述的判断步骤可以为:\nB11、视频点播服务器判断在该时刻之前预先设定的时间之内是否存在 发送所述节目数据的组播;\n步骤B30中所述的判断步骤为:\nB301、视频点播服务器判断在该时刻之前预先设定的时间之内是否存 在针对所述节目数据的单播,如果是,在步骤B3之后执行的步骤B2中, 所述的组播对应的视频点播终端为所述视频点播终端和所述存在的针对所 述节目数据的单播对应的视频点播终端。\n步骤B1中所述的判断步骤还可以为:\nB12、视频点播服务器判断在该时刻所在的预先设定的时间跨度内,是 否存在发送相同所述节目数据的组播;\n步骤B30中所述的判断步骤为:\nB302、视频点播服务器判断在该时刻所在的预先设定的时间跨度内, 针对所述节目数据的单播数量是否达到或超过了预先设定的最小单播数量, 如果是,在步骤B3之后执行的步骤B2中,所述的组播对应的视频点播终 端为所述视频点播终端和所述针对所述节目数据的单播对应的视频点播终 端。\n较佳地,步骤A中进一步包括:视频点播服务器记录所述单播信息;\n则步骤B30中,视频点播服务器根据所述记录的单播信息判断是否可 以建立组播。\n较佳地,所述步骤D为:\n视频点播终端确定出自身接收的所述单播的节目数据和自身中存储的所述 组播的节目数据重合后,向视频点播服务器发送中止单播请求,然后读取所述 存储的组播节目数据并播放。\n较佳地,所述视频点播终端确定自身接收的所述单播的节目数据和自身中 存储的所述组播的节目数据重合的方法为:\n将节目数据划分为块,并为每块设置块号,当视频点播终端识别出所存储 的组播节目数据中存在与当前接收的单播节目数据的块号相同时,确定出自身 接收的单播节目数据和自身中存储的组播节目数据重合;\n或为:所述节目数据中包括时间信息,当视频点播终端识别出所存储的组 播节目数据中存在与当前接收的单播节目数据包括相同时间信息时,确定出自 身接收的单播节目数据和自身中存储的组播节目数据重合。\n较佳地,所述步骤D为:\n视频点播服务器根据向视频点播终端以单播形式和组播形式发送数据的时 间,确定出视频点播终端接收的单播节目数据和该视频点播终端中存储的组播 节目数据重合后,停止所述的以单播方式向视频点播终端发送节目数据。\n为达到上述目的的第二个方面,本发明提供了一种视频点播系统,该系统 包括:\n该视频点播系统包括视频点播服务器和视频点播终端;其中,\n视频点播服务器用于根据来自视频点播终端的点播请求向其以单播形 式发送对应节目数据;和发送组播节目数据,并将确定的所述视频点播终端 加入的组播信息发送给视频点播终端;和根据接收单播节目数据和组播节目 数据的视频点播终端所接收的数据重合的信息,停止向视频点播终端发送单 播节目数据;\n视频点播终端用于根据用户的点播请求向视频点播服务器发送点播请 求,接收并播放视频点播服务器以单播方式发送的节目数据;和根据来自视 频点播服务器的组播信息接收组播节目数据;和根据自身以单播方式接收的 节目数据和以组播方式接收的节目数据重合的信息,读取存储的组播节目数 据并播放。\n为达到上述目的的第三个方面,本发明提供了一种视频点播服务器,该服 务器包括通讯模块、决策模块和存储模块;其中,\n通讯模块用于接收来自终端点播请求,响应该请求读取并以单播方式 发送存储模块中的对应节目数据,并将点播请求传送给决策模块;和将来 自决策模块的组播信息发送给终端,并根据来自决策模块的发起组播的信 息从存储模块中读取并以组播方式发送对应的节目数据,接收来自决策模 块的重合的信息,并根据该重合的信息停止以单播方式发送存储模块中的 对应节目数据,以及根据来自终端的中止请求停止读取和发送对应的节目 数据;\n决策模块用于根据来自通讯模块的点播请求确定是否将终端加入已有 的组播,或是否需要发起组播,并根据确定出的将终端加入已有组播的信 息或发起组播的信息,将组播信息发送给通讯模块;和将发起的组播的信 息存储在存储模块;根据向同一视频点播终端发送单播节目数据的时间和 组播节目数据的时间,确定终端接收的单播节目数据和组播节目数据的视 频点播终端所接收的数据是否重合,并将确定出的重合的信息发送给通讯 模块;\n存储模块,用于存储节目数据和组播信息。\n为达到上述目的的第四个方面,本发明提供了一种视频点播终端,该终 端包括通讯模块、判断模块、播放控制模块和存储模块;其中,\n通讯模块用于接收来自服务器的单播节目数据并将单播节目数据传送 给播放控制模块,以及根据来自服务器的组播信息接收组播节目数据并存储 到存储模块中;并用于将用户发起的点播请求和来自播放控制模块的中止单 播请求发送给服务器,根据来自判断模块的重合的信息向视频点播服务器发 送中止单播请求;\n判断模块,用于判断所的接收的单播节目数据和存储模块中存储的组播 节目数据是否重合,并将确定出的单播节目数据和组播节目数据重合的信息 发送给播放控制模块和通讯模块;\n播放控制模块用于接收来自通讯模块的单播节目数据并进行解码播放; 或根据确定出的单播节目数据中止的信息读取存储模块中存储的组播节目 数据并进行节目播放,根据来自判断模块的所述重合的信息停止播放所述单 播节目数据,读取存储模块中存储的组播节目数据并播放;\n存储模块用于存储组播节目数据。\n从以上方案可以看出,本发明中通过视频点播服务器接收到来自视频点 播终端的点播请求后,以单播形式向终端发送所点播的节目数据,达到了对 终端点播请求的即时响应;此后,服务器为多个点播相同节目数据的终端建 立组播组,并向所述多个终端以组播方式发送所述相同的节目数据,终端接 收以组播方式发送的节目数据并存储;当终端接收的服务器以单播方式发送 的节目数据与终端存储的服务器以组播方式发送的节目数据重合时,服务器 停止以单播方式向终端发送节目数据,从而又通过组播向多个终端发送数据 而降低了对资源的占用。\n附图说明\n图1为现有技术的单播流程图;\n图2为本发明方法的总体流程图;\n图3为本发明方法第一实施例中服务器与终端交互的流程图;\n图4为本发明的系统组成示意图;\n图5为本发明方法第一实施例中服务器内部处理流程图;\n图6为本发明方法第一实施例中终端内部处理流程图;\n图7为本发明方法第一实施例一种案例的系统示意图;\n图8为本发明方法第二实施例中服务器与终端交互的流程图;\n图9为本发明方法第三实施例中服务器与终端交互的流程图;\n图10为本发明方法第四实施例中服务器内部的处理流程图;\n图11为本发明方法第四实施例中终端内部的处理流程图;\n图12为终端播放控制示意图。\n具体实施方式\n为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明 作进一步的详细描述。\n本发明的主要思想是,视频点播服务器,以下简称服务器,接收到来自 视频点播终端,以下简称终端,的点播请求后,立即以单播形式向终端发送 所点播的节目数据,以达到即时响应;此后,服务器为多个点播相同节目数 据的终端建立组播组,并向所述多个终端以组播方式发送所述相同的节目数 据,终端接收以组播方式发送的节目数据并存储;当终端接收的服务器以单 播方式发送的节目数据与终端存储的服务器以组播方式发送的节目数据重 合时,服务器停止以单播方式向终端发送节目数据,从而又通过组播向多个 终端发送数据而降低了对资源的占用。\n本发明的总体流程如图2所示,包括以下步骤:\n步骤201、服务器接收到来自终端的点播请求后,响应该请求,以单播 方式向终端发送点播的节目数据,终端接收所述单播的节目数据并播放;\n步骤202、服务器为点播相同的所述节目数据的终端建立组播,以组播 方式发送所述节目数据,并将所述组播信息通知给所述点播相同节目的终 端;\n步骤203、接收到组播信息的终端根据该组播信息接收所述组播的节目 数据并存储;\n步骤204、当终端接收的所述单播的节目数据与该终端中存储的所述组 播的节目数据重合后,服务器停止以单播方式向终端发送节目数据,终端读 取所述存储的组播节目数据并播放。\n为了降低服务器的负担,在上述步骤202中,服务器可以根据预先设定 的条件建立组播,该条件可以是在一定时间跨度T内对同一节目发起单播达 到或超过了最小单播数量N;该条件还可以是在当前单播之前的T′时间内 没有组播,但存在针对相同节目的单播;该条件也可以只是没有针对相同节 目的组播。\n另外,为了保证终端在接收组播节目数据一段时间后,可以停止接收单 播节目数据,在建立组播后,以组播方式发送的节目数据进度需要与该组播 对应的单播中最早开始的单播的进度同步或稍快于该单播的进度。\n在步骤204中,确定终端接收的单播的节目数据与终端中存储的组播的 节目数据是否重合,可以由终端来执行,则终端根据接收的节目数据信息确 定出节目数据重合后,需要通知服务器停止以单播方式向该终端发送节目数 据;也可以是由服务器来执行,则服务器根据发送的节目进度确定出终端以 两种方式接收的节目数据重合后,停止以单播方式向该终端发送数据。\n以下通过具体实施例对本发明进行详细说明。\n在本发明的第一实施例中,服务器预先设定建立组播的时间跨度T和最 小单播数量N。其中,时间跨度T可以根据服务器的能力、网络状况以及终 端的存储能力确定,如果服务器的能力较强,网络状况较好,则可以将时间 跨度设置的小一些,这样对于终端存储能力的要求就低;如果终端的存储能 力较强,则可以将时间跨度设置的大一些。而最小单播数量N,则根据组播 和单播的资源耗费情况确定,最小单播数量应该满足在这个值N时,组播 的代价和N个单播的代价近似相等,或组播的代价稍小于N个单播的代价, 该值的范围可以为10至100。\n在确定了建立组播的时间跨度T和最小单播数量N后,本发明具体实 施例中终端与服务器交互的流程如图3所示,具体包括以下步骤:\n步骤301、终端选择节目后,利用IP网络向服务器发送点播请求。\n步骤302、服务器接收到点播请求后,响应该请求,以单播方式向上述 终端发送对应节目数据,并记录该单播信息。\n这里,在终端点播一个节目后,服务器可以通过几个单播分别发送不同 类型的数据内容进行响应,例如音频和视频分别通过两个单播发送给用户, 此时可以将这几个单播作为一个整体,本发明中所提及的单播都是针对这个 整体而言;类似地,后续的组播,服务器也可以通过几个组播分别发送不同 类型的数据内容,但本发明所提及的组播都是针对这几个组播的整体而言。\n本步骤中,记录的单播信息包括:节目的ID号,单播的时间标记,单 播的目的地址等。其中,单播的时间标记可以是该单播开始的时间。\n步骤303、服务器判断当前时间所在的时间跨度内是否有对应节目的组 播存在,如果有则执行步骤304;否则执行步骤306;\n步骤304、服务器将该组播的地址发送给终端,通知终端加入该组播接 收节目数据,并在上述记录的单播信息中将该单播标识为已加入组播;\n步骤305、终端根据接收的组播地址加入对应的组播接收组播节目数据, 然后执行步骤308;\n步骤306、服务器判断是否可以建立组播,即统计当前时间所在的时间 跨度内所记录的未被标识为已加入组播的单播数量,并判断该数量是否达到 预先设定的最小单播数量N,如果是执行步骤307;否则执行步骤312;\n步骤307、服务器建立组播发送数据,将该组播的地址发送给该时间跨 度内所记录的未被标识为已加入组播的单播对应的终端,并记录该组播信 息,将加入该组播的单播标识为已加入组播,然后执行步骤305;\n本步骤中,服务器建立组播时,该组播所发送节目数据的起始点需要根 据该组播中最早开始的单播的发送进度确定,可以与该最早开始的单播发送 进度相同,也可以该最早开始的单播当前所发送进度之后预先设定的延迟时 间t所对应的节目数据开始发送。该延迟时间t的大小的设定可以根据网络 情况和响应速度进行,能够保证终端接收的组播节目数据比同时接收的单播 节目数据晚即可。\n另外,本步骤中所记录的组播信息包括节目的ID号、组播的时间标记、 和组播地址。其中,组播的时间标记可以是该组播组中最早开始的单播的开 始时间。\n步骤308~309、终端识别出所接收的单播节目数据和最早接收并存储 的组播节目数据重合后,读取存储的对应进度的组播节目数据进行播放,并 向服务器发送中止单播请求。\n本步骤中,终端识别单播节目数据和组播节目数据是否重合,可以有两 种方式,下面分别说明。\n一种方式为将节目分决的方式。该方式中,服务器将节目数据划分成多 块,块的大小以每块能够在较短时间内传输完毕,保证用户点播后,收看节 目时等待第一块传输完毕的时间较短,可以及时的响应用户点播请求为尺 度,并将每一节目块按顺序连续地设置块号,在发送节目数据时,将块号设 置在节目块的头部与节目块一起发送。则终端在判断出存储的组播节目块的 块号存在与当前接收的单播节目块的块号相同时,确定出单播节目数据与组 播节目数据重合。\n另一种方式为根据音视频数据编码中的时间信息(time_code)识别的 方式。该方式中,当节目数据以MPEG-4或H.264编码时,终端可以根据视 频对象组(GOP)头中的time_code信息来确定单播节目数据与存储的组播 节目数据是否重合;当节目数据以MPEG-2或AVS编码时,终端可以根据 图组头中的time_code信息来确定单播节目数据与存储的组播节目数据是否 重合。具体为当终端确定出存储的组播节目中存在time_code与当前接收的 单播节目的time_code相同的节目数据时,确定出单播节目数据与组播节目 数据重合。\n本步骤中读取对应进度的组播节目数据,可以是在识别出重合后,即读 取重合的组播节目数据开始播放;也可以是在完成当前节目块、或视频对象 组、或图组的播放后,读取存储的组播节目数据中的下一个对应的节目块、 或视频对象组或图组进行播放,此后顺序播放存储的组播节目数据。\n此外,如果在本步骤之前,终端识别出用户中途停止播放,则停止播放 单播节目数据,通知服务器停止单播,并退出组播。服务器接收到停止单播 通知后,停止以单播方式向终端发送节目数据。\n步骤310、服务器接收到来自终端的中止单播请求后,停止向终端发送 单播节目数据,并删除该单播信息,然后执行步骤313。\n步骤311、终端在用户中途中止播放或完成所点播节目的播放后,退出 组播。\n步骤312、终端在用户中途中止播放或完成所点播的节目数据的播放后, 通知服务器停止单播,服务器接收到该通知后,停止向终端发送该单播节目 数据,并删除该单播信息,然后结束该流程。\n步骤313、服务器在完成组播节目数据的播放后,删除该组播信息。\n以上是本实施例中终端与服务器交互的流程,通过该流程交互的服务器 和终端的内部组成如图4所示。在图4中,服务器41与终端42之间通过IP 网络43进行连接;服务器41中具体包括通信模块411、决策模块412和存 储模块413;终端42中具体包括通讯模块421、播放控制模块422、存储模 块423和判断模决424。\n其中,服务器内部各模块之间交互的流程如图5所示,包括以下步骤:\n步骤501、服务器的通讯模块接收到来自终端的点播请求后,将该请求 传送给决策模块。\n步骤502、决策模块响应该请求,以单播方式向上述终端发送对应的节 目数据,并将该单播信息记录在存储模块中。\n步骤503、决策模块查询存储模块中是否存储有在当前时间所在的预先 设定的时间跨度T内针对该节目的组播,如果是执行步骤504;否则执行步 骤505。\n步骤504、决策模块通过通讯模块向终端发送消息通知上述终端加入该 组播,并将存储模块中存储的该单播信息标记为已加入组播,然后执行步骤 508。\n步骤505、决策模块查询存储模块中记录的针对该节目未标记为已加入 组播的单播信息,并判断这些单播的数量是否达到或超过预先设定的最小单 播数量N,如果是则执行步骤506;否则执行步骤508。\n步骤506、决策模块建立组播,通过通讯模块向上述未标记为已加入组 播的单播信息对应的终端发送该组播地址,通知加入该组播接收节目数据, 并将这些单播信息标记为已加入组播。\n步骤507、决策模块将该组播信息存储到存储模块中。\n步骤508、通讯模块在接收到终端发送的中止单播的信息后,将该信息 转发给决策模块。\n步骤509、决策模块根据接收的中止单播的信息停止向对应终端发送单 播节目数据,并将该单播信息从存储模块中删除。\n步骤510、决策模块在确定出单播或组播节目数据发送完成后,停止向 对应终端发送单播或组播节目数据,并将对应的单播或组播信息从存储模块 中删除。\n终端内部的处理流程如图6所示,具体包括以下步骤:\n步骤601、终端的判断模块接收到用户的点播请求后向通讯模块发送点 播请求。\n步骤602、通讯模块将点播请求通过IP网络发送给服务器。\n步骤603、通讯模块在接收到服务器以单播形式发送的节目数据后,将 接收的节目数据传送给播放控制模块。\n步骤604、播放控制模块根据接收的单播形式的节目数据进行播放。\n步骤605、通讯模块在接收到来自服务器的加入组播的通知后,加入对 应组播接收节目数据,并将接收的组播节目数据存储到存储模块中。\n步骤606、判断模块判断以单播形式接收的节目数据和以组播形式接收 的节目数据是否重合,如果重合执行步骤607;否则执行步骤612。\n步骤607、判断模块通过通讯模块向服务器发送中止点播请求,并将上 述重合的信息发送给播放控制模块。\n步骤608、播放控制模块读取存储的组播节目数据并顺序播放。\n步骤609、播放控制模块判断是否接收到了用户的中止播放请求,如果 是,则执行步骤611,退出组播,然后结束该流程;否则,执行步骤610, 判断是否完成了节目的播放,如果是返回执行步骤611;否则返回执行步骤 609。\n步骤612、判断模块判断是否接收到了用户的中止播放请求,如果是执 行步骤613,通过通讯模块向服务器发送中止单播请求,并通知播放控制模 块停止播放节目数据,然后结束该流程;否则执行步骤614,判断是否完成 了节目的播放,如果是返回执行步骤613;否则返回执行步骤612。\n下面再以应用本实施例的一种案例进一步对本实施例进行说明。\n如图7所示,本实施例的一种案例所基于的系统包括服务器41、IP网 络43、终端4201、4202......420n。其中,服务器中包括有CPU、硬盘、网 卡、内存和点播软件服务端。终端中包括有CPU、硬盘、网卡、内存和点播 软件客户端,显示卡等设备。服务器的网卡为通讯模块,硬盘为存储模块, 服务器点播软件为决策模块;CPU与内存为运行所需环境。终端的网卡作为 通讯模块,点播软件客户端为判断模块,硬盘为存储模块,显示卡等显示设 备作为播放控制模块。\n假设一个节目时长100分钟,预先设定的时间跨度T为10分钟,最小 单播数量N为10。终端1最先在10:00进行节目点播,服务器向它发送单 播节目数据,并存储这个单播的信息。终端1在不考虑延迟的情况下,等待 时间为0。此后分别有8个终端加入点播同一个节目,他们的处理与终端1 相同。终端10在10:03又点播了这个节目,服务器立即发送单播数据给它 并存储这个单播的信息,做到点播的立即响应。然后点播软件客户端确定出 此前10分钟内的点播节目数量已经为10个,故建立组播发送数据,并将这 些点播终端对应的单播信息标记为已加入组播。发现这十个节目的点播最早 的终端1已经播放到3分钟,由于考虑网络延迟,从第四分钟节目的内容开 始发送组播数据,将组播信息记录下来,其组播时间标记为10:00即第一个 单播的发起时间,并通知所有终端加入组播接收数据。考虑处理的延迟,假 设终端1接收到的组播数据为从第4分10秒开始的节目数据,终端1此后 同时接收组播和单播数据,并将接收到的组播数据存储到硬盘中;当到 10:04:10时终端发现接收的单播节目数据与存储的组播节目数据已经重合, 通知服务器不再发送单播节目数据,服务器中止发网终端1的单播数据并将 这个单播的信息从存储模块中删除;而终端1开始从硬盘中读取存储的组播 节目数据进行播放。10:07:10时服务器发往所有的终端1到10的单播全部 中止,所有点播节目通过一个组播发送。当10:09有一个终端11点播节目 时,服务器先通过单播发送数据到终端11并存储这个单播的信息,同时服 务器通知终端加入组播接收组播数据,将这个单播的信息设置为已加入组 播,终端11加入接收组播数据并将接收到的组播数据存储到硬盘中。当到 10:13:10时终端11发现点单播数据与组播内容重合通知服务器中止单播的 发送数据并删除这个单播的信息,然后该终端11开始从硬盘中读取存储的 组播数据,并播放。当10:11终端12发起点播请求时,服务器立即响应以 单播方式向终端12发送节目数据,同时查找10分钟内是否有组播,确定出 没有,同时查找10分钟未标记为已加入组播的单播的信息,此时也没有, 故服务器将不通知终端12加入组播,直到到达建立新组播的条件并且该终 端满足加入该新组播的条件为止。\n 单播 组播 分片组播 本发明所举 案例 响应时间 0 5分钟(可选 择) 60秒(可选 择) 0 最小用户数服务器负担(单播) 0 0 0 0 最小用户数服务器负担(组播) (单倍速率) 0 20 14 0 最大用户数服务器负担(单播) N(点播数量 决定) 0 0 90 最大用户数服务器负担(组播) 0 20 14 10 终端带宽要求(播放速度倍数) 1 1 14 2 平均负担 N/2单播 20组播 14组播 45单播或5 组播 服务器负担 大 大 小 小 网络拥塞概率 大 中 中 小 网络利用灵活性 灵活 固定 固定 灵活\n表1\n表1通过上述应用了本发明的情形与现有技术的单播、组播和分片组播 的各种性能分析对比说明了本发明的有益效果。\n从表1中可以看出利用传统组播方式需要很长的响应时间,若减小到两 秒则分别需1800倍个单播放速度组播或420倍播放速度组播,更可怕的时 后者需要终端的接收带宽为420倍的节目播放速度,即1Mbps的MPEG-4 节目要420Mbps的带宽。传统单播的方式在多终端点播时对服务器的性能 和带宽要求过高。采用本发明的方法即实现了单播的即时响应,又克服了传 统单播实现VOD的对服务器过高的要求,同时也克服传统组播方式在无人 点播时还需占用大量带宽和响应速度慢的缺陷。\n以上是对本发明方法第一实施例的说明,在第一实施例中,发起组播的 条件为在一定的时间跨度T内单播的数量达到或超过最小单播数量N个, 并且由终端对接收的单播节目数据和组播节目数据是否重合进行判决。在本 发明中,发起组播的条件也可以是在当前单播之前的建立组播时间门限T′ 时间内没有针对相同节目的组播,但存在针对相同节目的单播,下面通过第 二实施例对这种情况进行说明。\n在本发明的第二实施例中,预先在服务器中设定建立组播时间门限T′ 的值,该值可以根据节目长度确定,例如可以为节目长度的1/20至1/5之间 的值,或者可以为预先确定的值,例如为5至20之间的值。\n本实施例中,服务器与终端交互的流程如图8所示,该流程与第一实施 例中服务器与终端的交互流程基本相同,区别仅在于:在步骤803中,服务 器根据存储的组播信息判断在当前时间之前的T′时间内是否有发送上述节 目数据的组播,如果是执行步骤804;否则执行步骤806。在步骤806中, 服务器根据存储的单播信息判断是否有与当前单播针对相同节目数据的其 他单播,如果是执行步骤807;否则执行步骤812。在步骤807中,服务器 将组播地址发送给当前单播和服务器中记录的与当前单播节目数据相同其 他单播对应的终端。\n服务器内部处理的流程与第一实施例中基本相同,区别仅在于上述服务 器与终端交互流程中所提及的判断内容不同。而终端内部处理的流程在本实 施例中与第一实施例相同,这里不再详细说明。\n在本发明中,发起组播的条件也可以是在当前单播之前没有针对相同节 目的组播,下面通过第三实施例对这种情况进行说明。\n本实施例中,服务器与终端交互的流程如图9所示,该流程与第一实施 例中服务器与终端的交互流程也基本相同,区别仅在于:在步骤902中,可 以不记录单播信息;在步骤903中,服务器判断是否已存在针对相同节目的 组播,如果是执行步骤904,由于在步骤902中可以不记录单播信息,在步 骤904中也可以不执行标记单播信息的步骤;否则直接执行步骤906。在步 骤906中,服务器建立组播,将该组播地址发送给终端,并记录该组播信息, 然后执行步骤905,步骤905与步骤305相同。此后的步骤907至步骤912 与步骤308至步骤313基本相同,区别在于,在步骤909和步骤911中可以 不删除单播信息。\n在本实施例中,服务器内部处理的流程与第一实施例中基本相同,区别 仅在于上述服务器与终端交互流程中所提及的判断内容不同。而终端内部处 理的流程在本实施例中与第一实施例相同,这里不再详细说明。\n在本发明中,对以单播和组播两种方式接收相同节目的终端在何时停止 接收单播节目数据,也可以由服务器控制来实现。下面通过第四实施例来详 细说明。\n本发明的第四实施例可以基于上述第一至第三实施例中的任意一个,区 别在于,在上述三个实施例的流程中,在通知终端加入组播的同时,即上述 步骤304、307、804、807、904和步骤906中,服务器进一步读取该组播开 始的时间Tg,该组播开始的时间为对应所有单播中最早开始的时间,并读 取加入该组播的各个终端的单播开始时间Ts,服务器为每个终端计算停止 发送单播节目数据时间Tstop,Tstop=Ts-Tg。则终端侧不执行判断单播节 目数据和组播节目数据是否重合的步骤,而只是根据来自服务器侧的信息接 收和存储节目数据,并在单播节目数据停止后读取最先接收的组播节目数据 播放。而在服务器侧根据为终端计算的Tstop,在该时间到达后,停止向该 终端发送单播节目数据。\n本实施例中服务器内部的处理流程如图10所示,其中步骤1001和步骤 1002与步骤501和步骤502相同。在步骤1003、决策模块判断是否已有终 端可以加入的组播,如果是执行步骤1004;否则执行步骤1005。\n步骤1004、决策模块通过通讯模块向终端发送消息通知上述终端加入 该组播,并根据该组播的开始的时间和该终端单播开始的时间计算Tstop, 然后执行步骤1008。\n步骤1005、决策模块判断是否可以建立组播,如果是则执行步骤1006; 否则执行步骤1007。\n步骤1006、决策模块建立组播,将该组播信息存储到存储模块中,通 过通讯模块发送组播节目数据,并通知对应终端加入该组播接收节目数据, 然后分别为这些终端计算Tstop。\n步骤1007、决策模块在达到了为终端计算的时间Tstop或在通过通讯模 块接收到了来自终端的中止单播请求后,停止向终端发送单播节目数据,并 删除该单播信息。\n步骤1008、决策模块在确定出单播或组播节目数据发送完成后,停止 向对应终端发送单播或组播节目数据,并将对应的单播或组播信息从存储模 块中删除。\n终端内部的处理流程如图11所示,其中步骤1101至步骤1105与图6 中的步骤601至步骤605相同。区别在于,在步骤1105后,执行1106: 播放控制模块判断是否接收到了用户的中止点播请求,如果是执行步骤 1107,通过通讯模块向服务器发送中止点播请求,并停止播放,然后结束该 流程;否则,执行步骤1108,播放控制模块在识别出单播节目数据已经结 束接收,并且节目未播放完成后,顺序读取存储模块中存储的组播节目数据 进行播放。\n在本实施例中,由于直接由服务器决定停止向终端发送单播节目数据的 时机,减少了终端与服务器之间的交互,节约了网络资源,并降低了终端的 负担。\n以上是对本发明方法具体实施例的详细说明。下面再对本发明的系统、 服务器和终端的各组成部分及连接关系进行详细说明。\n图4已经示出了本发明的系统,其中主要包括服务器41和终端42,在 服务器41和终端42的通信过程中可以通过IP网络43进行。\n其中,服务器41用于根据来自终端的点播请求向其以单播形式发送对 应节目数据;和根据确定出的存在该终端可以加入的组播的信息,或根据确 定出的为该单播建立对应组播的信息,将对应组播地址发送给终端;和根据 确定的建立组播的信息发送组播节目数据;和根据来自终端的中止单播信 息,或根据确定出的同时接收单播节目数据和组播节目数据的终端所接收的 数据重合的信息,停止向终端发送单播节目数据。\n终端42用于根据用户的点播请求向服务器发送点播请求,接收并播放 服务器以单播方式发送的节目数据;和根据来自服务器的组播地址接收和存 储服务器以组播方式发送的节目数据;和根据用户的中止播放请求或确定出 的以单播方式接收的节目数据和以组播方式接收的节目数据重合的信息,向 服务器发送中止单播信息;或进一步根据确定出的以单播方式接收的节目数 据和以组播方式接收的节目数据重合的信息,顺序播放存储的组播节目数 据。\n服务器41中具体又可以包括通讯模块411、决策模块412、存储模块 413。\n其中,通讯模块411用于将服务器中的决策模块412、存储模块413和 IP网络43连接,将通过IP网络43接收的信息传送给对应的决策模块412 或存储模块413,以及将来自服务器中决策模块412、存储模块413的信息 通过IP网络发送给终端。具体包括:接收终端通过IP网络43发送的点播 请求,响应该请求以单播方式读取存储模块中的对应节目数据,将该单播信 息记录到存储模块中,并将点播请求传送给决策模块;和将来自决策模块的 组播信息通过IP网络43发送给终端,并根据来自决策模块412的发起组播 的信息从存储模块413中读取并以组播方式发送对应的节目数据,以及根据 来自终端的中止请求或来自决策模块的停止请求,停止读取和发送对应的节 目数据。\n决策模块412用于根据来自通讯模块412的点播请求确定是否将终端加 入已有的组播,或是否需要发起组播,并根据确定出的将终端加入已有组播 的信息或发起组播的信息,将组播信息发送给通讯模块412;和将发起的组 播的信息存储在存储模块;或进一步用于根据向每个用户所发送的单播和组 播的时间信息确定停止单播,并将确定的停止单播的停止请求发送给通讯模 块421。\n存储模块413,用于存储节目数据、单播信息及组播信息。\n终端42中主要包括通讯模块421、播放控制模块422、存储模块423和 判断模块424。\n通讯模块421用于接收来自服务器的单播节目数据并将单播节目数据 传送给播放控制模块,以及根据来自服务器的组播信息接收组播节目数据并 存储到存储模块中;将用户发起的点播请求发送给服务器;根据用户发起的 中止请求或根据来自判断模块的接收的单播节目数据和组播节目数据重合 的信息向服务器发送中止单播请求;和根据来自用户的中止点播请求停止接 收组播数据。\n播放控制模块422用于接收来自通讯模块的单播节目数据并进行解码 播放;根据来自判断模块的单播节目数据与组播节目数据重合的信息停止播 放单播节目数据,并读取存储模块中存储的组播节目数据进行解码播放,或 根据确定出的单播节目数据中止的信息读取存储模块中存储的组播节目数 据并进行节目播放。\n存储模块423主要用于存储组播节目数据。\n判断模块424,用于确定所的接收的单播节目数据和存储模块中存储的 组播节目数据是否重合,并将确定出的单播节目数据和组播节目数据重合的 信息发送给播放控制模块和通讯模块。当由服务器确定停止向终端发送单播 节目数据的情况下,终端中可以不包括判断模块424。\n如图12所示,为终端播放控制的示意图,其中当图中所示开关121处 于当前位置时,表示播放控制模块对单播节目数据进行解码播放,并将接收 的组播节目数据存储到存储模块中。当图中所示开关连接存储模块和播放控 制模块时,表示播放控制模块停止接收单播节目数据,而读取存储模块中存 储的组播节目数据并解码播放。\n可以理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发 明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
法律信息
- 2022-12-16
专利权的转移
登记生效日: 2022.12.02
专利权人由华为云计算技术有限公司变更为深圳华为云计算技术有限公司
地址由550025 贵州省贵阳市贵安新区黔中大道交兴功路华为云数据中心变更为518129 广东省深圳市龙岗区坂田街道万科城社区华为公司华为总部办公楼101
- 2022-02-22
专利权的转移
登记生效日: 2022.02.09
专利权人由华为技术有限公司变更为华为云计算技术有限公司
地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为550025 贵州省贵阳市贵安新区黔中大道交兴功路华为云数据中心
- 2008-10-22
- 2007-01-03
- 2006-11-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-04-06
|
2002-12-12
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |