CN117560531B - 一种带宽探测方法、装置、电子设备及存储介质 - Google Patents

一种带宽探测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117560531B
CN117560531B CN202410048164.5A CN202410048164A CN117560531B CN 117560531 B CN117560531 B CN 117560531B CN 202410048164 A CN202410048164 A CN 202410048164A CN 117560531 B CN117560531 B CN 117560531B
Authority
CN
China
Prior art keywords
bandwidth
value
detection
bandwidth value
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410048164.5A
Other languages
English (en)
Other versions
CN117560531A (zh
Inventor
于一丁
陈颖
杨宽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taobao China Software Co Ltd
Original Assignee
Taobao China Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taobao China Software Co Ltd filed Critical Taobao China Software Co Ltd
Priority to CN202410048164.5A priority Critical patent/CN117560531B/zh
Publication of CN117560531A publication Critical patent/CN117560531A/zh
Application granted granted Critical
Publication of CN117560531B publication Critical patent/CN117560531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2181Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种带宽探测方法、装置、电子设备及存储介质。所述方法包括:获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率;根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值;根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。通过该带宽探测方法能够快速、准确地获得当前网络带宽预测值。

Description

一种带宽探测方法、装置、电子设备及存储介质
技术领域
本申请涉及网络传输技术领域,具体涉及一种带宽探测方法。本申请同时涉及一种带宽探测装置、电子设备及存储介质。
背景技术
在网络直播场景中,由于观看直播的用户所处环境复杂多样,导致用户使用的网络状态千变万化,因此需要根据用户的网络状态自适应调整用户的拉流码率。网络直播系统的码率自适应算法会根据当前网络带宽预测值、当前播放器缓存区的大小、不同档位流的实时码率等动态决策合适的拉流码率,以便在不同网络状态下为用户提供不同码率的直播流,从而达到画质与流畅度的综合体验俱佳的效果。
当前网络带宽预测值作为码率自适应算法的重要输入信息,可通过对网络带宽进行探测或估计而获得,但通过现有的带宽探测或估计方法获得的当前网络带宽预测值通常很不准确,导致码率决策不佳,在用户网络状态变化较大的场景下难以提供较好的观看体验。
发明内容
本申请提供一种带宽探测方法,以解决通过现有方法获得当前网络带宽预测值不准确的问题。本申请另外提供一种带宽探测装置、电子设备及存储介质。
本申请提供一种带宽探测方法,包括:获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率;根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值;根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
可选地,所述获得所述多个档位流中针对目标用户的当前播放流的码率,包括:获得针对所述目标用户的当前播放流的标识;在所述多个档位流的码率中,获得所述当前播放流的标识所对应的码率,作为当前播放流的码率。
可选地,还包括:获得当前网络带宽预测值;所述将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率,包括:如果所述当前播放流的码率与所述当前网络带宽预测值的比值小于预设阈值,则将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率。
可选地,大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率,通过以下步骤确定:获得所述大于所述当前播放流的码率的待选探测带宽值之和,作为待选探测带宽值之和;将所述大于所述当前播放流的码率的待选探测带宽值按照从小到大的顺序排列,获得正序队列,并将所述大于所述当前播放流的码率的待选探测带宽值按照从大到小的顺序排列,获得倒序队列;针对所述大于所述当前播放流的码率的待选探测带宽值中的任一待选探测带宽值,获得所述倒序队列中与所述任一待选探测带宽值在所述正序队列中的位置相同的待选探测带宽值,作为所述任一待选探测带宽值对应的待选探测带宽值;获得所述任一待选探测带宽值对应的待选探测带宽值与所述待选探测带宽值之和的比值,作为所述任一待选探测带宽值被选为目标探测带宽值的概率。
可选地,确定小于等于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率为0。
可选地,所述根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值,包括:根据各个待选探测带宽值被选为目标探测带宽值的概率,采用不等概率抽样的方法抽取待选探测带宽值,作为目标探测带宽值。
可选地,还包括:根据所述目标探测带宽值,确定目标探测周期;所述根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,包括:在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
可选地,大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值时所对应的目标探测周期,通过以下步骤确定:确定所述大于所述当前播放流的码率的待选探测带宽值中的最大待选探测带宽值所对应的探测周期;获得所述目标探测带宽值与所述最大待选探测带宽值的比值,作为探测带宽值比值;获得所述探测带宽值比值与所述最大待选探测带宽值所对应的探测周期之积,作为所述目标探测周期。
可选地,还包括:获得对所述目标用户的网络带宽进行探测过程中的数据接收速率;如果所述数据接收速率等于所述目标探测带宽值,则将当前网络带宽预测值更新为所述目标探测带宽值。
可选地,还包括:如果所述当前播放流的码率与所述当前网络带宽预测值的比值大于等于所述预设阈值,则采用带宽估计的方法对所述当前网络带宽预测值进行更新。
可选地,所述获得多个档位流的码率,包括:接收多个档位流,并实时统计所述多个档位流中每个档位流的平均码率,获得所述多个档位流的码率。
可选地,所述方法应用于服务端,所述服务端用于将从推流端获得的直播流发送至所述目标用户对应的拉流端;所述方法还包括:所述服务端将对所述目标用户的网络带宽进行探测后更新的当前网络带宽预测值发送至所述拉流端;所述服务端获得所述拉流端根据更新的当前网络带宽预测值生成的码率档位更新请求;所述服务端根据所述码率档位更新请求,向所述拉流端发送更新码率档位后的直播流。
可选地,所述方法应用于所述目标用户对应的拉流端,所述拉流端用于接收服务端从推流端获得的直播流;所述根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,包括:所述拉流端将所述目标探测带宽值发送至服务端,以使所述服务端根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
本申请还提供一种带宽探测方法,包括:获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,确定目标探测带宽值;根据所述目标探测带宽值,确定目标探测周期;在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
可选地,大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值时所对应的目标探测周期,通过以下步骤确定:确定所述大于所述当前播放流的码率的待选探测带宽值中的最大待选探测带宽值所对应的探测周期;获得所述目标探测带宽值与所述最大待选探测带宽值的比值,作为探测带宽值比值;获得所述探测带宽值比值与所述最大待选探测带宽值所对应的探测周期之积,作为所述目标探测周期。
可选地,还包括:获得当前网络带宽预测值;所述将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,获得目标探测带宽值,包括:如果所述当前播放流的码率与所述当前网络带宽预测值的比值小于预设阈值,则将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,获得目标探测带宽值。
本申请还提供一种带宽探测装置,包括:第一确定单元,用于获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率;根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值;第一探测单元,用于根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
本申请还提供一种带宽探测装置,包括:第二确定单元,用于获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,确定目标探测带宽值;根据所述目标探测带宽值,确定目标探测周期;第二探测单元,用于在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
本申请还提供一种电子设备,包括处理器和存储器;所述存储器用于存储程序和数据,所述处理器调用存储器存储的程序,以执行上述带宽探测方法。
本申请还提供一种存储介质,所述存储介质存储有程序和数据,所述程序被处理器执行,用于实现上述带宽探测方法。
与现有技术相比,本申请具有以下优点:
本申请提供的带宽探测方法,通过获得多个档位流的码率,将所述多个档位流的码率作为待选探测带宽值,从中确定目标探测带宽值,以便按需探测,快速、准确地获得当前网络带宽预测值。其中,大于当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关,可避免目标探测带宽值设置不合理导致的流量成本浪费,还可以避免以此获得的当前网络带宽预测值变化过大,使得直播流的码率档位切换过大,造成画质跳跃,影响用户的观看体验。
附图说明
图1-a是本申请提供的网络直播系统的示意图。
图1是本申请提供的网络直播系统的工作流程图。
图2是本申请提供的网络直播系统工作流程中部分步骤的具体实施流程图。
图3是本申请提供的网络直播系统通过拉流端实现带宽探测的流程图。
图4是本申请第一实施例提供的带宽探测方法的流程图。
图5是本申请第二实施例提供的带宽探测方法的流程图。
图6是本申请第三实施例提供的带宽探测方法的流程图。
图7是本申请第四实施例提供的带宽探测装置的示意图。
图8是本申请第五实施例提供的带宽探测装置的示意图。
图9是本申请第六实施例提供的电子设备的示意图。
具体实施方式
为使本申请的目的、优点和特征更加清楚,以下结合附图和具体实施方式对本申请作进一步详细说明。在下面的描述中,阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施方式的限制。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性,以及特定的顺序或先后次序。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,术语“多个”是指两个或两个以上。术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。术语“包括”和“具有”以及他们的任何变形,旨在覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有的网络直播系统一般包括提供多路直播流的推流端、负责多路直播流分发的CDN服务器、以及负责用户观看直播的拉流端。
推流端(或称为转码服务器)负责将多路直播流采集起来,并对其进行转码、合并、加密等一系列处理后输出到CDN服务器上。
CDN(Content Delivery Network)服务器,即内容分发网络服务器,负责接收由推流端传来的多路直播流,并将其分发到不同的拉流端。由于CDN服务器的分布广泛,它们可以快速地将直播流传输给不同地区的用户。
拉流端则是用户用来观看直播的应用程序或设备,它们可以从CDN服务器获取多路直播流,并显示在屏幕上供用户观看。
推流端通常会将针对同一直播内容的不同码率档位的直播流都发送给CDN服务器,以适应不同网络条件和用户设备。CDN服务器会根据用户的网络状态和设备能力,选择适合的码率档位的直播流进行分发和播放。如果用户的网络带宽较高,CDN服务器可以选择高码率档位的直播流,以提供更高质量的画质。相反,如果用户的网络带宽有限,CDN服务器可以选择较低码率档位的直播流,以确保流畅的播放。
在网络直播场景中,由于观看直播的用户所处环境复杂多样,导致用户使用的网络状态千变万化,因此需要根据用户的网络状态自适应调整用户的拉流码率。拉流码率是指通过网络实时获取视频或音频内容的数据传输速率,一般以每秒传输多少位(bps)来衡量。它是衡量网络直播质量的一个重要指标,直接影响到用户的观看体验。在进行网络直播时,通常需要将原始音视频编码成不同码率的多个版本,以便适应不同的网络环境和终端设备。对于带宽较低的用户,可以选择低码率的版本以保证流畅性;而对于带宽较高的用户,则可以提供高码率的版本以获得更好的画质。拉流码率的大小受到网络带宽、服务器配置、播放器能力等多种因素的影响,需要根据实际情况进行调整和优化。一般来说,拉流码率越高,画面质量和音质越好,但同时也会占用更多的网络资源。因此,在实际应用中需要综合考虑各方面因素,选择合适的拉流码率。
网络直播系统的码率自适应算法一般会根据当前网络带宽预测值、当前播放器缓存区的大小、不同档位流的实时码率等动态决策合适的拉流码率,以便在不同网络状态下为用户提供不同码率的直播流,从而达到画质与流畅度的综合体验俱佳的效果。
当前网络带宽预测值是指当前对网络带宽的传输速度的一种估计或预测,当前网络带宽预测值作为码率自适应算法的重要输入信息,可通过对网络带宽进行探测或估计而获得。如果不能够很好地预测出可用带宽,就有可能引起数据超发,导致发送数据量大于实际网络的承受能力,继而引起视频画面的延时和卡顿;也有可能预测的带宽太低,导致发送的数据量远低于实际网络的承受能力,不能很好地利用网络带宽,最终导致视频画质不清晰。
目前,网络带宽预测值一般可以通过以下方法获得:
一种是基于延时和丢包的被动带宽估计GCC算法。GCC(Google CongestionControl)是一种用于实时媒体通讯的网络拥塞控制算法,它的目的是在高延迟、丢包率较高的网络状态下,通过动态调整传输速率来避免网络拥塞的发生,从而保证音频和视频数据的流畅传输。该算法在网络质量较差时能够迅速响应并降低网络带宽预测值,但是在网络持续变好时,并不能迅速提高网络带宽预测值。
另一种是主动探测probe算法,该算法是通过在短时间内以指定的目标探测带宽值向网络发送数据,观测短时间内的数据接收速率,并以此快速估算网络可用带宽,从而确定网络带宽预测值。
实际应用中,在实时音视频通话或者会议等信源码率受控的场景下,音视频编码器输出速率一般与网络带宽预测值相等,GCC算法可以准确地估计网络带宽。而在信源码率不受控的场景下,编码器输出速率远低于网络带宽预测值,GCC算法对网络带宽的估计往往不准确,此时WebRTC(Web Real-Time Communications,谷歌的开源音视频项目)会检测到ALR(application-limited region,应用受限区域,指信源产生的速率小于网络带宽)状态,并在ALR状态下开启周期性的probe主动探测。
在ALR状态下,信源码率比较低,为了探测更高的目标探测带宽值,主动探测过程中往往会加入一些padding数据(在进行带宽探测时,补充发送的空白数据),这样就会造成较多的流量浪费,增加整个网络直播系统的流量成本开销。同时,在ALR状态下进行周期性的主动探测,如果探测周期过小,则会经常发送padding数据,造成更多的流量成本开销,而探测周期设置过大,又会造成对网络状态响应不及时,无法在网络状态发生变化时快速地进行码率调整。
此外,现有技术中,网络带宽预测值还可以通过以下方法获得:
在拉流端下载媒体数据的同时,采用固定时间采点的模式进行网络状态收集,即每隔一个固定时间T(ms,毫秒),统计该时间段实际下载的数据量S(Bytes,字节),从而得到一个带宽采样点B(kbps,千比特率)=,一般地,T = 500ms。基于这些带宽采样点,通过滤波和预测算法,估计网络的真实带宽,从而确定网络带宽预测值。
该方法仅依赖拉流端应用层的下载速率估计网络带宽,为了快速响应网络带宽变化采用较小的采样周期500ms。但是由于应用层下载数据采用帧级别的统计,在500ms周期内采样点仍具有带有较大的噪声,对滤波算法也有较高的要求,并且很难预测网络状态的变化趋势。此外,在拉流端估计网络带宽,无法快速感知CDN服务器的实际发送速率,具有一定的滞后性。
综上,在网络直播系统中,通过现有的带宽探测或估计方法获得的当前网络带宽预测值通常很不准确,导致码率决策不佳,在用户网络状态变化较大的场景下难以提供较好的观看体验。
为解决上述问题,本申请提供一种带宽探测方法,通过获得多个档位流的码率,将所述多个档位流的码率作为待选探测带宽值,从中确定目标探测带宽值,以此对网络带宽进行探测,从而快速、准确地确定当前网络带宽预测值,并且降低带宽探测过程中的流量成本,为直播观看用户提供较好的观看体验。
下面针对网络直播系统的应用场景,对本申请提供的带宽探测方法进行介绍。如图1-a所示,网络直播系统包括推流端101、CDN服务器102和拉流端103。推流端101负责采集实时的音视频原数据,并进行编码、封装,获得不同码率的直播流,将不同码率的直播流发送给CDN服务器102。CDN服务器102接收不同码率的直播流,并将其中一种码率的直播流发送给拉流端103。拉流端103接收并播放直播流。可以理解的是,不同的服务平台可以对应各自的网络直播系统,对于任一服务平台对应的网络直播系统,还可以包括多个推流端、CDN服务器和拉流端。本申请主要针对任一拉流端播放直播流时所使用的网络进行带宽探测的方法进行说明。
例如,某一用户使用手机登陆某服务平台的应用程序观看某一直播节目时,该直播节目的推流端正在不断地向CDN服务器发送针对该直播节目的不同码率的直播流,即不同码率档位的直播流。不同码率档位的直播流的画质清晰度不同,如高码率档位的直播流对应1080p画质,中等码率档位的直播流对应720p画质、低码率档位的直播流对应480p画质等,p表示视频格式。如果用户当前观看的是中等码率档位的直播流,也就是说,当前CDN服务器将接收到的多个码率档位的直播流中的中等码率档位的直播流不断地发送至该用户使用的拉流端。该直播节目的推流端、CDN服务器、该用户使用的拉流端都属于该服务平台对应的网络直播系统的一部分。该服务平台对应的网络直播系统可以采用本申请提供的方法,对CDN服务器与该用户使用的拉流端之间的传输网络的当前带宽进行探测,获得当前网络带宽预测值,从而动态地调整直播流的码率档位,在保证用户观看流畅的前提下,确保用户观看的画质较好。
如图1所示,应用本申请提供的带宽探测方法的网络直播系统的工作流程如下:
S101,推流端向CDN服务器发送多个不同码率档位的直播流;
S102,CDN服务器实时统计各个档位流的平均码率;
S103,CDN服务器基于带宽探测或带宽估计更新当前网络带宽预测值;
S104,CDN服务器将更新的当前网络带宽预测值通知给拉流端;
S105,拉流端使用码率自适应算法决策选择哪一码率档位的直播流;
S106,拉流端向CDN服务器发送停止原流、拉目标流的请求;
S107,CDN服务器响应拉流端的请求,向拉流端发送目标流。
在确定当前网络带宽预测值时,可采用带宽探测或带宽估计的方法。带宽探测是指通过发送一系列探测包到网络中,然后观察这些探测包的传播时间和丢包率等信息,进而评估出网络中的实际可用带宽的一种技术手段。而带宽估计则是指通过分析网络数据包的传播时间、是否丢包等等,来估计网络中所能提供的最大可用带宽的一种技术手段。
上述工作流程中,步骤S102、S103具体通过以下步骤实现,如图2所示:
S201,CDN服务器获得多个档位流的码率、当前播放流的标识以及当前网络带宽预测值。
具体地,CDN服务器接收多个档位流,并实时统计各个档位流的平均码率,即实时统计单位时间窗口内(每秒或每500ms或每250ms,本申请对单位时间窗口的具体取值不做限定)各个档位流的数据量大小(单位:bits,位),然后计算各个档位流的平均码率(单位:bps=bits per second,比特率),获得多个档位流的码率。
CDN服务器获得针对目标用户的当前播放流的标识,如当前播放流的ID,并从多个档位流的码率中,获得当前播放流的标识所对应的码率,作为当前播放流的码率。
CDN服务器获得当前网络带宽预测值,即在本轮带宽探测或带宽估计前获得的网络带宽预测值。
S202,判断当前网络使用状态是否为ALR状态。
如果当前播放流的码率当前网络带宽预测值,则确定当前网络使用状态为ALR状态,即网络带宽利用率不足。其中,/>为与ALR状态相关的超参数,默认设置为0.8。如果当前播放流的码率/>当前网络带宽预测值,则确定当前网络使用状态不为ALR状态。
S203,如果当前网络使用状态为ALR状态,则根据多个档位流的码率,确定目标探测带宽值。
由于ALR状态下,当前播放流的码率低于当前网络带宽预测值,需要探测更高的网络带宽值,以使码率自适应算法可以决策更高码率档位的直播流。
将多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率,其中,确定大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关,确定小于等于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率为0。
具体可根据以下步骤确定各个待选探测带宽值被选为目标探测带宽值的概率:
若作为待选探测带宽值的多个档位流的码率分别为、/>、…、/>,其中,,/>表示码率档位数量,/>表示当前播放流的码率,/>表示当前播放流的码率档位,/>
则待选探测带宽值被选为目标探测带宽值的概率/>为:
其中,、…、/>
上式表示,由于当前网络使用状态为ALR状态,需要选择探测更高的网络带宽值,因而选择(/>)的概率为0,即小于等于当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率为0。对于/>(/>),即大于当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与待选探测带宽值的大小负相关,也就是说,待选探测带宽值越大,被选中的概率越小,目的是为了避免探测带宽过大引起网络拥塞,同时避免原流和目标流档位差异太大造成画质跳变,影响用户的观看体验。
在确定各个待选探测带宽值被选为目标探测带宽值的概率后,可以采用不等概率抽样的方法抽取待选探测带宽值,作为目标探测带宽值。
S204,根据目标探测带宽值,确定目标探测周期。
其中,确定大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值时所对应的目标探测周期与所述待选探测带宽值的大小正相关。
具体可根据以下步骤确定目标探测周期:
若作为待选探测带宽值的多个档位流的码率分别为、/>、…、/>,其中,,/>表示码率档位数量,/>表示当前播放流的码率,/>表示当前播放流的码率档位,/>
确定多个档位流的码率中的最大码率所对应的探测周期/>,可以设置/>
则目标探测带宽值对应的目标探测周期/>为:
上式表示,由于当前网络使用状态为ALR状态,需要选择探测更高的网络带宽值,因而选择(/>)为目标探测带宽值时所对应的目标探测周期为/>,表示不探测更小的网络带宽值。选择/>(/>)为目标探测带宽值时,即大于当前播放流的码率的待选探测带宽值被选为目标探测带宽值所对应的目标探测周期与所述待选探测带宽值的大小正相关,也就是说,目标探测带宽值越大,目标探测周期越大,目的是为了避免探测带宽过程中发送padding数据造成的流量成本过大。
S205,根据目标探测带宽值和目标探测周期,对网络带宽进行主动探测。
在目标探测周期到达时,CDN服务器按照目标探测带宽值发送数据,通过计算数据接收速率大小判断当前网络带宽是否达到目标探测带宽值,从而确定当前网络带宽预测值。
S206,如果当前网络使用状态不为ALR状态,则采用带宽估计方法对网络带宽进行预测。
具体可以采用GCC算法或BBR(Bottleneck Bandwidth and Round-trippropagation time,一种用于拥塞控制的算法)算法对网络带宽进行估计。
S207,更新当前网络带宽预测值。
根据目标探测带宽值和目标探测周期对网络带宽进行主动探测时,如果数据接收速率等于目标探测带宽值,则说明当前网络带宽大于等于目标探测带宽值,因此将当前网络带宽预测值更新为目标探测带宽值。如果数据接收速率小于目标探测带宽值,则说明当前网络带宽小于目标探测带宽值,将当前网络带宽预测值更新为数据接收速率。
采用带宽估计方法对网络带宽进行预测后,将当前网络带宽预测值更新为估计的网络带宽值。
通过上述步骤可以看出,根据多个档位流的码率确定目标探测带宽值,对网络带宽按需探测,可获得较为准确的当前网络带宽预测值,这里的准确并不是指当前网络带宽预测值等于实际网络带宽值,而是指当前网络带宽预测值满足所需网络带宽值。此外,根据多个档位流的码率确定目标探测带宽值,能够避免目标探测带宽值设置不合理导致的流量成本浪费,同时避免引起过大的档位切换而造成画质跳跃,影响用户的观看体验。目标探测周期与不同档位流的码率大小正相关,高码率档位对应的目标探测周期大,低码率档位对应的目标探测周期小,可以灵活调整探测带宽造成的流量成本开销。本申请涉及基于包级别的主动带宽探测,网络带宽探测准确性与及时性更高,更容易在用户网络带宽波动场景下提供更顺畅的码率自适应体验。
在某些情况下,CDN服务器的算法逻辑更新迭代周期慢或者CDN厂商不支持修改CDN算法逻辑,则可以在拉流端实现本申请提供的带宽探测方法中关于确定目标探测带宽值和目标探测周期的步骤,再由CDN服务器根据目标探测带宽值和目标探测周期对网络带宽进行探测。如图3所示,具体流程如下:
S301,拉流端获得多个档位流的码率、当前播放流的标识以及当前网络带宽预测值;
S302,拉流端根据多个档位流的码率,确定目标探测带宽值;
S303,拉流端根据目标探测带宽值,确定目标探测周期;
S304,拉流端通知CDN服务器目标探测带宽值以及目标探测周期;
S305,CDN服务器根据目标探测周期和目标探测周期,对网络带宽进行主动探测。
S306,更新当前网络带宽预测值。
通过拉流端确定目标探测带宽值和目标探测周期,再由CDN服务器根据目标探测带宽值和目标探测周期对网络带宽进行主动探测,确定当前网络带宽预测值。其中,拉流端确定目标探测带宽值和目标探测周期的具体内容请参见步骤S201-S204。
以上便是本申请提供的带宽探测方法的应用场景实施例的介绍,下面通过具体的实施例进行详细说明。
第一实施例
本申请第一实施例提供一种带宽探测方法,该方法应用于服务端,如CDN服务器,所述服务端用于将从推流端获得的直播流发送至目标用户对应的拉流端。如图4所示,所述方法包括以下步骤:
S401,获得多个档位流的码率。
首先,服务端获得多个档位流,即针对同一直播内容,由推流端将多个不同码率档位的直播流发送至服务端,包括原始流以及各路转码流,以适应不同网络条件和用户设备。
直播流的码率是指在直播过程中,直播数据传输的速度或比特率,它表示单位时间内(通常以秒为单位)传输的信息量。码率越高,意味着传输的数据越多,理论上可以提供更高的画质,但同时也会增加对网络带宽的需求。
所述服务端接收所述推流端发送的多个档位流,并实时统计多个档位流中每个档位流的平均码率,也就是每个档位流的码率,从而获得多个档位流的码率。
具体地,所述服务端可以通过实时统计单位时间窗口内(每秒或每500ms或每250ms,本申请对单位时间窗口的具体取值不做限定)各个档位流的数据量大小(单位:bits),然后计算各个档位流的平均码率(单位:bps=bits per second),从而获得多个档位流的码率。
S402,获得所述多个档位流中针对目标用户的当前播放流的码率。
服务端将接收到的多个档位流中的一个档位流发送至目标用户对应的拉流端,以供用户观看,当前发送至目标用户对应的拉流端的直播流即为针对目标用户的当前播放流。当前播放流的码率,即目标用户对应的拉流端当前正在播放的直播流的码率。
当前播放流的码率的获取方式较多,例如,根据网络直播协议在反馈数据中携带码率信息,或者通过记录和分析CDN服务器的日志文件来间接地计算出发送的码率信息,或者通过第三方工具和服务帮助监控网络流量和码率,或者通过调用接口直接查询某个直播流的码率信息。
本实施例中,所述当前播放流的码率可以通过以下步骤获得:首先,获得当前播放流的标识,如当前播放流的ID,当前播放流的标识用于区分当前播放流所对应的直播内容以及当前直播流的码率档位。然后,在所述多个档位流的码率中,获得所述当前播放流的标识所对应的码率,即为当前播放流的码率。
S403,将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率。
本实施例中,在根据所述多个档位流的码率,获得目标探测带宽值之前,还需要获得当前网络带宽预测值,根据当前网络带宽预测值和当前播放流的码率,确定当前网络使用状态。
本实施例中,主要针对当前网络使用状态表示当前网络带宽利用率不足的情况,根据多个档位流的码率来确定目标探测带宽值,以探测更高的网络带宽值。当然,也可以针对其他网络使用状态,根据多个档位流的码率来确定目标探测带宽值,达到按需探测的目的。
如果所述当前播放流的码率与所述当前网络带宽预测值的比值小于预设阈值,即当前播放流的码率当前网络带宽预测值,则确定当前网络使用状态为ALR状态,即网络带宽利用率不足。其中,/>为与ALR状态相关的超参数,默认设置为0.8。此时,将所述多个档位流的码率作为待选探测带宽值,获得各个待选探测带宽值被选为目标探测带宽值的概率。
由于ALR状态下,当前播放流的码率低于当前网络带宽预测值,需要探测更高的网络带宽值,因此,从大于当前播放流的码率的待选探测带宽值中确定目标探测带宽值。
确定大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关。具体地,所述大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率,可通过以下步骤确定:获得所述大于所述当前播放流的码率的待选探测带宽值之和,作为待选探测带宽值之和;将所述大于所述当前播放流的码率的待选探测带宽值按照从小到大的顺序排列,获得正序队列,并将所述大于所述当前播放流的码率的待选探测带宽值按照从大到小的顺序排列,获得倒序队列;针对所述大于所述当前播放流的码率的待选探测带宽值中的任一待选探测带宽值,获得所述倒序队列中与所述任一待选探测带宽值在所述正序队列中的位置相同的待选探测带宽值,作为所述任一待选探测带宽值对应的待选探测带宽值;获得所述任一待选探测带宽值对应的待选探测带宽值与所述待选探测带宽值之和的比值,作为所述任一待选探测带宽值被选为目标探测带宽值的概率。
具体实施步骤如下:
若作为待选探测带宽值的多个档位流的码率分别为、/>、…、/>,其中,,/>表示码率档位数量,/>表示所述当前播放流的码率,/>表示当前播放流的码率档位,/>
则大于当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率/>计算如下:
其中,,/>、…、/>
根据上式确定的概率表示大于当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关,也就是说,待选探测带宽值越大,被选中的概率越小,但在实际应用中,每一个大于当前播放流的码率的待选探测带宽值都有一定的概率被选为目标探测带宽值。
确定小于等于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率为0,当然,也可以将小于等于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率设为较小的值,以使小于等于所述当前播放流的码率的待选探测带宽值不会被选为目标探测带宽值。
S404,根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值。
在确定各个待选探测带宽值被选为目标探测带宽值的概率后,可以采用不等概率抽样的方法抽取待选探测带宽值,作为目标探测带宽值。
不等概率抽样是一种随机抽样方法,即总体中的每个单元被选入样本的概率是不同的,这意味着在抽取样本之前,给总体的每一个单元赋予一个特定的被抽中概率,这些概率可以按照各种原则进行分配。不等概率抽样的目的是为了提高抽样效率或精度,尤其是在研究对象具有显著差异的情况下。不等概率抽样分为有放回和不放回两种情况。有放回的不等概率抽样:这种类型的抽样允许同一个单元多次被抽中。最常见的情况是按总体单元的规模大小来确定抽选的概率。不放回的不等概率抽样:在这个过程中,一旦一个单元被抽中,就不能再次被抽中,这样每次抽样后剩余单元的数量和概率都会发生变化。
本实施例中,任一待选探测带宽值被选为目标探测带宽值后,则可根据该目标探测带宽值对网络带宽进行探测,并获得当前网络带宽预测值。
本实施例中,根据目标探测带宽值对网络带宽进行探测,主要采用WebRTC主动探测方法,即在短时间内按照指定的目标探测带宽值发送数据,通过根据数据接收速率大小判断网络带宽是否达到目标探测带宽值。如果数据接收速率等于目标探测带宽值,则网络带宽大于等于目标探测带宽值;如果数据接收速率小于目标探测带宽值,则说明此时网络发生丢包,网络带宽小于目标探测带宽值。
关于主动探测的时机,可以按照固定探测周期进行主动探测,为了避免探测周期设置过小,造成流量成本过大,或者探测周期设置过大,导致对网络状态响应不及时,本申请提供一种可以灵活设置探测周期的方法。
具体地,根据所述目标探测带宽值,确定目标探测周期,其中,确定大于当前播放流的码率的待选探测带宽值被选为目标探测带宽值所对应的目标探测周期与所述待选探测带宽值的大小正相关,也就是说,目标探测带宽值越大,目标探测周期越大,避免探测带宽过程中发送padding数据造成的流量成本过大。
进一步地,目标探测周期可按照以下步骤确定:确定所述大于所述当前播放流的码率的待选探测带宽值中的最大待选探测带宽值所对应的探测周期;获得所述目标探测带宽值与所述最大待选探测带宽值的比值,作为探测带宽值比值;获得所述探测带宽值比值与所述最大待选探测带宽值所对应的探测周期之积,作为所述目标探测周期。
至此,进行主动探测的两个重要信息,即目标探测带宽值和目标探测周期都已确定,即可对网络带宽进行探测。
S405,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行主动探测,并获得对所述目标用户的网络带宽进行探测过程中的数据接收速率。
如果所述数据接收速率等于所述目标探测带宽值,则将当前网络带宽预测值更新为所述目标探测带宽值。如果数据接收速率小于目标探测带宽值,则将当前网络带宽预测值更新为数据接收速率。
进一步地,所述当前网络带宽预测值更新后,所述服务端将对所述目标用户的网络带宽进行探测后更新的当前网络带宽预测值发送至所述拉流端,以便拉流端使用码率自适应算法决策直播流的码率档位。所述服务端获得所述拉流端根据更新的当前网络带宽预测值生成的码率档位更新请求,并根据所述码率档位更新请求,向所述拉流端发送更新码率档位后的直播流,以供拉流端播放。
至此,已详细介绍了在当前网络带宽利用率不足的情况下,将多个档位流的码率作为待选探测带宽值,从中确定目标探测带宽值,并根据目标探测带宽值确定目标探测周期,从而对网络带宽进行探测,确定当前网络带宽预测值的过程。当前网络带宽利用率不足,表明当前播放流的码率档位可以提高,但盲目设置较大的目标探测带宽值,可能在探测过程中造成网络拥塞或用户观看的画质跳变。因此,从多个档位流中确定目标探测带宽值,可达到按需探测的目的,避免流量成本浪费,以此确定的当前网络带宽预测值较为准确,即当前网络带宽预测值满足所需网络带宽值。大于当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与待选探测带宽值的大小负相关,使得与当前播放流的码率相近的待选探测带宽值被选为目标探测带宽值的机会更多,这样在主动探测过程中,可避免网络拥塞或者用户观看的画质跳变。根据目标探测带宽值的不同,确定不同的目标探测周期,可灵活调整探测带宽造成的流量成本开销,避免目标探测带宽值较大时,探测过于频繁导致流量成本过大,同时也可以保证对网络状态的及时响应。
此外,如果所述当前播放流的码率与所述当前网络带宽预测值的比值大于等于预设阈值,即当前播放流的码率当前网络带宽预测值,则确定当前网络使用状态不为ALR状态。此时,可采用GCC或BBR等带宽估计方法对所述当前网络带宽预测值进行更新。
同样地,所述服务端将通过带宽估计方法更新的当前网络带宽预测值发送至所述拉流端,以便拉流端使用码率自适应算法决策直播流的码率档位。所述服务端获得所述拉流端根据更新的当前网络带宽预测值生成的码率档位更新请求,并根据所述码率档位更新请求,向所述拉流端发送更新码率档位后的直播流,以供拉流端播放。
第二实施例
本申请第二实施例提供一种带宽探测方法,该方法应用于服务端,如CDN服务器,所述服务端用于将从推流端获得的直播流发送至所述目标用户对应的拉流端。如图5所示,所述方法包括以下步骤:
S501,获得多个档位流的码率;
S502,获得所述多个档位流中针对目标用户的当前播放流的码率;
S503,将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,确定目标探测带宽值;
S504,根据所述目标探测带宽值,确定目标探测周期;
S505,在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
可选地,大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值时所对应的目标探测周期,通过以下步骤确定:确定所述大于所述当前播放流的码率的待选探测带宽值中的最大待选探测带宽值所对应的探测周期;获得所述目标探测带宽值与所述最大待选探测带宽值的比值,作为探测带宽值比值;获得所述探测带宽值比值与所述最大待选探测带宽值所对应的探测周期之积,作为所述目标探测周期。
可选地,所述方法还包括:获得当前网络带宽预测值;
所述将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,获得目标探测带宽值,包括:如果所述当前播放流的码率与所述当前网络带宽预测值的比值小于预设阈值,则将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,获得目标探测带宽值。
本实施例提供的带宽探测方法,主要是针对目标探测周期提供较为灵活的设置手段,其具体实施方式及技术效果请参见第一实施例。
第三实施例
本申请第三实施例提供一种带宽探测方法,该方法应用于目标用户对应的拉流端,所述拉流端用于接收服务端从推流端获得的直播流。如图6所示,所述方法包括以下步骤:
S601,获得多个档位流的码率;
S602,获得所述多个档位流中针对目标用户的当前播放流的码率;
S603,将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率;
S604,根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值;
S605,将所述目标探测带宽值发送至服务端,以使所述服务端根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
可选地,所述方法还包括:根据所述目标探测带宽值,确定目标探测周期;将所述目标探测周期发送至所述服务端;所述服务端在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
本实施例提供的带宽探测方法,是针对CDN服务器的算法逻辑更新迭代周期慢或者CDN厂商不支持修改CDN算法逻辑等情况下,在拉流端确定进行主动探测所需的重要信息,即目标探测带宽值和目标探测周期。拉流端将目标探测带宽值和目标探测周期发送至CDN服务器,由CDN服务器根据拉流端确定的目标探测带宽值和目标探测周期,对网络带宽进行探测,确定当前网络带宽预测值。当然,CDN服务器需将当前网络带宽预测值发送至所述拉流端,以便拉流端使用码率自适应算法决策直播流的码率档位。相关内容请参见第一实施例。
第四实施例
本申请第四实施例提供一种带宽探测装置,如图7所示。该装置与第一实施例提供的带宽探测方法相对应,由于装置实施例与方法实施例相似,所以此处描述得比较简单,相关之处请参见第一实施例的内容。
本实施例提供的带宽探测装置700,包括:
第一确定单元701,用于获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率;根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值;
第一探测单元702,用于根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
以上为本申请第四实施例提供的一种带宽探测装置的介绍。
第五实施例
本申请第五实施例提供一种带宽探测装置,如图8所示。该装置与第二实施例提供的带宽探测方法相对应,由于装置实施例与方法实施例相似,所以此处描述得比较简单,相关之处请参见第二实施例的内容。
本实施例提供的带宽探测装置800,包括:
第二确定单元801,用于获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,确定目标探测带宽值;根据所述目标探测带宽值,确定目标探测周期;
第二探测单元802,用于在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
以上为本申请第五实施例提供的一种带宽探测装置的介绍。
第六实施例
本申请第六实施例提供一种电子设备,如图9所示。该电子设备包括:至少一个处理器901,至少一个存储器902,至少一个通信接口903和至少一个通信总线904。可选的,处理器901可能是处理器CPU,或者是特定集成电路ASIC(Application Specific IntegratedCircuit),或者是被配置成实施本申请实施例的一个或多个集成电路。存储器902可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通信接口903可以为通信模块的接口,如GSM模块的接口。其中,存储器902存储有程序和数据,处理器901调用存储器902所存储的程序,以执行上述带宽探测方法。
第七实施例
本申请第七实施例提供一种存储介质,所述存储介质存储有程序和数据,所述程序被处理器执行,用于实现上述带宽探测方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
尽管在上文详细描述中提及了用于动作执行的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的具体实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
应当注意,本申请的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本申请的保护范围之内。

Claims (19)

1.一种带宽探测方法,其特征在于,包括:
获得多个档位流的码率;
获得所述多个档位流中针对目标用户的当前播放流的码率;
将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率;其中,若当前网络使用状态为ALR状态,从大于当前播放流的码率的待选探测带宽值中确定目标探测带宽值,确定大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关;
根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值;
根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,获得对所述目标用户的网络带宽进行探测过程中的数据接收速率;如果数据接收速率等于所述目标探测带宽值,则将当前网络带宽预测值更新为所述目标探测带宽值。
2.根据权利要求1所述的带宽探测方法,其特征在于,所述获得所述多个档位流中针对目标用户的当前播放流的码率,包括:
获得针对所述目标用户的当前播放流的标识;
在所述多个档位流的码率中,获得所述当前播放流的标识所对应的码率,作为当前播放流的码率。
3.根据权利要求1所述的带宽探测方法,其特征在于,还包括:获得当前网络带宽预测值;
所述将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率,包括:
如果所述当前播放流的码率与所述当前网络带宽预测值的比值小于预设阈值,则将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率。
4.根据权利要求1所述的带宽探测方法,其特征在于,大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率,通过以下步骤确定:
获得所述大于所述当前播放流的码率的待选探测带宽值之和,作为待选探测带宽值之和;
将所述大于所述当前播放流的码率的待选探测带宽值按照从小到大的顺序排列,获得正序队列,并将所述大于所述当前播放流的码率的待选探测带宽值按照从大到小的顺序排列,获得倒序队列;
针对所述大于所述当前播放流的码率的待选探测带宽值中的任一待选探测带宽值,获得所述倒序队列中与所述任一待选探测带宽值在所述正序队列中的位置相同的待选探测带宽值,作为所述任一待选探测带宽值对应的待选探测带宽值;
获得所述任一待选探测带宽值对应的待选探测带宽值与所述待选探测带宽值之和的比值,作为所述任一待选探测带宽值被选为目标探测带宽值的概率。
5.根据权利要求1所述的带宽探测方法,其特征在于,确定小于等于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率为0。
6.根据权利要求1所述的带宽探测方法,其特征在于,所述根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值,包括:
根据各个待选探测带宽值被选为目标探测带宽值的概率,采用不等概率抽样的方法抽取待选探测带宽值,作为目标探测带宽值。
7.根据权利要求1所述的带宽探测方法,其特征在于,还包括:
根据所述目标探测带宽值,确定目标探测周期;
所述根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,包括:
在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
8.根据权利要求7所述的带宽探测方法,其特征在于,大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值时所对应的目标探测周期,通过以下步骤确定:
确定所述大于所述当前播放流的码率的待选探测带宽值中的最大待选探测带宽值所对应的探测周期;
获得所述目标探测带宽值与所述最大待选探测带宽值的比值,作为探测带宽值比值;
获得所述探测带宽值比值与所述最大待选探测带宽值所对应的探测周期之积,作为所述目标探测周期。
9.根据权利要求3所述的带宽探测方法,其特征在于,还包括:
如果所述当前播放流的码率与所述当前网络带宽预测值的比值大于等于所述预设阈值,则采用带宽估计的方法对所述当前网络带宽预测值进行更新。
10.根据权利要求1所述的带宽探测方法,其特征在于,所述获得多个档位流的码率,包括:
接收多个档位流,并实时统计所述多个档位流中每个档位流的平均码率,获得所述多个档位流的码率。
11.根据权利要求1所述的带宽探测方法,其特征在于,所述方法应用于服务端,所述服务端用于将从推流端获得的直播流发送至所述目标用户对应的拉流端;
所述方法还包括:
所述服务端将对所述目标用户的网络带宽进行探测后更新的当前网络带宽预测值发送至所述拉流端;
所述服务端获得所述拉流端根据更新的当前网络带宽预测值生成的码率档位更新请求;
所述服务端根据所述码率档位更新请求,向所述拉流端发送更新码率档位后的直播流。
12.根据权利要求1所述的方法,其特征在于,所述方法应用于所述目标用户对应的拉流端,所述拉流端用于接收服务端从推流端获得的直播流;
所述根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,包括:
所述拉流端将所述目标探测带宽值发送至服务端,以使所述服务端根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测。
13.一种带宽探测方法,其特征在于,包括:
获得多个档位流的码率;
获得所述多个档位流中针对目标用户的当前播放流的码率;
将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,确定目标探测带宽值;其中,若当前网络使用状态为ALR状态,从大于当前播放流的码率的待选探测带宽值中确定目标探测带宽值,确定大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关;
根据所述目标探测带宽值,确定目标探测周期;
在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,获得对所述目标用户的网络带宽进行探测过程中的数据接收速率;如果数据接收速率等于所述目标探测带宽值,则将当前网络带宽预测值更新为所述目标探测带宽值。
14.根据权利要求13所述的带宽探测方法,其特征在于,大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值时所对应的目标探测周期,通过以下步骤确定:
确定所述大于所述当前播放流的码率的待选探测带宽值中的最大待选探测带宽值所对应的探测周期;
获得所述目标探测带宽值与所述最大待选探测带宽值的比值,作为探测带宽值比值;
获得所述探测带宽值比值与所述最大待选探测带宽值所对应的探测周期之积,作为所述目标探测周期。
15.根据权利要求13所述的带宽探测方法,其特征在于,还包括:获得当前网络带宽预测值;
所述将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,获得目标探测带宽值,包括:
如果所述当前播放流的码率与所述当前网络带宽预测值的比值小于预设阈值,则将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,获得目标探测带宽值。
16.一种带宽探测装置,其特征在于,包括:
第一确定单元,用于获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,确定各个待选探测带宽值被选为目标探测带宽值的概率;其中,若当前网络使用状态为ALR状态,从大于当前播放流的码率的待选探测带宽值中确定目标探测带宽值,确定大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关;根据各个待选探测带宽值被选为目标探测带宽值的概率,确定目标探测带宽值;
第一探测单元,用于根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,获得对所述目标用户的网络带宽进行探测过程中的数据接收速率;如果数据接收速率等于所述目标探测带宽值,则将当前网络带宽预测值更新为所述目标探测带宽值。
17.一种带宽探测装置,其特征在于,包括:
第二确定单元,用于获得多个档位流的码率;获得所述多个档位流中针对目标用户的当前播放流的码率;将所述多个档位流的码率作为待选探测带宽值,根据所述待选探测带宽值,确定目标探测带宽值;其中,若当前网络使用状态为ALR状态,从大于当前播放流的码率的待选探测带宽值中确定目标探测带宽值,确定大于所述当前播放流的码率的待选探测带宽值被选为目标探测带宽值的概率与所述待选探测带宽值的大小负相关;根据所述目标探测带宽值,确定目标探测周期;
第二探测单元,用于在所述目标探测周期到达时,根据所述目标探测带宽值,对所述目标用户的网络带宽进行探测,获得对所述目标用户的网络带宽进行探测过程中的数据接收速率;如果数据接收速率等于所述目标探测带宽值,则将当前网络带宽预测值更新为所述目标探测带宽值。
18.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器用于存储程序和数据,所述处理器调用存储器存储的程序,以执行权利要求1-15任意一项所述的带宽探测方法。
19.一种存储介质,其特征在于,所述存储介质存储有程序和数据,所述程序被处理器执行,用于实现权利要求1-15任意一项所述的带宽探测方法。
CN202410048164.5A 2024-01-11 2024-01-11 一种带宽探测方法、装置、电子设备及存储介质 Active CN117560531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410048164.5A CN117560531B (zh) 2024-01-11 2024-01-11 一种带宽探测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410048164.5A CN117560531B (zh) 2024-01-11 2024-01-11 一种带宽探测方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117560531A CN117560531A (zh) 2024-02-13
CN117560531B true CN117560531B (zh) 2024-04-05

Family

ID=89820936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410048164.5A Active CN117560531B (zh) 2024-01-11 2024-01-11 一种带宽探测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117560531B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027312A (zh) * 2016-06-28 2016-10-12 青岛海信宽带多媒体技术有限公司 网络带宽预测方法和网络带宽预测装置
WO2018018641A1 (zh) * 2016-07-29 2018-02-01 华为技术有限公司 数据业务的数据传输方法和装置
CN110266551A (zh) * 2019-07-29 2019-09-20 腾讯科技(深圳)有限公司 一种带宽预测方法、装置、设备及存储介质
WO2021057245A1 (zh) * 2019-09-23 2021-04-01 北京达佳互联信息技术有限公司 带宽预测方法、装置、电子设备及存储介质
CN113301392A (zh) * 2021-05-26 2021-08-24 百果园技术(新加坡)有限公司 码率确定方法、装置、设备及存储介质
CN113891155A (zh) * 2021-09-29 2022-01-04 百果园技术(新加坡)有限公司 视频播放档位确定方法、视频播放方法及相关装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027312A (zh) * 2016-06-28 2016-10-12 青岛海信宽带多媒体技术有限公司 网络带宽预测方法和网络带宽预测装置
WO2018018641A1 (zh) * 2016-07-29 2018-02-01 华为技术有限公司 数据业务的数据传输方法和装置
CN110266551A (zh) * 2019-07-29 2019-09-20 腾讯科技(深圳)有限公司 一种带宽预测方法、装置、设备及存储介质
WO2021057245A1 (zh) * 2019-09-23 2021-04-01 北京达佳互联信息技术有限公司 带宽预测方法、装置、电子设备及存储介质
CN113301392A (zh) * 2021-05-26 2021-08-24 百果园技术(新加坡)有限公司 码率确定方法、装置、设备及存储介质
CN113891155A (zh) * 2021-09-29 2022-01-04 百果园技术(新加坡)有限公司 视频播放档位确定方法、视频播放方法及相关装置
WO2023051350A1 (zh) * 2021-09-29 2023-04-06 百果园技术(新加坡)有限公司 视频播放档位确定方法、视频播放方法及相关装置

Also Published As

Publication number Publication date
CN117560531A (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
US10841358B2 (en) System and method for determining quality of a media stream
US7657672B2 (en) Packet scheduling for data stream transmission
US9565139B2 (en) Remote latency adjustment
CN108292970B (zh) 通过互联网直播分发的自适应比特率调整方法和装置
KR101399509B1 (ko) 시-변화 전송 미디어를 통한 데이터 스트리밍
CN112953922B (zh) 一种自适应流媒体控制方法、系统、计算机设备及应用
US20080133744A1 (en) Multimedia data streaming server and method for dynamically changing amount of transmitting data in response to network bandwidth
Hoßfeld et al. To each according to his needs: Dimensioning video buffer for specific user profiles and behavior
CN113301392B (zh) 码率确定方法、装置、设备及存储介质
Burger et al. A generic approach to video buffer modeling using discrete-time analysis
US11671336B2 (en) ABR control
US20070177625A1 (en) Packet communication system, packet communication method, transmission apparatus, and storage medium having stored therein computer program
CA3132483A1 (en) System and method for managing video streaming quality of experience
CN117560531B (zh) 一种带宽探测方法、装置、电子设备及存储介质
Zhang et al. A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http
US9537707B2 (en) System for self organization of an internet protocol television grid
US11902599B2 (en) Multiple protocol prediction and in-session adaptation in video streaming
JP2004186793A (ja) ストリーミング配信装置、ストリーミング端末装置、ストリーミング配信システム、及びストリーミング配信方法
CN115037701B (zh) 视频处理方法、装置、服务器及介质
CN113612649B (zh) 往返估计
US11736552B1 (en) Sender based adaptive bit rate control
CN117319752A (zh) 音视频处理方法、装置、电子设备及存储介质
CN111314779B (zh) 一种确定流媒体传输质量的方法及装置
WO2018021950A1 (en) Device and method for controlling media streaming from a server to a client
Saleem et al. High quality network and device aware multimedia content delivery for mobile cloud

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant