CN117560522A - 码率确定方法、装置、设备及存储介质 - Google Patents
码率确定方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117560522A CN117560522A CN202210934610.3A CN202210934610A CN117560522A CN 117560522 A CN117560522 A CN 117560522A CN 202210934610 A CN202210934610 A CN 202210934610A CN 117560522 A CN117560522 A CN 117560522A
- Authority
- CN
- China
- Prior art keywords
- current
- code rate
- determining
- target
- window
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 239000012634 fragment Substances 0.000 claims abstract description 145
- 238000010586 diagram Methods 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 238000001914 filtration Methods 0.000 claims description 10
- 238000009499 grossing Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 4
- 238000013467 fragmentation Methods 0.000 claims description 2
- 238000006062 fragmentation reaction Methods 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 20
- 238000005259 measurement Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种码率确定方法、装置、设备及存储介质,可以应用于云技术、人工智能、智慧交通、车联网、网络直播等各种场景,所述方法包括:获取当前处理的当前数据包分片在目标应用中的流量数据图;流量数据图表征当前数据包分片中数据流量与时间的对应关系;基于流量数据图中的坐标数值范围,确定预设窗口以及预设距离;预设窗口基于流量数据图的起始坐标点确定;基于预设窗口以及预设距离,确定目标流量数据图;基于目标流量数据图,确定目标应用的当前预测带宽;基于当前预测带宽,确定目标应用中待播放数据包分片的目标码率。本申请实现准确预测待播放数据包分片的目标码率,保证目标应用中视频码率的自适应调整。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种码率确定方法、装置、设备及存储介质。
背景技术
相关技术中,在低延迟直播场景中,客户端下载的是Prefetch TS分片(正在生成的TS分片,比如Low latency 2.ts),下载瓶颈是视频生成速度,通过测量下载速度无法获得当前带宽,只能得到视频码率。
因此,在低延迟直播场景中无法准确预测带宽,并对视频码率进行自适应调整。
发明内容
本申请提供了一种码率确定方法、装置、设备及存储介质,可以准确预测目标应用对应的带宽,从而可以准确确定待播放分片的目标码率,保证目标应用中视频码率的自适应调整。
一方面,本申请提供了一种码率确定方法,所述方法包括:
获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;
基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;
基于所述预设窗口以及所述预设距离,确定目标流量数据图;
基于所述目标流量数据图,确定所述目标应用的当前预测带宽;
基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。
另一方面提供了一种码率确定装置,所述装置包括:
流量数据图获取模块,用于获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;
预设窗口确定模块,用于基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;
目标流量数据图确定模块,用于基于所述预设窗口以及所述预设距离,确定目标流量数据图;
当前预测带宽确定模块,用于基于所述目标流量数据图,确定所述目标应用的当前预测带宽;
目标码率确定模块,用于基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。
另一方面提供了一种码率确定设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上所述的码率确定方法。
另一方面提供了一种计算机存储介质,所述计算机存储介质存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如上所述的码率确定方法。
另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行以实现如上所述的码率确定方法。
本申请提供的码率确定方法、装置、设备及存储介质,具有如下技术效果:
本申请获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;基于所述预设窗口以及所述预设距离,确定目标流量数据图;基于所述目标流量数据图,确定所述目标应用的当前预测带宽;基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。本申请通过构建预设窗口,实现了快速准确地确定目标流量数据图,从而准确预测待播放数据包分片的目标码率,保证目标应用中视频码率的自适应调整,从而保证直播过程中能够流畅、高效地播放视频。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种码率确定系统的示意图;
图2是本申请实施例提供的一种码率确定方法的流程示意图;
图3是本申请实施例提供的一种基于所述预设窗口以及所述预设距离,确定目标流量数据图的方法的流程示意图;
图4是本申请实施例提供的一种基于各个当前窗口对应的当前斜率,确定所述目标流量数据图的方法的流程示意图;
图5是本申请实施例提供的基于所述目标流量数据图,确定所述目标应用的当前预测带宽的方法的流程示意图;
图6是本申请实施例提供的基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率的方法的流程示意图;
图7是本申请实施例提供的一个当前数据包分片在目标应用中的流量数据图;
图8是本申请实施例提供的一个当前数据包分片的下载曲线;
图9是本申请实施例提供的一种带宽预测结果与真实结果的对比曲线图;
图10是本申请实施例提供的一种LHLS m3u8文件的示意图;
图11是本申请实施例提供的不同数据包分片对应的带宽预测方法示意图;
图12是本申请实施例提供的不同数据包分片对应的误差等级参数示意图;
图13是本申请实施例提供的码率慢升过程中,卡尔曼滤波算法处理前后的带宽预测曲线;
图14是本申请实施例提供的码率快降过程中,卡尔曼滤波算法处理前后的带宽预测曲线;
图15是本申请实施例提供的高延迟场景下的带宽预测曲线示意图;
图16是本申请实施例提供的低延迟场景下的带宽预测曲线示意图;
图17是本申请实施例提供的不同分辨率的待播放数据包分片之间的切换示意图;
图18是本申请实施例提供的一种LHLS低延迟直播系统结构示意图;
图19是本申请实施例提供的一种高延迟、低延迟直播场景中,观众端的数据下载延迟对比图;
图20是本申请实施例提供的观众端中目标应用的显示界面;
图21是本申请实施例提供的一种码率自适应调整系统结构图;
图22是本申请实施例提供的一种码率确定装置的结构示意图;
图23是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语作如下解释:
HLS:HTTP Live Streaming,流媒体协议;HTTP Live Streaming(HLS)是基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPhone、iPad)提供音视频直播和点播方案。HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此可见,基本上可以认为,HLS是以点播的技术方式来实现直播。
m3u8:HLS播放列表文件;
LHLS:低延迟HLS(Low-latency HLS);
TS:承载媒体数据的数据包;
Normal TS:已经生成的TS;
Prefetch TS:正在生成的TS。
网络直播:在现场架设独立的信号采集设备(音频+视频)导入导播端(导播设备或平台),再通过网络上传至服务器,发布至网址供人观看。网络直播包括购物直播、游戏直播等,在游戏直播过程中,对视频的实时性要求较高,且游戏视频的数据量较大。本申请的方法在保证直播视频延迟时间较短的情况下,通过准确预测带宽,可以以与预测带宽适配的最大码率播放下个TS分片,从而在保证直播视频低延迟的同时,保证直播视频流畅且清晰度较高,最大限度地提升用户观看直播的体验。
高延迟场景(High latency)HLS传统码率自适应方案:通过测量TS分片下载速度实现带宽测量,最后作为码率自适应参考依据。
高延迟场景下载的是Normal TS分片(已经生成的TS分片,比如High latency1.ts),下载瓶颈是网络带宽,通过测量下载速度就能获取当前带宽。
而低延迟场景(Low latency)无法正确测量带宽。低延迟场景(Low latency)Twitch直播码率自适应方案:利用Http Range(206)请求一小段(32.8k)已经生成的TS分片数据,进行测速,最后作为码率自适应参考依据。
低延迟场景下载的是Prefetch TS分片(正在生成的TS分片,比如Low latency2.ts),下载瓶颈是视频生成速度,通过测量下载速度无法获得当前带宽,只能得到视频码率。当时存在冗余流量,测试分片不能太小,不然测速不准,分片太大浪费宝贵流量资源;且Range请求与TS共用下载通道,串行请求有队头阻塞问题容易导致视频卡顿。其中HTTPRange请求允许从服务器上只发送HTTP消息的一部分到客户端。这样的部分请求对于大型媒体、具有中断和恢复下载进度的下载文件请求很有帮助。
卡尔曼滤波算法(Kalman Filter)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。数据滤波是去除噪声还原真实数据的一种数据处理技术,Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态。
为了实现准确预测目标应用的带宽,从而准确预测待播放数据包分片的目标码率,保证目标应用中视频码率的自适应调整,本申请提出了一种码率确定方法、装置、设备及存储介质。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本申请实施例提供的一种码率确定系统的示意图,如图1所示,该码率确定系统可以至少包括服务器01和客户端02。
具体的,本申请实施例中,所述服务器01可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器01可以包括有网络通信单元、处理器和存储器等等。具体的,所述服务器01可以用于确定所述目标应用中待播放数据包分片的目标码率。
具体的,本申请实施例中,所述客户端02可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、智能音箱、车载终端、虚拟现实(VR)设备、智能电视等类型的实体设备,也可以包括运行于实体设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,所述客户端02可以用于在所述目标应用中播放目标码率的待播放数据包分片。
以下介绍本申请的一种码率确定方法,本申请的方法可以应用于网络直播场景,图2是本申请实施例提供的一种码率确定方法的流程示意图,该方法可以应用于图1所示的服务器01中,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系。
具体的,在本申请实施例中,所述方法可以应用于低延迟直播场景中;可以通过服务器获取当前处理的当前数据包分片在目标应用中的流量数据图;目标应用可以为终端中应用程序,服务器可以为目标应用的后台服务器;例如,目标应用为视频应用程序,服务器可以为视频后台服务器;当前处理的当前数据包分片在目标应用中可以为正在生成的TS分片;当前数据包分片可以为服务器中正在生成的TS分片,其在目标应用中的流量数据图可以为终端中目标应用下载所述当前数据包分片的流量时间曲线;服务器可以一边生成TS分片,一边向目标应用发送生成的部分TS分片,便于目标应用同时下载生成的部分TS分片;从而在TS分片完全生成之后,获取到其对应的流量数据图,从而便于预测目标应用的当前带宽。
S203:基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定。
在本申请实施例中,所述流量数据图可以以时间为横坐标,以当前数据包分片的下载流量为纵坐标;可以根据流量数据图的横坐标或纵坐标构建预设窗口;预设窗口可以为矩形;可以以所述流量数据图的起始坐标点为初始位置,沿预设坐标轴方向移动预设距离,得到预设窗口,预设窗口的一边长可以为预设距离或第一预设数值,另一边长可以为第二预设数值,第一预设数值、第二预设数值与预设距离均固定不变。预设坐标轴可以为所述流量数据图的横坐标轴或纵坐标轴;预设距离可以为预设窗口的单次移动距离,可以根据实际情况进行设置。
S205:基于所述预设窗口以及所述预设距离,确定目标流量数据图。
在本申请实施例中,所述目标流量数据图中流量下载速度大于预设速度阈值;预设速度阈值可以根据实际情况进行设置。目标流量数据图可以为流量数据图中下载速度最快的一段数据图。
在本申请实施例中,如图3所示,所述基于所述预设窗口以及所述预设距离,确定目标流量数据图,包括:
S2051:将所述预设窗口作为当前窗口;
S2053:基于所述当前窗口对应的当前流量数据图,计算所述当前流量数据图的当前斜率;
具体的,在本申请实施例中,可以将当前窗口内的数据图确定为当前流量数据图,当前流量数据图通常为直线,可以计算对应的直线斜率,作为当前斜率。
S2055:将所述当前窗口沿所述流量数据图的预设坐标轴方向,移动所述预设距离,得到更新窗口,并将所述更新窗口重新作为所述当前窗口;
具体的,在本申请实施例中,预设坐标轴可以为所述流量数据图的横坐标轴或者纵坐标轴;可以根据预设距离,不断移动当前窗口,得到更新窗口;移动一次预设距离,得到一个更新窗口;更新窗口与预设窗口的面积相同,即每个当前窗口的面积相同;更新窗口与预设窗口可以存在重合部分,也可以不存在重合部分。
S2057:重复所述基于所述当前窗口对应的当前流量数据图,计算所述当前流量数据图的当前斜率;至所述将所述当前窗口沿所述流量数据图的预设坐标轴方向,移动所述预设距离,得到更新窗口,并将所述更新窗口重新作为所述当前窗口的步骤,直至所述更新窗口超出所述流量数据图的范围;
具体的,在本申请实施例中,可以不断移动当前窗口,得到更新窗口,直至更新窗口范围超出所述流量数据图的范围之后,停止窗口更新,从而可以基于当前窗口,将所述流量数据图分解成多个子数据图,便于计算每个子数据图的斜率。
在一个具体的实施例中,如图7所示,图7为一个当前数据包分片在目标应用中的流量数据图,其中窗口1为预设窗口,窗口2为对预设窗口平移多次后的更新窗口,窗口1与窗口2的面积相同,且两者均没有超出所述目标流量数据图的范围;每个窗口均对应一段流量数据曲线。
S2059:基于各个当前窗口对应的当前斜率,确定所述目标流量数据图。
具体的,在本申请实施例中,可以计算每个当前窗口内的当前流量数据图的当前斜率,从而确定出所述目标流量数据图。
在本申请实施例中,如图8所示,图8为一个正在生成的数据包分片的下载曲线,包括曲线03和曲线04;分别根据这两段曲线得到目标应用中的预测带宽数据;在下载完成之后,获取目标应用中真实带宽数据以及播放视频码率;经对比发现,曲线03部分的预测带宽数据接近真实带宽数据,曲线04部分的预测带宽数据接近视频码率;因此,若要得到准确率较高的带宽预测结果,需要获取正在生成的数据包分片中的曲线03,根据这部分曲线可以准确预测目标应用的带宽,而曲线03为下载曲线中斜率最大的曲线。
在本申请实施例中,如图4所示,所述基于各个当前窗口对应的当前斜率,确定所述目标流量数据图,包括:
S20591:基于各个当前窗口对应的当前斜率的数值大小,对所述各个当前窗口进行排序;
在本申请实施例中,所述基于各个当前窗口对应的当前斜率的数值大小,对所述各个当前窗口进行排序可以包括:
将各个当前窗口按照每个当前窗口对应的当前斜率的数值由大到小进行排序,得到第一排序结果;
在本申请实施例中,所述基于各个当前窗口对应的当前斜率的数值大小,对所述各个当前窗口进行排序可以包括:
将各个当前窗口按照每个当前窗口对应的当前斜率的数值由小到大进行排序,得到第二排序结果。
S20593:基于排序结果,从所述各个当前窗口中确定当前目标窗口;
在本申请实施例中,所述基于排序结果,从所述各个当前窗口中确定当前目标窗口,包括:
基于所述第一排序结果,将排序首位的当前窗口确定为当前目标窗口。
在本申请实施例中,所述基于排序结果,从所述各个当前窗口中确定当前目标窗口,包括:
基于所述第二排序结果,将排序末位的当前窗口确定为当前目标窗口。
在本申请实施例中,可以将当前斜率最大的当前窗口确定为当前目标窗口从而根据当前目标窗口准确预测带宽。
S20595:将所述流量数据图中所述当前目标窗口的对应部分,确定为所述目标流量数据图。
在本申请实施例中,可以将当前目标窗口对于的数据图确定为目标流量数据图,这部分数据图对应的斜率最大。
S207:基于所述目标流量数据图,确定所述目标应用的当前预测带宽。
在本申请实施例中,如图5所示,所述基于所述目标流量数据图,确定所述目标应用的当前预测带宽,包括:
S2071:基于所述目标流量数据图,确定数据流量差值以及时间差值;
具体的,在本申请实施例中,可以根据目标流量数据图的横坐标确定时间差值,具体的,可以获取目标流量数据图的起始时间值(最小值)以及终止时间值(最大值),并计算终止时间值与起始时间值的差值,得到所述时间差值;获取目标流量数据图的起始流量值(图中的纵坐标起点)以及终止流量值(图中的纵坐标终点),并计算终止流量值与起始流量值的差值,得到所述数据流量差值。
S2073:计算所述数据流量差值与所述时间差值的比值,得到流量时间比值;
具体的,在本申请实施例中,可以计算所述数据流量差值与所述时间差值的比值,作为流量时间比值。
S2075:基于所述流量时间比值,确定所述目标应用的当前预测带宽。
具体的,在本申请实施例中,可以将所述流量时间比值,作为所述目标应用的当前预测带宽。
在一个具体的实施例中,如图9所示,图9为一种带宽预测结果与真实结果的对比曲线图,其中,锯齿状曲线05为预测带宽曲线,折线06为真实带宽曲线;两者近似度较高。
在本申请实施例中,所述当前数据包分片为至少两个,所述基于所述流量时间比值,确定所述目标应用的当前预测带宽,包括:
基于所述至少两个当前数据包分片各自对应的流量时间比值,构建流量时间比值图;
在本申请实施例中,至少两个当前数据包分片可以包括正在处理的分片和等待处理的分片。
在本申请实施例中,可以根据至少两个当前数据包分片构建m3u8文件;如图10所示,图10为一种LHLS m3u8文件的示意图,其中包括两个Prefetch TS分片(第一个为正在生成的分片,第二个为将要生成的分片)。
基于卡尔曼滤波算法,对所述流量时间比值图进行平滑处理,得到所述目标应用的当前预测带宽。
在本申请实施例中,可以提高带宽预测准确率,可以通过卡尔曼滤波算法,对所述流量时间比值图进行平滑处理,得到所述目标应用的当前预测带宽。
为了进一步提高带宽预测准确率,并实现带宽预测的慢升快降特性(减少视频卡顿的特性),卡尔曼滤波算法中可以加入误差修改规则:1)误差参数等级;2)梯度下降方案;梯度下降规则:带宽测量连续下降n次,使用更小的误差参数。比如连续下降2次使用0.0001,连续下降3次使用0.00008,连续下降4次使用0.00004,连续下降大于等于5次使用0.000004;带宽上升时,预测结果缓慢上升,符合慢升要求;带宽下降时,预测结果快速下降,符合快降要求。
在一个具体的实施例中,如图11所示,图11为不同数据包分片对应的带宽预测方法示意图;为了减少带宽测量误差,在不同情况下,可以采用不同的带宽预测方法;对于已生成的TS分片,可以通过以下公式计算带宽:
Bindwith=Size/Time;
其中Size为TS分片大小,Time为TS分片下载时间。可以基于指数加权移动平均(EWMA)算法对计算结果进行平滑处理,从而得到准确率较高的带宽预测结果。
对于正在生成的TS分片,可以采用本实施例的基于所述目标流量数据图,确定所述目标应用的当前预测带宽的方法(WindowMax方法);当出现严重超时的情况下,例如,下载超时0.3s时,可以将当前预测方法切换成基于所述流量数据图中流量数据差值与时间差值的比值,确定所述目标应用的当前预测带宽的方法;即在此情况下,采用计算已生成的TS分片的公式进行带宽预测。
在本申请实施例中,所述基于卡尔曼滤波算法,对所述流量时间比值图进行平滑处理,得到所述目标应用的当前预测带宽可以包括:
基于所述流量数据图,确定误差参数;
在一个具体的实施例中,如图12所示,图12为不同数据包分片对应的误差等级参数示意图;可以根据所述流量数据图,确定数据下载速度,并根据数据下载速度确定误差参数,其中数据下载速度可以用于表征带宽是否充足;带宽充足时,误差等级较高,可以确定与高等级误差对应的误差参数;带带宽不足时,误差等级较低,可以确定与低等级误差对应的误差参数。
基于卡尔曼滤波算法以及所述误差参数,对所述流量时间比值图进行平滑处理,得到所述目标应用的当前预测带宽。
在本申请实施例中,基于所述目标流量数据图,确定所述目标应用的当前预测带宽的方法为WindowMax方法;当出现严重超时的情况下,例如,下载超时0.3s时,可以将当前预测方法切换成基于所述流量数据图中流量数据差值与时间差值的比值,确定所述目标应用的当前预测带宽的方法。
在一个具体的实施例中,如图13所示,图13为码率慢升过程中,卡尔曼滤波算法处理前后的带宽预测曲线,其中,锯齿状曲线07为处理前带宽预测曲线,曲线08为处理后带宽预测曲线;曲线09为真实带宽曲线,曲线10为视频码率曲线;可见,处理后带宽预测曲线与真实带宽曲线的相似度较高。
在一个具体的实施例中,如图14所示,图14为码率快降过程中,卡尔曼滤波算法处理前后的带宽预测曲线,其中,锯齿状曲线11为处理前带宽预测曲线,曲线12为处理后带宽预测曲线;曲线13为真实带宽曲线,曲线14为视频码率曲线;可见,处理后带宽预测曲线与真实带宽曲线的相似度较高。
在一个具体的实施例中,在同一目标应用中,分别采用高延迟场景下的码率自适应方法以及本实施例的低延迟场景下的码率自适应方法进行带宽预测,得到两种方案对应的带宽预测曲线;测试参数码率为2500kbps,实际带宽变化为:10Mbps--6Mbps--2Mbps;如图15所示,图15为高延迟场景下的带宽预测曲线示意图;其中,高延迟场景下的带宽计算公式为Bindwith=Size/Time;得到的结果为曲线15,对数据进行平滑处理后得到曲线16;锯齿状虚线15为处理前带宽预测曲线,锯齿状实线16为处理后带宽预测曲线;曲线17为真实带宽曲线,曲线18为视频码率曲线;如图16所示,图16为低延迟场景下的带宽预测曲线示意图;锯齿状曲线19为处理前带宽预测曲线,锯齿状曲线20为处理后带宽预测曲线;曲线21为真实带宽曲线,曲线22为视频码率曲线;对比可见,两者的均方根误差(RMSE)接近且都接近0,说明本实施例的方法在低延迟场景下得到的带宽预测准确率接近现有的高延迟场景下的带宽预测准确率。
S209:基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。
在本申请实施例中,所述待播放数据分片为播放顺序位于当前播放数据分片之后的分片。
在本申请实施例中,如图6所示,所述基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率,包括:
S2091:确定所述当前预测带宽对应的预测码率;
在本申请实施例中,预测码率为与所述当前预测带宽相匹配的码率,或者根据所述当前预测带宽计算得到的码率。
S2093:获取所述目标应用中当前播放数据包分片的当前码率;
在本申请实施例中,可以根据当前播放数据包分片对应的播放视频,获取对应的当前码率。
S2095:基于所述预测码率以及所述当前码率,确定所述目标应用中待播放数据包分片的目标码率。
具体的,在本申请实施例中,待播放数据包分片的初始码率可以设置为最低码率,即可以先播放预先构建的待播放数据包分片对应的各种分辨率文件中分辨率最低的文件。
具体的,在本申请实施例中,所述基于所述预测码率以及所述当前码率,确定所述目标应用中待播放数据包分片的目标码率,包括:
若所述预测码率大于所述当前码率,确定所述当前预测带宽与所述预测码率的第一比值;
所述若所述预测码率大于所述当前码率,确定所述当前预测带宽与所述预测码率的第一比值,包括:
若所述预测码率大于所述当前码率,确定预设数据包分片的带宽预测状态;所述预设数据包分片为位于所述当前数据包分片之后的分片;
在本申请实施例中,所述预设数据包分片可以为至少两个。
若所述预设数据包分片处于带宽预测完成状态,确定所述当前预测带宽与所述预测码率的第一比值。
具体的,在本申请实施例中,每次码率变化后,如果要升码率,等待至少N(N=2)个分片测速完成,从而避免出现播放视频的卡顿现象。
若所述第一比值大于第一阈值,将所述预测码率确定为所述待播放数据包分片的目标码率。
在本申请实施例中,第一阈值可以根据实际情况进行设置,例如可以设置为1.4,从而避免升码率过程中出现视频画面抖动现象,提升用户体验。
具体的,在本申请实施例中,若所述预测码率等于所述当前码率,将所述当前码率确定为所述待播放数据包分片的目标码率。
具体的,在本申请实施例中,若所述第一比值小于或等于所述第一阈值,将所述当前码率确定为所述待播放数据包分片的目标码率,此时不调整码率。
具体的,在本申请实施例中,所述基于所述预测码率以及所述当前码率,确定所述目标应用中待播放数据包分片的目标码率,包括:
若所述预测码率小于所述当前码率,确定所述当前预测带宽与所述预测码率的第二比值;
在本申请实施例中,若所述预测码率小于所述当前码率,说明可能需要进行升码率操作,此时需要进一步计算当前预测带宽与所述预测码率的第二比值。
若所述第二比值小于第二阈值,将所述预测码率确定为所述待播放数据包分片的目标码率。
在本申请实施例中,第二阈值可以根据实际情况进行设置,例如可以设置为1.2,若所述第二比值小于第二阈值,说明可以进行降码率操作。从而避免升码率过程中出现视频画面抖动现象,提升用户体验。
若所述第二比值大于等于所述第二阈值,将所述当前码率确定为所述待播放数据包分片的目标码率。
在本申请实施例中,若所述第二比值大于或等于第二阈值,说明不满足降码率条件,此时可以使待播放数据包分片按照当前播放数据片的当前码率进行播放,不调整码率。
具体的,在本申请实施例中,所述基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率之后,所述方法还包括:
基于所述当前播放数据包分片,确定至少两个候选数据包分片;所述至少两个候选数据包分片对应不同的分辨率,所述至少两个候选数据包分片对应同一直播数据流;
根据所述至少两个候选数据包分片各自对应的分辨率,筛选出与所述目标码率匹配的候选数据包分片,作为所述待播放数据包分片。
具体的,在本申请实施例中,在带宽预测结果出来之前,可以获取分辨率最低的候选数据包分片进行播放,并在播放过程中进行调整。
具体的,在本申请实施例中,所述方法还包括:
获取预设直播数据流以及所述目标应用对应的设备分辨率;
在本申请实施例中,目标应用首次向服务器发送视频播放请求时,可以向服务器发送设备分辨率。例如,当用户首次打开目标应用时,设备可以向服务器发送设备分辨率,便于服务器构建不同分辨率的候选数据包分片。
基于所述设备分辨率,确定至少两个预设分辨率;
在本申请实施例中,服务器可以根据设备分辨率,确定多个预设分辨率,预设分辨率小于或等于设备分辨率;从而保证生成的各种不同分辨率的候选数据包分片可以在目标应用中正常播放。
基于所述预设直播数据流,生成所述至少两个预设分辨率对应的候选数据包分片。
在本申请实施例中,预设直播数据流可以为主播端用户生成的数据流,通过主播端的预设直播数据流生成候选数据包分片,从而便于在观众端进行播放。
本实施例可以应用于网络直播场景中,具体的,可以应用于游戏直播、购物直播、赛事直播等场景。在保证直播视频低延迟的同时,保证直播视频流畅且清晰度较高,最大限度地提升用户观看直播的体验。
在一个具体的实施例中,目标应用中视频播放过程中,如图17所示,图17为不同分辨率的待播放数据包分片之间的切换示意图;预先构建了视频中不同分辨率的数据包分片,对于每个数据包分片,均构建了不同分辨率的TS文件,不同分辨率的TS文件播放内容与播放时间,播放序号完全相同;第一个TS文件的分辨率为1080P,当网络变差时(预测带宽比当前带宽小),将第二个TS文件的分辨率调整为720P;当网络进一步变差时(预测带宽更小),将第三个TS文件的分辨率调整为480P;当网络变好时(预测带宽比当前带宽大),将第四个TS文件的分辨率调整为720P;当网络进一步变好时(预测带宽更大),将第五个TS文件的分辨率调整为1080P;以便于根据预测带宽,自适应调整对应分辨率文件进行播放,从而实现视频码率的自适应调整。
在一个具体的实施例中,如图18所示,图18为一种LHLS低延迟直播系统结构示意图;该系统包括直播端的采集/编码模块、接入CDN、转码服务器、CDN下行以及观众端的解码/渲染模块;首先,通过直播端的采集/编码模块采集当前直播流数据,并进行编码处理,基于实时消息传输协议(Real Time Messaging Protocol,RTMP)发送至直播端的接入CDN,再将编码文件发送至转码服务器,转码服务器可以对编码文件进行转码之后,发送至观众端的CDN下行;CDN下行通过HTTP chunked协议,基于低延迟流媒体协议传输至观众端的解码/渲染模块,进行解码,并渲染显示页面,在观众端进行显示。其中,分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,它允许HTTP由网页服务器发送给客户端应用的数据可以分成多个部分。当客户端向服务器请求一个静态页面或者一张图片时,服务器可以很清楚的知道内容大小,然后通过Content-Length消息首部字段告诉客户端需要接收多少数据。但是如果是动态页面等时,服务器是不可能预先知道内容大小,这时就可以使用Transfer-Encoding:chunk模式来传输数据了。即如果要一边产生数据,一边发给客户端,服务器就需要使用"Transfer-Encoding:chunked"这样的方式进行数据传输。
在一个具体的实施例中,如图19所示,图19为一种高延迟、低延迟直播场景中,观众端的数据下载延迟对比图;高延迟每次下发的是完整的、已生成的TS分片,而,低延迟场景下可以在一个分片完全生成之前,下发部分已经生成的分片;可见,低延迟直播下的延时时间显然比高延迟直播场景的延时时间短;且由于低延迟场景下可以下发部分已生成分片,涉及的视频帧数少,相比于高延迟场景,减少了GOP(Group of Pictures,一组视频帧)时间。低延迟场景中从倒数第一个已生成TS分片开始播放。
在一个具体的实施例中,如图20所示,图20为观众端中目标应用的显示界面;其中,清晰度对应的选项为Auto(码率自适应),在此情况下,即可实现本实施例的码率确定方法。
在一个具体的实施例中,如图21所示,图21为一种码率自适应调整系统结构图;在码率自适应调整模式下,在接收到响应消息之后,通过初始带宽计算模块计算初始带带宽,通过带宽预测模块对计算结果进行平滑处理,得到预测带宽,再通过码率切换控制模块,根据预测带宽请求获取目标分辨率的TS文件;观众端的缓冲模块获取目标分辨率的TS文件,并经过显示模块进行渲染后显示。
在一个具体的实施例中,分别采用不同的协议对直播参数进行调整,得到下表1所示的直播参数对比结果,其中LHTS(ABR)为本实施例的码率确定方法,ABR为码率自适应调整(开启Auto),LHTS为基于公式Bindwith=Size/Time预测码率的方法。
表1
根据表1可见,开启Auto档位后平均码率均有提升,应用程序1中提升了35%,应用程序2中提升了16%;从而可以使用户能看到更高分辨率的视频。且开启Auto档位后,二次缓冲比(平均每次观看卡顿数)与每小时平均卡顿数都有所降低;在应用程序1中,二次缓冲比降低了40%,在应用程序2中,二次缓冲比降低了14%;其中,二次缓冲比为评价卡顿的参数,为应用程序中卡顿数量占比;例如,应用程序1对应100个用户,其中10个用户在视频播放过程中出现了卡顿,且每个用户出现卡顿的次数不同;则将所有用户出现卡顿的总次数除以100,得到二次缓冲比。可见,本实施例的方法提高了直播场景中视频的清晰度,并降低了视频卡顿率,提升了用户观看视频的体验。
由以上本申请实施例提供的技术方案可见,本申请实施例获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;基于所述预设窗口以及所述预设距离,确定目标流量数据图;基于所述目标流量数据图,确定所述目标应用的当前预测带宽;基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。本申请通过构建预设窗口,实现了快速准确地确定目标流量数据图,从而准确预测待播放数据包分片的目标码率,保证目标应用中视频码率的自适应调整,从而保证直播过程中能够流畅、高效地播放视频。
本申请实施例还提供了一种码率确定装置,如图22所示,所述装置包括:
流量数据图获取模块2210,用于获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;
预设窗口确定模块2220,用于基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;
目标流量数据图确定模块2230,用于基于所述预设窗口以及所述预设距离,确定目标流量数据图;
当前预测带宽确定模块2240,用于基于所述目标流量数据图,确定所述目标应用的当前预测带宽;
目标码率确定模块2250,用于基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。
在一些实施例中,所述目标流量数据图确定模块可以包括:
当前窗口确定子模块,用于将所述预设窗口作为当前窗口;
当前斜率计算子模块,用于基于所述当前窗口对应的当前流量数据图,计算所述当前流量数据图的当前斜率;
更新窗口确定子模块,用于将所述当前窗口沿所述流量数据图的预设坐标轴方向,移动所述预设距离,得到更新窗口,并将所述更新窗口重新作为所述当前窗口;
步骤重复子模块,用于重复所述基于所述当前窗口对应的当前流量数据图,计算所述当前流量数据图的当前斜率;至所述将所述当前窗口沿所述流量数据图的预设坐标轴方向,移动所述预设距离,得到更新窗口,并将所述更新窗口重新作为所述当前窗口的步骤,直至所述更新窗口超出所述流量数据图的范围;
目标流量数据图确定子模块,用于基于各个当前窗口对应的当前斜率,确定所述目标流量数据图。
在一些实施例中,所述目标流量数据图确定子模块可以包括:
排序单元,用于基于各个当前窗口对应的当前斜率的数值大小,对所述各个当前窗口进行排序;
当前目标窗口确定单元,用于基于排序结果,从所述各个当前窗口中确定当前目标窗口;
目标流量数据图确定单元,用于将所述流量数据图中所述当前目标窗口的对应部分,确定为所述目标流量数据图。
在一些实施例中,所述当前预测带宽确定模块可以包括:
时间差值确定子模块,用于基于所述目标流量数据图,确定数据流量差值以及时间差值;
流量时间比值确定子模块,用于计算所述数据流量差值与所述时间差值的比值,得到流量时间比值;
当前预测带宽确定子模块,用于基于所述流量时间比值,确定所述目标应用的当前预测带宽。
在一些实施例中,所述当前数据包分片为至少两个,所述当前预测带宽确定模块可以包括:
流量时间比值图构建子模块,用于基于所述至少两个当前数据包分片各自对应的流量时间比值,构建流量时间比值图;
平滑处理子模块,用于基于卡尔曼滤波算法,对所述流量时间比值图进行平滑处理,得到所述目标应用的当前预测带宽。
在一些实施例中,所述目标码率确定模块可以包括:
预测码率确定子模块,用于确定所述当前预测带宽对应的预测码率;
当前码率获取子模块,用于获取所述目标应用中当前播放数据包分片的当前码率;
目标码率确定子模块,用于基于所述预测码率以及所述当前码率,确定所述目标应用中待播放数据包分片的目标码率。
在一些实施例中,所述目标码率确定子模块可以包括:
第一比值确定单元,用于若所述预测码率大于所述当前码率,确定所述当前预测带宽与所述预测码率的第一比值;
目标码率确定单元,用于若所述第一比值大于第一阈值,将所述预测码率确定为所述待播放数据包分片的目标码率。
在一些实施例中,所述第一比值确定单元可以包括:
带宽预测状态确定子单元,用于若所述预测码率大于所述当前码率,确定预设数据包分片的带宽预测状态;所述预设数据包分片为位于所述当前数据包分片之后的分片;
第一比值确定子单元,用于若所述预设数据包分片处于带宽预测完成状态,确定所述当前预测带宽与所述预测码率的第一比值。
在一些实施例中,所述目标码率确定子模块可以包括:
第二比值确定单元,用于若所述预测码率小于所述当前码率,确定所述当前预测带宽与所述预测码率的第二比值;
目标码率确定单元,用于若所述第二比值小于第二阈值,将所述预测码率确定为所述待播放数据包分片的目标码率。
在一些实施例中,所述装置还可以包括:
候选数据包分片确定模块,用于基于所述当前播放数据包分片,确定至少两个候选数据包分片;所述至少两个候选数据包分片对应不同的分辨率,所述至少两个候选数据包分片对应同一直播数据流;
待播放数据包分片筛选模块,用于根据所述至少两个候选数据包分片各自对应的分辨率,筛选出与所述目标码率匹配的候选数据包分片,作为所述待播放数据包分片。
在一些实施例中,所述装置还可以包括:
设备分辨率获取模块,用于获取预设直播数据流以及所述目标应用对应的设备分辨率;
预设分辨率确定模块,用于基于所述设备分辨率,确定至少两个预设分辨率;
候选数据包分片生成模块,用于基于所述预设直播数据流,生成所述至少两个预设分辨率对应的候选数据包分片。
所述的装置实施例中的装置与方法实施例基于同样地发明构思。
本申请实施例提供了一种码率确定设备,该设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的码率确定方法。
本申请的实施例还提供了一种计算机存储介质,所述存储介质可设置于终端之中以保存用于实现方法实施例中一种码率确定方法相关的至少一条指令或至少一段程序,该至少一条指令或至少一段程序由该处理器加载并执行以实现上述方法实施例提供的码率确定方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行以实现上述方法实施例提供的码率确定方法。
可选地,在本申请实施例中,存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例所述存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例所提供的码率确定方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图23是本申请实施例提供的一种码率确定方法的服务器的硬件结构框图。如图23所示,该服务器2300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)2310(中央处理器2310可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器2330,一个或一个以上存储应用程序2323或数据2322的存储介质2320(例如一个或一个以上海量存储设备)。其中,存储器2330和存储介质2320可以是短暂存储或持久存储。存储在存储介质2320的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器2310可以设置为与存储介质2320通信,在服务器2300上执行存储介质2320中的一系列指令操作。服务器2300还可以包括一个或一个以上电源2360,一个或一个以上有线或无线网络接口2350,一个或一个以上输入输出接口2340,和/或,一个或一个以上操作系统2321,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口2340可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器2300的通信供应商提供的无线网络。在一个实例中,输入输出接口2340包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口2340可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图23所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器2300还可包括比图23中所示更多或者更少的组件,或者具有与图23所示不同的配置。
由上述本申请提供的码率确定方法、装置、设备或存储介质的实施例可见,本申请获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;基于所述预设窗口以及所述预设距离,确定目标流量数据图;基于所述目标流量数据图,确定所述目标应用的当前预测带宽;基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。本申请通过构建预设窗口,实现了快速准确地确定目标流量数据图,从而准确预测待播放数据包分片的目标码率,保证目标应用中视频码率的自适应调整,从而保证直播过程中能够流畅、高效地播放视频。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种码率确定方法,其特征在于,所述方法包括:
获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;
基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;
基于所述预设窗口以及所述预设距离,确定目标流量数据图;
基于所述目标流量数据图,确定所述目标应用的当前预测带宽;
基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。
2.根据权利要求1所述的方法,其特征在于,所述基于所述预设窗口以及所述预设距离,确定目标流量数据图,包括:
将所述预设窗口作为当前窗口;
基于所述当前窗口对应的当前流量数据图,计算所述当前流量数据图的当前斜率;
将所述当前窗口沿所述流量数据图的预设坐标轴方向,移动所述预设距离,得到更新窗口,并将所述更新窗口重新作为所述当前窗口;
重复所述基于所述当前窗口对应的当前流量数据图,计算所述当前流量数据图的当前斜率;至所述将所述当前窗口沿所述流量数据图的预设坐标轴方向,移动所述预设距离,得到更新窗口,并将所述更新窗口重新作为所述当前窗口的步骤,直至所述更新窗口超出所述流量数据图的范围;
基于各个当前窗口对应的当前斜率,确定所述目标流量数据图。
3.根据权利要求2所述的方法,其特征在于,所述基于各个当前窗口对应的当前斜率,确定所述目标流量数据图,包括:
基于各个当前窗口对应的当前斜率的数值大小,对所述各个当前窗口进行排序;
基于排序结果,从所述各个当前窗口中确定当前目标窗口;
将所述流量数据图中所述当前目标窗口的对应部分,确定为所述目标流量数据图。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标流量数据图,确定所述目标应用的当前预测带宽,包括:
基于所述目标流量数据图,确定数据流量差值以及时间差值;
计算所述数据流量差值与所述时间差值的比值,得到流量时间比值;
基于所述流量时间比值,确定所述目标应用的当前预测带宽。
5.根据权利要求4所述的方法,其特征在于,所述当前数据包分片为至少两个,所述基于所述流量时间比值,确定所述目标应用的当前预测带宽,包括:
基于所述至少两个当前数据包分片各自对应的流量时间比值,构建流量时间比值图;
基于卡尔曼滤波算法,对所述流量时间比值图进行平滑处理,得到所述目标应用的当前预测带宽。
6.根据权利要求1所述的方法,其特征在于,所述基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率,包括:
确定所述当前预测带宽对应的预测码率;
获取所述目标应用中当前播放数据包分片的当前码率;
基于所述预测码率以及所述当前码率,确定所述目标应用中待播放数据包分片的目标码率。
7.根据权利要求6所述的方法,其特征在于,所述基于所述预测码率以及所述当前码率,确定所述目标应用中待播放数据包分片的目标码率,包括:
若所述预测码率大于所述当前码率,确定所述当前预测带宽与所述预测码率的第一比值;
若所述第一比值大于第一阈值,将所述预测码率确定为所述待播放数据包分片的目标码率。
8.根据权利要求7所述的方法,其特征在于,所述若所述预测码率大于所述当前码率,确定所述当前预测带宽与所述预测码率的第一比值,包括:
若所述预测码率大于所述当前码率,确定预设数据包分片的带宽预测状态;所述预设数据包分片为位于所述当前数据包分片之后的分片;
若所述预设数据包分片处于带宽预测完成状态,确定所述当前预测带宽与所述预测码率的第一比值。
9.根据权利要求6所述的方法,其特征在于,所述基于所述预测码率以及所述当前码率,确定所述目标应用中待播放数据包分片的目标码率,包括:
若所述预测码率小于所述当前码率,确定所述当前预测带宽与所述预测码率的第二比值;
若所述第二比值小于第二阈值,将所述预测码率确定为所述待播放数据包分片的目标码率。
10.根据权利要求6所述的方法,其特征在于,所述基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率之后,所述方法还包括:
基于所述当前播放数据包分片,确定至少两个候选数据包分片;所述至少两个候选数据包分片对应不同的分辨率,所述至少两个候选数据包分片对应同一直播数据流;
根据所述至少两个候选数据包分片各自对应的分辨率,筛选出与所述目标码率匹配的候选数据包分片,作为所述待播放数据包分片。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
获取预设直播数据流以及所述目标应用对应的设备分辨率;
基于所述设备分辨率,确定至少两个预设分辨率;
基于所述预设直播数据流,生成所述至少两个预设分辨率对应的候选数据包分片。
12.一种码率确定装置,其特征在于,所述装置包括:
流量数据图获取模块,用于获取当前处理的当前数据包分片在目标应用中的流量数据图;所述流量数据图表征所述当前数据包分片中数据流量与时间的对应关系;
预设窗口确定模块,用于基于所述流量数据图中的坐标数值范围,确定预设窗口以及预设距离;所述预设窗口基于所述流量数据图的起始坐标点确定;
目标流量数据图确定模块,用于基于所述预设窗口以及所述预设距离,确定目标流量数据图;
当前预测带宽确定模块,用于基于所述目标流量数据图,确定所述目标应用的当前预测带宽;
目标码率确定模块,用于基于所述当前预测带宽,确定所述目标应用中待播放数据包分片的目标码率。
13.一种码率确定设备,其特征在于,所述设备包括:处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-11任一所述的码率确定方法。
14.一种计算机存储介质,其特征在于,所述计算机存储介质存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-11任一所述的码率确定方法。
15.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现如权利要求1-11任一所述的码率确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210934610.3A CN117560522A (zh) | 2022-08-04 | 2022-08-04 | 码率确定方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210934610.3A CN117560522A (zh) | 2022-08-04 | 2022-08-04 | 码率确定方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117560522A true CN117560522A (zh) | 2024-02-13 |
Family
ID=89819173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210934610.3A Pending CN117560522A (zh) | 2022-08-04 | 2022-08-04 | 码率确定方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117560522A (zh) |
-
2022
- 2022-08-04 CN CN202210934610.3A patent/CN117560522A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106688239B (zh) | 视频下载方法、装置及系统 | |
US9060207B2 (en) | Adaptive video streaming over a content delivery network | |
EP2597885A1 (en) | Method and device for playing stream media video content | |
EP2974207B1 (en) | Playback stall avoidance in adaptive media streaming | |
CN110933517B (zh) | 码率切换方法、客户端和计算机可读存储介质 | |
CN111416989A (zh) | 视频直播方法、系统及电子设备 | |
US11856191B2 (en) | Method and system for real-time content-adaptive transcoding of video content on mobile devices to save network bandwidth during video sharing | |
US11621985B2 (en) | Chunk-based prediction adaptation logic | |
US20200351525A1 (en) | Communication apparatus, communication method, and computer-readable storage medium | |
CN110121100A (zh) | 媒体文件的下载方法、装置、终端和计算机可读存储介质 | |
JP2022036307A (ja) | クライアント、サーバ、受信方法及び送信方法 | |
CN105872615A (zh) | 一种视频传输码率调整方法及装置 | |
CN106105145B (zh) | 用于操作沿客户端终端和至少一个服务器之间的传输路径布置的缓存器的方法、及相应的缓存器 | |
KR20140023983A (ko) | 수신 비트율 및 연관된 수신기의 동적 적응 방법 | |
CN111031032A (zh) | 云端视频转码方法及装置、解码方法及装置、及电子设备 | |
CN106791860A (zh) | 一种自适应视频编码控制系统及方法 | |
CN117596232A (zh) | 流媒体快速启动方法、装置和系统 | |
CN110351606A (zh) | 媒体信息处理方法、相关设备及计算机存储介质 | |
CN113905257A (zh) | 视频码率切换方法、装置、电子设备及存储介质 | |
CN114374841B (zh) | 视频编码码率控制的优化方法、装置及电子设备 | |
EP2928145A1 (en) | Method for estimating a bandwidth associated with a connection between a client terminal and at least one server, corresponding client terminal | |
CN109769125B (zh) | 流媒体码率的动态调整方法、媒体服务器及转码服务器 | |
EP3113442A1 (en) | Method and server for improving quality in adaptive streaming delivery systems | |
CN108989905A (zh) | 媒体流控制方法、装置、计算设备及存储介质 | |
EP3354033B1 (en) | Dynamic seeking in video delivery systems |
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 |