流媒体处理方法、装置、客户端、cdn节点服务器及终端的制作方法
【专利摘要】本发明实施例提供一种流媒体处理方法、装置、客户端、CDN节点服务器及终端,其中一种方法可包括:根据客户端的流媒体获取请求,拉取所请求的流媒体数据;将拉取的所述流媒体数据存储至分发缓冲区;按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。本发明可保证流媒体播放质量,降低流媒体处理的运营成本,同时提升流媒体处理的智能性。
【专利说明】流媒体处理方法、装置、客户端、CDN节点服务器及终端
【技术领域】
[0001] 本发明涉及互联网【技术领域】,具体涉及流媒体【技术领域】,尤其涉及一种流媒体信 息方法、装置、客户端、⑶N(Content Delivery Network,内容分发网络)节点服务器及终 端。
【背景技术】
[0002] 流媒体指采用流式传输、且能在网络播放的媒体格式。流媒体数据可包括但不限 于:音频数据、视频数据和多媒体文件数据。CDN系统,即内容分发网络系统,可包括分布式 的CDN节点服务器,用于为客户端就近提供其所需内容,解决网络拥挤状况,提高网络访问 的响应速度。目前,流媒体传输系统的主要架构为:在多个客户端与流媒体服务器之间架设 CDN系统,由CDN系统从流媒体服务器拉取流媒体数据下发至各客户端进行播放,从而为各 客户端提供高效且负载均衡的流媒体服务。CDN系统的出口带宽指CDN系统中的CDN节点 服务器向客户端推送流媒体数据的使用带宽,由流媒体数据的输出码率的波动程度决定。 CDN系统的出口带宽是影响流媒体运营成本的一个重要因素。为了降低CDN系统的出口带 宽以降低运营成本,现有的流媒体处理过程中,主要通过限制客户端数量或降低推送的流 媒体数据的码率来实现,然而,限制客户端数量无疑降低了流媒体处理的智能性,降低推送 的流媒体数据的码率又将影响流媒体播放质量,同样降低了流媒体处理的智能性。
【发明内容】
[0003] 本发明实施例提供一种流媒体处理方法、装置、客户端、CDN节点服务器及终端,可 保证流媒体播放质量,降低流媒体处理的运营成本,同时提升流媒体处理的智能性。
[0004] 本发明实施例第一方面提供一种流媒体处理方法,可包括:
[0005] 根据客户端的流媒体获取请求,拉取所请求的流媒体数据;
[0006] 将拉取的所述流媒体数据存储至分发缓冲区;
[0007] 按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。
[0008] 本发明实施例第二方面提供另一种流媒体处理方法,可包括:
[0009] 当接收到流媒体播放请求时,生成流媒体获取请求;
[0010] 向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所请求的 流媒体数据并存储至分发缓冲区;
[0011] 接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体 数据。
[0012] 本发明实施例第三方面提供一种流媒体处理装置,可包括:
[0013] 拉取模块,用于根据客户端的流媒体获取请求,拉取所请求的流媒体数据;
[0014] 存储模块,用于将拉取的所述流媒体数据存储至分发缓冲区;
[0015] 推送模块,用于按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述 客户端。
[0016] 本发明实施例第四方面提供一种CDN节点服务器,可包括上述第三方面提供的流 媒体处理装置。
[0017] 本发明实施例第五方面提供一种客户端,可包括:
[0018] 请求生成模块,用于当接收到流媒体播放请求时,生成流媒体获取请求;
[0019] 请求模块,用于向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务 器拉取所请求的流媒体数据并存储至分发缓冲区;
[0020] 接收模块,用于接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内 的所述流媒体数据。
[0021] 本发明实施例第六方面提供一种终端,可包括上述第五方面提供的客户端。
[0022] 实施本发明实施例,具有如下有益效果:
[0023] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
【专利附图】
【附图说明】
[0024] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0025] 图1为本发明实施例提供的一种流媒体处理方法的流程图;
[0026] 图2为本发明实施例提供的另一种流媒体处理方法的流程图;
[0027] 图3为本发明实施例提供的又一种流媒体处理方法的流程图;
[0028] 图4为本发明实施例提供的又一种流媒体处理方法的流程图;
[0029] 图5为本发明实施例提供的又一种流媒体处理方法的流程图;
[0030] 图6为本发明实施例提供的一种流媒体处理装置的结构示意图;
[0031] 图7为图6所示的拉取模块的实施例的结构示意图;
[0032] 图8为图6所示的推送模块的实施例的结构示意图;
[0033] 图9为本发明实施例提供的一种客户端的结构示意图;
[0034] 图10为本发明实施例提供的另一种客户端的结构示意图;
[0035] 图11为本发明实施例提供的一种请求生成模块的结构示意图;
[0036] 图12为本发明实施例提供的一种CDN节点服务器的结构示意图;
[0037] 图13为本发明实施例提供的一种终端的结构示意图。
【具体实施方式】
[0038] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0039] 下面将结合附图1-附图2,从CDN节点服务器侧对本发明实施例提供的流媒体处 理方法进行详细介绍。需要说明的是,图1-图2所示的流媒体处理方法可由CDN节点服务 器所执行,具体可由CDN节点服务器中的流媒体处理装置所执行。
[0040] 请参见图1,为本发明实施例提供的一种流媒体处理方法的流程图;该方法可包 括以下步骤S101-步骤S103。
[0041] S101,根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
[0042] 流媒体指采用流式传输、且能在网络播放的媒体格式。其中,流式传输的过程可包 括:将待传输的流媒体数据按照播放时间顺序分解为多个数据包,每个数据包对应一个序 号,按照序号依次将各数据包进行传输,以保证接收端能够根据序号对所述流媒体数据进 行连续输出。流媒体数据可包括但不限于:音频数据、视频数据和多媒体文件数据。本步骤 可根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
[0043] S102,将拉取的所述流媒体数据存储至分发缓冲区。
[0044] 所述分发缓冲区指预先设置的、用于存储即将向客户端推送的流媒体数据的区 域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数 据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播 放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量 大小。本步骤中,当拉取到所请求的流媒体数据,则将拉取的流媒体数据存储至所述分发缓 冲区。
[0045] S103,按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。
[0046] 所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的 实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲 区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率, 例如:所述设定速率为一恒定的速率V,本步骤则以该恒定的速率v匀速将所述分发缓冲 区内的所述流媒体数据推送至所述客户端。实际应用中,推送的流媒体数据的数据流量大 小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响 CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的 输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。本步骤按照设定速率向 所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所推送的 流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
[0047] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送 的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降 低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性 和智能性。
[0048] 请参见图2,为本发明实施例提供的另一种流媒体处理方法的流程图;该方法可 包括以下步骤S201-步骤S205。
[0049] S201,接收客户端发送的流媒体获取请求,所述流媒体获取请求中携带所请求的 流媒体数据的标识信息。所述流媒体数据的标识信息可用于唯一标识所述流媒体数据。
[0050] S202,根据所请求的流媒体数据的标识信息,从流媒体服务器中拉取所请求的流 媒体数据。
[0051] 本实施例的步骤S201-步骤S202可以为图1所示实施例的步骤S101的具体细化 步骤。
[0052] S203,将拉取的所述流媒体数据存储至分发缓冲区。
[0053] 所述分发缓冲区指预先设置的、用于存储即将向客户端推送的流媒体数据的区 域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数 据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播 放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量 大小。本步骤中,当拉取到所请求的流媒体数据,则将该流媒体数据存储至所述分发缓冲 区。
[0054] 在本实施例的一种可行的实施方式中,步骤S202可以实时从流媒体服务器中拉 取所请求的流媒体数据,本步骤则可将该拉取的流媒体数据实时存储至所述分发缓冲区 中;在本发明实施例的另一种可行的实施方式中,步骤S202可以从流媒体服务器中下载所 请求的完整的流媒体数据并存储于本地内存空间中,本步骤则可从本地内存空间中实时获 取所述流媒体数据存储至所述分发缓冲区。
[0055] S204,按照设定速率从所述分发缓冲区内读取所述流媒体数据。
[0056] 所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的 实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲 区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率, 例如:所述设定速率为一恒定的速率V,本步骤则以该恒定的速率v匀速从所述分发缓冲 区读取所述流媒体数据。
[0057] S205,将读取的所述流媒体数据以所述设定速率推送至所述客户端。
[0058] 本步骤以所述设定速率将读取的所述流媒体数据推送至所述客户端,按照步骤 S204所示例子,本步骤可以一恒定的速率v将读取的所述流媒体数据推送至所述客户端。 实际应用中,推送的流媒体数据的数据流量大小与该推送的流媒体数据的输出码率相关, 推送的流媒体数据的输出码率的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒 体数据的数据流量越大,所推送的流媒体数据的输出码率波动越大、峰值越高,从而使得 CDN系统的出口带宽越高。本步骤按照设定速率向所述客户端推送流媒体数据,可保证推送 的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降 低⑶N系统的出口带宽。
[0059] 本实施例的步骤S204-步骤S205可以为图1所示实施例的步骤S103的具体细化 步骤。
[0060] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0061] 下面将结合附图3-附图5,从客户端侧对本发明实施例提供的流媒体处理方法进 行详细介绍。需要说明的是,图3-图5所示的流媒体处理方法可由客户端所执行,该客户端 可以为接入CDN系统中的任一客户端,可包括但不限于:即时通信客户端、浏览器客户端、 SNS客户端等等,该客户端可运行于终端中,该终端可以包括但不限于:笔记本电脑、手机、 PAD (平板电脑)、智能可穿戴设备等等。
[0062] 请参见图3,为本发明实施例提供的又一种流媒体处理方法的流程图;该方法可 包括以下步骤S301-步骤S303。
[0063] S301,当接收到流媒体播放请求时,生成流媒体获取请求。
[0064] 用户欲使用客户端的流媒体服务时,可向客户端发起流媒体播放请求,例如:用 户可在浏览器客户端的地址栏输入欲观看的视频地址,向浏览器客户端发送流媒体播放请 求。本步骤中,客户端在接收到流媒体播放请求时,生成流媒体获取请求;所述流媒体获取 请求用于向CDN节点服务器请求获取用户所请求播放的流媒体数据。
[0065] S302,向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所 请求的流媒体数据并存储至分发缓冲区。
[0066] 所述分发缓冲区指所述CDN节点服务器预先设置的、用于存储即将向客户端推送 的流媒体数据的区域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如: 可依据流媒体数据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体 数据的流畅播放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数 据的数据流量大小。
[0067] S303,接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流 媒体数据。
[0068] 所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的 实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲 区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率, 例如:所述设定速率为一恒定的速率v,本步骤中,接收CDN节点服务器以该恒定的速率v 匀速所推送的所述分发缓冲区内的所述流媒体数据。实际应用中,推送的流媒体数据的数 据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值 直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒 体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。由于CDN节点 服务器按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量 保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。 [0069] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和 智能性。
[0070] 请参见图4,为本发明实施例提供的又一种流媒体处理方法的流程图;该方法可 包括以下步骤S401-步骤S406。
[0071] S401,当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息。所述流 媒体数据的标识信息可用于唯一标识所述流媒体数据。
[0072] S402,根据所述流媒体数据的标识信息,生成流媒体获取请求。
[0073] 本实施例的步骤S401-步骤S402可以为图3所示实施例的步骤S301的具体细化 步骤。
[0074] S403,向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所 请求的流媒体数据并存储至分发缓冲区。
[0075] S404,接收所述⑶N节点服务器按照设定速率推送的所述分发缓冲区内的所述流 媒体数据。
[0076] 本实施例的步骤S403-步骤S404可以参见图3所示实施例的步骤S302-步骤 S303,在此不赘述。
[0077] S405,将接收到的所述⑶N节点服务器推送的所述流媒体数据存储至播放缓冲 区。
[0078] 所述播放缓冲区指预先设置的、用于存储即将播放的流媒体数据的区域;所述播 放缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否能够 流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可 设定所述播放缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。本 步骤中,将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区。
[0079] S406,从所述播放缓冲区读取所述流媒体数据进行播放。
[0080] 本步骤从所述播放缓冲区读取所述流媒体数据进行播放,可克服播放码率抖动, 有效地减少流媒体播放时延,提升流媒体播放的流畅性。
[0081] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0082] 请参见图5,为本发明实施例提供的又一种流媒体处理方法的流程图;该方法可 包括以下步骤S501-步骤S507。
[0083] S501,当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息。
[0084] S502,根据所述流媒体数据的标识信息,生成流媒体获取请求。
[0085] S503,向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所 请求的流媒体数据并存储至分发缓冲区。
[0086] S504,接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流 媒体数据。
[0087] S505,将接收到的所述⑶N节点服务器推送的所述流媒体数据存储至播放缓冲 区。
[0088] 本实施例的步骤S501-步骤S505可参见图4所示实施例的步骤S401-步骤S405, 在此不赘述。
[0089] S506,检测所述播放缓冲区的空余率是否小于预设阈值;若检测结果为是,转入步 骤S507 ;否则,重复步骤S506。
[0090] 所述播放缓冲区的空余率指所述播放缓冲区中可用存储空间大小占所述播放缓 冲区的总存储空间大小的比例。所述预设阈值可根据实际需要进行设定,例如:可依据流媒 体数据是否能够流畅播放进行设定,诸如所述预设阈值可设定为20%、10%等等。本步骤 中,若所述播放缓冲区的空余率小于预设阈值,表明所述播放缓冲区内已存储的流媒体数 据能够克服播放码率抖动,有效地减少播放时延,保证播放流畅度,则可转入步骤S507。若 所述播放缓冲区的空余率大于或等于预设阈值,表明所述播放缓冲区内已存储的流媒体数 据不足以克服播放码率抖动,需要等待较长的播放时延,无法保证播放流畅度,可重复执行 步骤S506。
[0091] S507,从所述播放缓冲区读取所述流媒体数据进行播放。
[0092] 本实施例的步骤S507可参见图4所示实施例的步骤S406,在此不赘述。
[0093] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0094] 下面将结合附图6-附图8,对本发明实施例提供的流媒体处理装置进行详细介 绍。需要说明的是,图6-图8所示的流媒体处理装置可位于CDN节点服务器中,用于执行 图1-图2所示方法。
[0095] 请参见图6,为本发明实施例提供的一种流媒体处理装置的结构示意图;该装置 可包括:拉取模块101、存储模块102和推送模块103。
[0096] 拉取模块101,用于根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
[0097] 流媒体指采用流式传输、且能在网络播放的媒体格式。其中,流式传输的过程可包 括:将待传输的流媒体数据按照播放时间顺序分解为多个数据包,每个数据包对应一个序 号,按照序号依次将各数据包进行传输,以保证接收端能够根据序号对所述流媒体数据进 行连续输出。流媒体数据可包括但不限于:音频数据、视频数据和多媒体文件数据。所述拉 取模块101可根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
[0098] 存储模块102,用于将拉取的所述流媒体数据存储至分发缓冲区。
[0099] 所述分发缓冲区指预先设置的、用于存储即将向客户端推送的流媒体数据的区 域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数 据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播 放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量 大小。当拉取到所请求的流媒体数据,所述存储模块102将拉取的流媒体数据存储至所述 分发缓冲区。
[0100] 推送模块103,用于按照设定速率将所述分发缓冲区内的所述流媒体数据推送至 所述客户端。
[0101] 所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的 实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲 区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率, 例如:所述设定速率为一恒定的速率V,所述推送模块103以该恒定的速率v匀速将所述分 发缓冲区内的所述流媒体数据推送至所述客户端。实际应用中,推送的流媒体数据的数据 流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直 接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒 体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。所述推送模块 103按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保 持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
[0102] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0103] 请参见图7,为图6所示的拉取模块的实施例的结构示意图;该拉取模块101可包 括:请求接收单元1101和数据拉取单元1102。
[0104] 请求接收单元1101,用于接收客户端发送的流媒体获取请求,所述流媒体获取请 求中携带所请求的流媒体数据的标识信息。所述流媒体数据的标识信息可用于唯一标识所 述流媒体数据。
[0105] 数据拉取单元1102,用于根据所请求的流媒体数据的标识信息,从流媒体服务器 中拉取所请求的流媒体数据。
[0106] 在本实施例的一种可行的实施方式中,所述数据拉取单元1102可以实时从流媒 体服务器中拉取所请求的流媒体数据,所述存储模块102则可将该拉取的流媒体数据实时 存储至所述分发缓冲区中;在本发明实施例的另一种可行的实施方式中,所述数据拉取单 元1102可以从流媒体服务器中下载所请求的完整的流媒体数据并存储于本地内存空间 中,所述存储模块102则可从本地内存空间中实时获取所述流媒体数据存储至所述分发缓 冲区。
[0107] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0108] 请参见图8,为图6所示的推送模块的实施例的结构示意图;该推送模块103可包 括:数据读取单元1301和数据推送单元1302。
[0109] 数据读取单元1301,用于按照设定速率从所述分发缓冲区内读取所述流媒体数 据。
[0110] 所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的 实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲 区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率, 例如:所述设定速率为一恒定的速率v,所述数据读取单元1301以该恒定的速率v匀速从 所述分发缓冲区读取所述流媒体数据。
[0111] 数据推送单元1302,用于将读取的所述流媒体数据以所述设定速率推送至所述客 户端。
[0112] 所述数据推送单元1302以所述设定速率将读取的所述流媒体数据推送至所述客 户端,按照本实施例所示例子,所述数据推送单元1302可以一恒定的速率v将读取的所述 流媒体数据推送至所述客户端。实际应用中,推送的流媒体数据的数据流量大小与该推送 的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响CDN系统的 出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的输出码率波 动越大、峰值越高,从而使得CDN系统的出口带宽越高。所述数据推送单元1302按照设定 速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所 推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
[0113] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0114] 本发明实施例还公开了一种⑶N节点服务器,该⑶N节点服务器可以为⑶N系统 中的任一个节点服务器,该CDN节点服务器可包含一个流媒体处理装置,该流媒体处理装 置的结构和功能可参见图6-图8所示实施例的相关描述,在此不赘述。
[0115] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0116] 下面将结合附图9-附图11,对本发明实施例提供的客户端进行详细介绍。该客 户端可以为接入CDN系统中的任一客户端,可包括但不限于:即时通信客户端、浏览器客户 端、SNS客户端等等。需要说明的是,图9-图11所示的客户端可运行于终端中,用于执行 图3-图5所示方法,其中终端可以包括但不限于:笔记本电脑、手机、PAD、智能可穿戴设备 等等。
[0117] 请参见图9,为本发明实施例提供的一种客户端的结构示意图;该客户端可包括: 请求生成模块201、请求模块202和接收模块203。
[0118] 请求生成模块201,用于当接收到流媒体播放请求时,生成流媒体获取请求。
[0119] 用户欲使用客户端的流媒体服务时,可向客户端发起流媒体播放请求,例如:用 户可在浏览器客户端的地址栏输入欲观看的视频地址,向浏览器客户端发送流媒体播放请 求。所述请求生成模块201在接收到流媒体播放请求时,生成流媒体获取请求;所述流媒体 获取请求用于向CDN节点服务器请求获取用户所请求播放的流媒体数据。
[0120] 请求模块202,用于向CDN节点服务器发送所述流媒体获取请求,以使所述节点服 务器拉取所请求的流媒体数据并存储至分发缓冲区。
[0121] 所述分发缓冲区指所述CDN节点服务器预先设置的、用于存储即将向客户端推 送的流媒体数据的区域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例 如:可依据流媒体数据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流 媒体数据的流畅播放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒 体数据的数据流量大小。
[0122] 接收模块203,用于接收所述CDN节点服务器按照设定速率推送的所述分发缓冲 区内的所述流媒体数据。
[0123] 所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的 实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲 区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率, 例如:所述设定速率为一恒定的速率v,所述接收模块203接收CDN节点服务器以该恒定的 速率v匀速所推送的所述分发缓冲区内的所述流媒体数据。实际应用中,推送的流媒体数 据的数据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率 的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推 送的流媒体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。由于 CDN节点服务器按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的 数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出 口带宽。
[0124] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0125] 请参见图10,为本发明实施例提供的另一种客户端的结构示意图;该客户端可包 括:请求生成模块201、请求模块202和接收模块203,可选地,该客户端还包括:存储模块 204和播放模块205。其中,请求生成模块201、请求模块202和接收模块203的结构和功能 可参见图9所示实施例的相关描述,在此不赘述。
[0126] 存储模块204,用于将接收到的所述CDN节点服务器推送的所述流媒体数据存储 至播放缓冲区。
[0127] 所述播放缓冲区指预先设置的、用于存储即将播放的流媒体数据的区域;所述播 放缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否能够 流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可 设定所述播放缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。所 述存储模块204将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲 区。
[0128] 播放模块205,用于从所述播放缓冲区中读取所述流媒体数据进行播放。
[0129] 所述播放模块205从所述播放缓冲区读取所述流媒体数据进行播放,可克服播放 码率抖动,有效地减少流媒体播放时延,提升流媒体播放的流畅性。
[0130] 进一步可选地,所述客户端还包括:
[0131] 检测模块206,用于检测所述播放缓冲区的空余率是否小于预设阈值,若所述播放 缓冲区的空余率小于预设阈值,通知所述播放模块205从所述播放缓冲区中读取所述流媒 体数据进行播放。
[0132] 所述播放缓冲区的空余率指所述播放缓冲区中可用存储空间大小占所述播放缓 冲区的总存储空间大小的比例。所述预设阈值可根据实际需要进行设定,例如:可依据流媒 体数据是否能够流畅播放进行设定,诸如所述预设阈值可设定为20 %、10 %等等。若所述播 放缓冲区的空余率小于预设阈值,表明所述播放缓冲区内已存储的流媒体数据能够克服播 放码率抖动,有效地减少播放时延,保证播放流畅度。若所述播放缓冲区的空余率大于或等 于预设阈值,表明所述播放缓冲区内已存储的流媒体数据不足以克服播放码率抖动,需要 等待较长的播放时延,无法保证播放流畅度。
[0133] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0134] 请参见图11,为本发明实施例提供的一种请求生成模块的结构示意图;该请求生 成模块201可包括:标识获取单元2101和请求生成单元2102。
[0135] 标识获取单元2101,用于当接收到流媒体播放请求时,获取所请求的流媒体数据 的标识信息。所述流媒体数据的标识信息可用于唯一标识所述流媒体数据。
[0136] 请求生成单元2102,用于根据所述流媒体数据的标识信息,生成流媒体获取请求。
[0137] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0138] 本发明实施例还公开了一种终端,该终端可以包括但不限于:笔记本电脑、手机、 PAD、智能可穿戴设备等等。该终端可包括一客户端,该客户端的结构和功能可参见图9-图 11所示实施例的相关描述,在此不赘述。
[0139] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0140] 请参见图12,为本发明实施例提供的一种CDN节点服务器的结构示意图;本发明 实施例的⑶N节点服务器包括:至少一个处理器301,例如CPU,至少一个通信总线302,至 少一个网络接口 303,存储器304。其中,通信总线302用于实现这些组件之间的连接通信。 其中,所述网络接口 303可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接 口等)。所述存储器304可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。所述存储器304可选的还可以是至少一个位于远离 前述处理器301的存储装置。如图12所示,作为一种计算机存储介质的存储器304中存储 有操作系统、网络通信模块,并存储有用于进行流媒体处理的程序以及其他程序。
[0141] 其中具体的,所述处理器301可以用于调用所述存储器304中存储的用于进行流 媒体处理的程序,执行以下步骤:
[0142] 根据客户端的流媒体获取请求,拉取所请求的流媒体数据;
[0143] 将拉取的所述流媒体数据存储至分发缓冲区;
[0144] 按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。
[0145] 进一步,所述处理器301在执行所述根据客户端的流媒体获取请求,拉取所请求 的流媒体数据的步骤时,具体执行以下步骤:
[0146] 接收客户端发送的流媒体获取请求,所述流媒体获取请求中携带所请求的流媒体 数据的标识信息;
[0147] 根据所请求的流媒体数据的标识信息,从流媒体服务器中拉取所请求的流媒体数 据。
[0148] 进一步,所述处理器301在执行所述按照设定速率将所述分发缓冲区内的所述流 媒体数据推送至所述客户端的步骤时,具体执行以下步骤:
[0149] 按照设定速率从所述分发缓冲区内读取所述流媒体数据;
[0150] 将读取的所述流媒体数据以所述设定速率推送至所述客户端。
[0151] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0152] 请参见图13,为本发明实施例提供的一种终端的结构示意图;本发明实施例的终 端包括:至少一个处理器401,例如CPU,至少一个通信总线402,至少一个网络接口 403,存 储器404。其中,通信总线402用于实现这些组件之间的连接通信。其中,所述网络接口 403可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。所述存储 器404可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如 至少一个磁盘存储器。所述存储器404可选的还可以是至少一个位于远离前述处理器401 的存储装置。如图13所示,作为一种计算机存储介质的存储器404中存储有操作系统、网 络通信模块,并存储有用于进行流媒体处理的程序以及其他程序。
[0153] 其中具体的,所述处理器401可以用于调用所述存储器404中存储的用于进行流 媒体处理的程序,执行以下步骤:
[0154] 当接收到流媒体播放请求时,生成流媒体获取请求;
[0155] 向内容分发网络CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器 拉取所请求的流媒体数据并存储至分发缓冲区;
[0156] 接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体 数据。
[0157] 进一步,所述处理器401在执行所述当接收到流媒体播放请求时,生成流媒体获 取请求的步骤时,具体执行以下步骤:
[0158] 当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息;
[0159] 根据所述流媒体数据的标识信息,生成流媒体获取请求。
[0160] 进一步,所述处理器401在执行所述接收所述CDN节点服务器按照设定速率推送 的所述分发缓冲区内的所述流媒体数据的步骤之后,还执行以下步骤:
[0161] 将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区;
[0162] 从所述播放缓冲区读取所述流媒体数据进行播放。
[0163] 进一步,所述处理器401在执行所述将接收到的所述CDN节点服务器推送的所述 流媒体数据存储至播放缓冲区的步骤之后,在执行从所述播放缓冲区读取所述流媒体数据 进行播放的步骤之前,还执行以下步骤:
[0164] 检测所述播放缓冲区的空余率是否小于预设阈值;
[0165] 若所述播放缓冲区的空余率小于预设阈值,则执行从所述播放缓冲区中读取所述 流媒体数据进行播放的步骤。
[0166] 本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用 分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外, 本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的 流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低 CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智 能性。
[0167] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0168] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范 围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1. 一种流媒体处理方法,其特征在于,包括: 根据客户端的流媒体获取请求,拉取所请求的流媒体数据; 将拉取的所述流媒体数据存储至分发缓冲区; 按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。
2. 如权利要求1所述的方法,其特征在于,所述根据客户端的流媒体获取请求,拉取所 请求的流媒体数据,包括: 接收客户端发送的流媒体获取请求,所述流媒体获取请求中携带所请求的流媒体数据 的标识信息; 根据所请求的流媒体数据的标识信息,从流媒体服务器中拉取所请求的流媒体数据。
3. 如权利要求1或2所述的方法,其特征在于,所述按照设定速率将所述分发缓冲区内 的所述流媒体数据推送至所述客户端,包括: 按照设定速率从所述分发缓冲区内读取所述流媒体数据; 将读取的所述流媒体数据以所述设定速率推送至所述客户端。
4. 一种流媒体处理方法,其特征在于,包括: 当接收到流媒体播放请求时,生成流媒体获取请求; 向内容分发网络CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取 所请求的流媒体数据并存储至分发缓冲区; 接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体数据。
5. 如权利要求4所述的方法,其特征在于,所述当接收到流媒体播放请求时,生成流媒 体获取请求,包括: 当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息; 根据所述流媒体数据的标识信息,生成流媒体获取请求。
6. 如权利要求4或5所述的方法,其特征在于,所述接收所述CDN节点服务器按照设定 速率推送的所述分发缓冲区内的所述流媒体数据之后,还包括: 将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区; 从所述播放缓冲区读取所述流媒体数据进行播放。
7. 如权利要求6所述的方法,其特征在于,所述将接收到的所述CDN节点服务器推送的 所述流媒体数据存储至播放缓冲区之后,从所述播放缓冲区读取所述流媒体数据进行播放 之前,还包括: 检测所述播放缓冲区的空余率是否小于预设阈值; 若所述播放缓冲区的空余率小于预设阈值,则执行从所述播放缓冲区中读取所述流媒 体数据进行播放的步骤。
8. -种流媒体处理装置,其特征在于,包括: 拉取模块,用于根据客户端的流媒体获取请求,拉取所请求的流媒体数据; 存储模块,用于将拉取的所述流媒体数据存储至分发缓冲区; 推送模块,用于按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户 端。
9. 如权利要求8所述的装置,其特征在于,所述拉取模块包括: 请求接收单元,用于接收客户端发送的流媒体获取请求,所述流媒体获取请求中携带 所请求的流媒体数据的标识信息; 数据拉取单元,用于根据所请求的流媒体数据的标识信息,从流媒体服务器中拉取所 请求的流媒体数据。
10. 如权利要求8或9所述的装置,其特征在于,所述推送模块包括: 数据读取单元,用于按照设定速率从所述分发缓冲区内读取所述流媒体数据; 数据推送单元,用于将读取的所述流媒体数据以所述设定速率推送至所述客户端。
11. 一种CDN节点服务器,其特征在于,包括如权利要求8-10任一项所述的流媒体处理 装直。
12. -种客户端,其特征在于,包括: 请求生成模块,用于当接收到流媒体播放请求时,生成流媒体获取请求; 请求模块,用于向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉 取所请求的流媒体数据并存储至分发缓冲区; 接收模块,用于接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所 述流媒体数据。
13. 如权利要求12所述的客户端,其特征在于,所述请求生成模块包括: 标识获取单元,用于当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信 息; 请求生成单元,用于根据所述流媒体数据的标识信息,生成流媒体获取请求。
14. 如权利要求12或13所述的客户端,其特征在于,还包括: 存储模块,用于将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓 冲区; 播放模块,用于从所述播放缓冲区中读取所述流媒体数据进行播放。
15. 如权利要求14所述的客户端,其特征在于,还包括: 检测模块,用于检测所述播放缓冲区的空余率是否小于预设阈值,若所述播放缓冲区 的空余率小于预设阈值,通知所述播放模块从所述播放缓冲区中读取所述流媒体数据进行 播放。
16. -种终端,其特征在于,包括如权利要求12-15任一项所述的客户端。
【文档编号】H04L12/801GK104219286SQ201410400640
【公开日】2014年12月17日 申请日期:2014年8月13日 优先权日:2014年8月13日
【发明者】胡兴华, 曾新海 申请人:腾讯科技(深圳)有限公司