具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合附图1-附图2,从CDN节点服务器侧对本发明实施例提供的流媒体处理方法进行详细介绍。需要说明的是,图1-图2所示的流媒体处理方法可由CDN节点服务器所执行,具体可由CDN节点服务器中的流媒体处理装置所执行。
请参见图1,为本发明实施例提供的一种流媒体处理方法的流程图;该方法可包括以下步骤S101-步骤S103。
S101,根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
流媒体指采用流式传输、且能在网络播放的媒体格式。其中,流式传输的过程可包括:将待传输的流媒体数据按照播放时间顺序分解为多个数据包,每个数据包对应一个序号,按照序号依次将各数据包进行传输,以保证接收端能够根据序号对所述流媒体数据进行连续输出。流媒体数据可包括但不限于:音频数据、视频数据和多媒体文件数据。本步骤可根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
S102,将拉取的所述流媒体数据存储至分发缓冲区。
所述分发缓冲区指预先设置的、用于存储即将向客户端推送的流媒体数据的区域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。本步骤中,当拉取到所请求的流媒体数据,则将拉取的流媒体数据存储至所述分发缓冲区。
S103,按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。
所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率,例如:所述设定速率为一恒定的速率v,本步骤则以该恒定的速率v匀速将所述分发缓冲区内的所述流媒体数据推送至所述客户端。实际应用中,推送的流媒体数据的数据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。本步骤按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向 所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图2,为本发明实施例提供的另一种流媒体处理方法的流程图;该方法可包括以下步骤S201-步骤S205。
S201,接收客户端发送的流媒体获取请求,所述流媒体获取请求中携带所请求的流媒体数据的标识信息。所述流媒体数据的标识信息可用于唯一标识所述流媒体数据。
S202,根据所请求的流媒体数据的标识信息,从流媒体服务器中拉取所请求的流媒体数据。
本实施例的步骤S201-步骤S202可以为图1所示实施例的步骤S101的具体细化步骤。
S203,将拉取的所述流媒体数据存储至分发缓冲区。
所述分发缓冲区指预先设置的、用于存储即将向客户端推送的流媒体数据的区域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。本步骤中,当拉取到所请求的流媒体数据,则将该流媒体数据存储至所述分发缓冲区。
在本实施例的一种可行的实施方式中,步骤S202可以实时从流媒体服务器中拉取所请求的流媒体数据,本步骤则可将该拉取的流媒体数据实时存储至所述分发缓冲区中;在本发明实施例的另一种可行的实施方式中,步骤S202可以从流媒体服务器中下载所请求的完整的流媒体数据并存储于本地内存空间中,本步骤则可从本地内存空间中实时获取所述流媒体数据存储至所述分发缓冲区。
S204,按照设定速率从所述分发缓冲区内读取所述流媒体数据。
所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率,例如:所述设定速率为一恒定的速率v,本步骤 则以该恒定的速率v匀速从所述分发缓冲区读取所述流媒体数据。
S205,将读取的所述流媒体数据以所述设定速率推送至所述客户端。
本步骤以所述设定速率将读取的所述流媒体数据推送至所述客户端,按照步骤S204所示例子,本步骤可以一恒定的速率v将读取的所述流媒体数据推送至所述客户端。实际应用中,推送的流媒体数据的数据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。本步骤按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
本实施例的步骤S204-步骤S205可以为图1所示实施例的步骤S103的具体细化步骤。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
下面将结合附图3-附图5,从客户端侧对本发明实施例提供的流媒体处理方法进行详细介绍。需要说明的是,图3-图5所示的流媒体处理方法可由客户端所执行,该客户端可以为接入CDN系统中的任一客户端,可包括但不限于:即时通信客户端、浏览器客户端、SNS客户端等等,该客户端可运行于终端中,该终端可以包括但不限于:笔记本电脑、手机、PAD(平板电脑)、智能可穿戴设备等等。
请参见图3,为本发明实施例提供的又一种流媒体处理方法的流程图;该方法可包括以下步骤S301-步骤S303。
S301,当接收到流媒体播放请求时,生成流媒体获取请求。
用户欲使用客户端的流媒体服务时,可向客户端发起流媒体播放请求,例 如:用户可在浏览器客户端的地址栏输入欲观看的视频地址,向浏览器客户端发送流媒体播放请求。本步骤中,客户端在接收到流媒体播放请求时,生成流媒体获取请求;所述流媒体获取请求用于向CDN节点服务器请求获取用户所请求播放的流媒体数据。
S302,向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所请求的流媒体数据并存储至分发缓冲区。
所述分发缓冲区指所述CDN节点服务器预先设置的、用于存储即将向客户端推送的流媒体数据的区域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。
S303,接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体数据。
所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率,例如:所述设定速率为一恒定的速率v,本步骤中,接收CDN节点服务器以该恒定的速率v匀速所推送的所述分发缓冲区内的所述流媒体数据。实际应用中,推送的流媒体数据的数据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。由于CDN节点服务器按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体 处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图4,为本发明实施例提供的又一种流媒体处理方法的流程图;该方法可包括以下步骤S401-步骤S406。
S401,当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息。所述流媒体数据的标识信息可用于唯一标识所述流媒体数据。
S402,根据所述流媒体数据的标识信息,生成流媒体获取请求。
本实施例的步骤S401-步骤S402可以为图3所示实施例的步骤S301的具体细化步骤。
S403,向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所请求的流媒体数据并存储至分发缓冲区。
S404,接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体数据。
本实施例的步骤S403-步骤S404可以参见图3所示实施例的步骤S302-步骤S303,在此不赘述。
S405,将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区。
所述播放缓冲区指预先设置的、用于存储即将播放的流媒体数据的区域;所述播放缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否能够流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可设定所述播放缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。本步骤中,将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区。
S406,从所述播放缓冲区读取所述流媒体数据进行播放。
本步骤从所述播放缓冲区读取所述流媒体数据进行播放,可克服播放码率抖动,有效地减少流媒体播放时延,提升流媒体播放的流畅性。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流 媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图5,为本发明实施例提供的又一种流媒体处理方法的流程图;该方法可包括以下步骤S501-步骤S507。
S501,当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息。
S502,根据所述流媒体数据的标识信息,生成流媒体获取请求。
S503,向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所请求的流媒体数据并存储至分发缓冲区。
S504,接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体数据。
S505,将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区。
本实施例的步骤S501-步骤S505可参见图4所示实施例的步骤S401-步骤S405,在此不赘述。
S506,检测所述播放缓冲区的空余率是否小于预设阈值;若检测结果为是,转入步骤S507;否则,重复步骤S506。
所述播放缓冲区的空余率指所述播放缓冲区中可用存储空间大小占所述播放缓冲区的总存储空间大小的比例。所述预设阈值可根据实际需要进行设定,例如:可依据流媒体数据是否能够流畅播放进行设定,诸如所述预设阈值可设定为20%、10%等等。本步骤中,若所述播放缓冲区的空余率小于预设阈值,表明所述播放缓冲区内已存储的流媒体数据能够克服播放码率抖动,有效地减少播放时延,保证播放流畅度,则可转入步骤S507。若所述播放缓冲区的空余率大于或等于预设阈值,表明所述播放缓冲区内已存储的流媒体数据不足以克服播放码率抖动,需要等待较长的播放时延,无法保证播放流畅度,可重复执行步骤S506。
S507,从所述播放缓冲区读取所述流媒体数据进行播放。
本实施例的步骤S507可参见图4所示实施例的步骤S406,在此不赘述。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体 播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
下面将结合附图6-附图8,对本发明实施例提供的流媒体处理装置进行详细介绍。需要说明的是,图6-图8所示的流媒体处理装置可位于CDN节点服务器中,用于执行图1-图2所示方法。
请参见图6,为本发明实施例提供的一种流媒体处理装置的结构示意图;该装置可包括:拉取模块101、存储模块102和推送模块103。
拉取模块101,用于根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
流媒体指采用流式传输、且能在网络播放的媒体格式。其中,流式传输的过程可包括:将待传输的流媒体数据按照播放时间顺序分解为多个数据包,每个数据包对应一个序号,按照序号依次将各数据包进行传输,以保证接收端能够根据序号对所述流媒体数据进行连续输出。流媒体数据可包括但不限于:音频数据、视频数据和多媒体文件数据。所述拉取模块101可根据客户端的流媒体获取请求,拉取所请求的流媒体数据。
存储模块102,用于将拉取的所述流媒体数据存储至分发缓冲区。
所述分发缓冲区指预先设置的、用于存储即将向客户端推送的流媒体数据的区域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。当拉取到所请求的流媒体数据,所述存储模块102将拉取的流媒体数据存储至所述分发缓冲区。
推送模块103,用于按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。
所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲区内的流媒体数据的读取时长进行设定,等等。其中,所述 设定速率优选为一恒定的速率,例如:所述设定速率为一恒定的速率v,所述推送模块103以该恒定的速率v匀速将所述分发缓冲区内的所述流媒体数据推送至所述客户端。实际应用中,推送的流媒体数据的数据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。所述推送模块103按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图7,为图6所示的拉取模块的实施例的结构示意图;该拉取模块101可包括:请求接收单元1101和数据拉取单元1102。
请求接收单元1101,用于接收客户端发送的流媒体获取请求,所述流媒体获取请求中携带所请求的流媒体数据的标识信息。所述流媒体数据的标识信息可用于唯一标识所述流媒体数据。
数据拉取单元1102,用于根据所请求的流媒体数据的标识信息,从流媒体服务器中拉取所请求的流媒体数据。
在本实施例的一种可行的实施方式中,所述数据拉取单元1102可以实时从流媒体服务器中拉取所请求的流媒体数据,所述存储模块102则可将该拉取的流媒体数据实时存储至所述分发缓冲区中;在本发明实施例的另一种可行的实施方式中,所述数据拉取单元1102可以从流媒体服务器中下载所请求的完整的流媒体数据并存储于本地内存空间中,所述存储模块102则可从本地内存空间中实时获取所述流媒体数据存储至所述分发缓冲区。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区, 采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图8,为图6所示的推送模块的实施例的结构示意图;该推送模块103可包括:数据读取单元1301和数据推送单元1302。
数据读取单元1301,用于按照设定速率从所述分发缓冲区内读取所述流媒体数据。
所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率,例如:所述设定速率为一恒定的速率v,所述数据读取单元1301以该恒定的速率v匀速从所述分发缓冲区读取所述流媒体数据。
数据推送单元1302,用于将读取的所述流媒体数据以所述设定速率推送至所述客户端。
所述数据推送单元1302以所述设定速率将读取的所述流媒体数据推送至所述客户端,按照本实施例所示例子,所述数据推送单元1302可以一恒定的速率v将读取的所述流媒体数据推送至所述客户端。实际应用中,推送的流媒体数据的数据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。所述数据推送单元1302按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流 媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
本发明实施例还公开了一种CDN节点服务器,该CDN节点服务器可以为CDN系统中的任一个节点服务器,该CDN节点服务器可包含一个流媒体处理装置,该流媒体处理装置的结构和功能可参见图6-图8所示实施例的相关描述,在此不赘述。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
下面将结合附图9-附图11,对本发明实施例提供的客户端进行详细介绍。该客户端可以为接入CDN系统中的任一客户端,可包括但不限于:即时通信客户端、浏览器客户端、SNS客户端等等。需要说明的是,图9-图11所示的客户端可运行于终端中,用于执行图3-图5所示方法,其中终端可以包括但不限于:笔记本电脑、手机、PAD、智能可穿戴设备等等。
请参见图9,为本发明实施例提供的一种客户端的结构示意图;该客户端可包括:请求生成模块201、请求模块202和接收模块203。
请求生成模块201,用于当接收到流媒体播放请求时,生成流媒体获取请求。
用户欲使用客户端的流媒体服务时,可向客户端发起流媒体播放请求,例如:用户可在浏览器客户端的地址栏输入欲观看的视频地址,向浏览器客户端发送流媒体播放请求。所述请求生成模块201在接收到流媒体播放请求时,生成流媒体获取请求;所述流媒体获取请求用于向CDN节点服务器请求获取用户所请求播放的流媒体数据。
请求模块202,用于向CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所请求的流媒体数据并存储至分发缓冲区。
所述分发缓冲区指所述CDN节点服务器预先设置的、用于存储即将向客户 端推送的流媒体数据的区域;所述分发缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可设定所述分发缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。
接收模块203,用于接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体数据。
所述设定速率可以根据实际需要进行设定,例如:可依据CDN系统的出口带宽的实际输出需求进行设定,或者,可依据所述分发缓冲区的存储空间大小及对所述分发缓冲区内的流媒体数据的读取时长进行设定,等等。其中,所述设定速率优选为一恒定的速率,例如:所述设定速率为一恒定的速率v,所述接收模块203接收CDN节点服务器以该恒定的速率v匀速所推送的所述分发缓冲区内的所述流媒体数据。实际应用中,推送的流媒体数据的数据流量大小与该推送的流媒体数据的输出码率相关,推送的流媒体数据的输出码率的峰值直接影响CDN系统的出口带宽。具体地,推送的流媒体数据的数据流量越大,所推送的流媒体数据的输出码率波动越大、峰值越高,从而使得CDN系统的出口带宽越高。由于CDN节点服务器按照设定速率向所述客户端推送流媒体数据,可保证推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图10,为本发明实施例提供的另一种客户端的结构示意图;该客户端可包括:请求生成模块201、请求模块202和接收模块203,可选地,该客户端还包括:存储模块204和播放模块205。其中,请求生成模块201、请求模块202和接收模块203的结构和功能可参见图9所示实施例的相关描述,在此不赘述。
存储模块204,用于将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区。
所述播放缓冲区指预先设置的、用于存储即将播放的流媒体数据的区域;所述播放缓冲区的存储空间大小可以根据实际需要进行设定,例如:可依据流媒体数据是否能够流畅播放进行设定,假设缓冲存储30s的数据流量即可保证流媒体数据的流畅播放,则可设定所述播放缓冲区的存储空间大小大于等于30s时长的流媒体数据的数据流量大小。所述存储模块204将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区。
播放模块205,用于从所述播放缓冲区中读取所述流媒体数据进行播放。
所述播放模块205从所述播放缓冲区读取所述流媒体数据进行播放,可克服播放码率抖动,有效地减少流媒体播放时延,提升流媒体播放的流畅性。
进一步可选地,所述客户端还包括:
检测模块206,用于检测所述播放缓冲区的空余率是否小于预设阈值,若所述播放缓冲区的空余率小于预设阈值,通知所述播放模块205从所述播放缓冲区中读取所述流媒体数据进行播放。
所述播放缓冲区的空余率指所述播放缓冲区中可用存储空间大小占所述播放缓冲区的总存储空间大小的比例。所述预设阈值可根据实际需要进行设定,例如:可依据流媒体数据是否能够流畅播放进行设定,诸如所述预设阈值可设定为20%、10%等等。若所述播放缓冲区的空余率小于预设阈值,表明所述播放缓冲区内已存储的流媒体数据能够克服播放码率抖动,有效地减少播放时延,保证播放流畅度。若所述播放缓冲区的空余率大于或等于预设阈值,表明所述播放缓冲区内已存储的流媒体数据不足以克服播放码率抖动,需要等待较长的播放时延,无法保证播放流畅度。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图11,为本发明实施例提供的一种请求生成模块的结构示意图;该请求生成模块201可包括:标识获取单元2101和请求生成单元2102。
标识获取单元2101,用于当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息。所述流媒体数据的标识信息可用于唯一标识所述流媒体数据。
请求生成单元2102,用于根据所述流媒体数据的标识信息,生成流媒体获取请求。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
本发明实施例还公开了一种终端,该终端可以包括但不限于:笔记本电脑、手机、PAD、智能可穿戴设备等等。该终端可包括一客户端,该客户端的结构和功能可参见图9-图11所示实施例的相关描述,在此不赘述。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图12,为本发明实施例提供的一种CDN节点服务器的结构示意图;本发明实施例的CDN节点服务器包括:至少一个处理器301,例如CPU,至少一个通信总线302,至少一个网络接口303,存储器304。其中,通信总线302用于实现这些组件之间的连接通信。其中,所述网络接口303可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。所述存储器304可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例 如至少一个磁盘存储器。所述存储器304可选的还可以是至少一个位于远离前述处理器301的存储装置。如图12所示,作为一种计算机存储介质的存储器304中存储有操作系统、网络通信模块,并存储有用于进行流媒体处理的程序以及其他程序。
其中具体的,所述处理器301可以用于调用所述存储器304中存储的用于进行流媒体处理的程序,执行以下步骤:
根据客户端的流媒体获取请求,拉取所请求的流媒体数据;
将拉取的所述流媒体数据存储至分发缓冲区;
按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端。
进一步,所述处理器301在执行所述根据客户端的流媒体获取请求,拉取所请求的流媒体数据的步骤时,具体执行以下步骤:
接收客户端发送的流媒体获取请求,所述流媒体获取请求中携带所请求的流媒体数据的标识信息;
根据所请求的流媒体数据的标识信息,从流媒体服务器中拉取所请求的流媒体数据。
进一步,所述处理器301在执行所述按照设定速率将所述分发缓冲区内的所述流媒体数据推送至所述客户端的步骤时,具体执行以下步骤:
按照设定速率从所述分发缓冲区内读取所述流媒体数据;
将读取的所述流媒体数据以所述设定速率推送至所述客户端。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
请参见图13,为本发明实施例提供的一种终端的结构示意图;本发明实施例的终端包括:至少一个处理器401,例如CPU,至少一个通信总线402,至少一个网络接口403,存储器404。其中,通信总线402用于实现这些组件之间的连接通信。其中,所述网络接口403可选的可以包括标准的有线接口、无线接 口(如WI-FI、移动通信接口等)。所述存储器404可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。所述存储器404可选的还可以是至少一个位于远离前述处理器401的存储装置。如图13所示,作为一种计算机存储介质的存储器404中存储有操作系统、网络通信模块,并存储有用于进行流媒体处理的程序以及其他程序。
其中具体的,所述处理器401可以用于调用所述存储器404中存储的用于进行流媒体处理的程序,执行以下步骤:
当接收到流媒体播放请求时,生成流媒体获取请求;
向内容分发网络CDN节点服务器发送所述流媒体获取请求,以使所述节点服务器拉取所请求的流媒体数据并存储至分发缓冲区;
接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体数据。
进一步,所述处理器401在执行所述当接收到流媒体播放请求时,生成流媒体获取请求的步骤时,具体执行以下步骤:
当接收到流媒体播放请求时,获取所请求的流媒体数据的标识信息;
根据所述流媒体数据的标识信息,生成流媒体获取请求。
进一步,所述处理器401在执行所述接收所述CDN节点服务器按照设定速率推送的所述分发缓冲区内的所述流媒体数据的步骤之后,还执行以下步骤:
将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区;
从所述播放缓冲区读取所述流媒体数据进行播放。
进一步,所述处理器401在执行所述将接收到的所述CDN节点服务器推送的所述流媒体数据存储至播放缓冲区的步骤之后,在执行从所述播放缓冲区读取所述流媒体数据进行播放的步骤之前,还执行以下步骤:
检测所述播放缓冲区的空余率是否小于预设阈值;
若所述播放缓冲区的空余率小于预设阈值,则执行从所述播放缓冲区中读取所述流媒体数据进行播放的步骤。
本发明实施例中,可拉取客户端所请求的流媒体数据并存储至分发缓冲区,采用分发缓冲区的方式进行数据的存储,可减少流媒体播放时延,保证流媒体播放质量;另外,本发明实施例按照设定速率将分发缓冲区内的流媒体数据向所述客户端推送,使得推送的流媒体数据的数据流量保持稳定,使所推送的流 媒体数据的输出码率保持稳定,从而降低CDN系统的出口带宽,降低了流媒体处理的运营成本,同时提升了流媒体处理的灵活性和智能性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。