CN109982118B - 一种视频码率自适应调整方法、装置及电子设备 - Google Patents
一种视频码率自适应调整方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109982118B CN109982118B CN201910236531.3A CN201910236531A CN109982118B CN 109982118 B CN109982118 B CN 109982118B CN 201910236531 A CN201910236531 A CN 201910236531A CN 109982118 B CN109982118 B CN 109982118B
- Authority
- CN
- China
- Prior art keywords
- code rate
- current
- neural network
- network model
- reinforcement learning
- 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
Links
Images
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/25—Management 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/266—Channel 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/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/4662—Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
- H04N21/4666—Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms using neural networks, e.g. processing the feedback provided by the user
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种视频码率自适应调整方法、装置及电子设备,其中,该方法包括:获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
Description
技术领域
本发明涉及视频处理技术领域,特别是涉及一种视频码率自适应调整方法、装置及电子设备。
背景技术
为了为用户提供高质量的视频服务,主流的媒体内容提供商在向用户提供视频时,通常是在视频播放过程中,由客户端根据客户端网络状态和/或客户端缓冲区长度,自适应的改变正在播放的视频的码率,然后从通信连接的服务器获取与改变后的码率对应的视频帧;
例如,当客户端带宽较高或客户端视频缓冲区长度较长时,提高正在播放的视频的码率,当客户端带宽较小或客户端视频缓冲区长度较短时,则降低正在播放的视频的码率;又例如,当客户端视频缓冲区长度较长时,根据客户端带宽的大小来调节正在播放的视频的码率,当客户端视频缓冲区长度较短时,则根据该客户端视频缓冲区的长短来调节正在播放的视频的码率。
然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
当多个客户端同时从该服务器获取高码率的视频帧时,该服务器需要使用较大的带宽来传输该高码率的视频帧,当从该服务器获取高码率视频帧的客户端的视频的码率增加时,会进一步增加该服务器的带宽的负载。
发明内容
本发明实施例的目的在于提供一种视频码率自适应调整方法、装置及电子设备,以实现依据服务器带宽负载调整客户端视频帧码率。具体技术方案如下:
在本发明实施的一个方面,本发明实施例提供了一种视频码率自适应调整方法,应用于服务器,该方法包括:
获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,网络信息包括:网络带宽,播放信息包括:当前缓冲区长度;
获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。
可选的,当前网络信息还包括:当前网络延迟以及当前网络地理信息,当前播放信息包括:当前客户端设备类型、当前播放视频、当前播放视频的码率、当前播放视频的卡顿信息。
可选的,该视频码率自适应调整方法,还包括:
将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率,包括:
可选的,在预设码率偏好值表中,查询与当前带宽负载、当前网络信息以及当前播放信息,对应的码率偏好值;其中,在码率偏好值表中,不同的带宽负载、不同的网络信息以及不同的播放信息,对应不同的码率偏好值;
将码率偏好值、当前网络信息以及当前播放信息,输入与当前视频对应的预先训练得到的码率调整神经网络模型,得到对客户端的码率进行调整的调整码率。
可选的,预先训练得到的码率调整神经网络模型为采用Actor-Critic算法进行强化学习,训练得到的神经网络模型。
可选的,码率偏好值大于或等于0,且小于或等于1;
可选的,预先训练与当前视频对应的码率调整神经网络模型,包括:
获取预先设置的与当前视频对应的训练样本和测试样本,其中,训练样本包括:码率偏好值训练样本、网络信息训练样本、播放信息训练样本,训练样本的播放信息包括:训练样本视频的码率、训练样本视频的卡顿时长;测试样本包括:码率偏好值测试样本、网络信息测试样本、播放信息测试样本,测试样本的播放信息包括:测试样本视频的码率、测试样本视频的卡顿时长;
采用训练样本对预先建立的码率调整神经网络模型进行n次强化学习和n+N次强化学习,得到第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,其中,n大于或等于0,当n=0时,第n次强化学习采用的码率调整神经网络模型为预先建立的码率调整神经网络模型,N大于或等于1;
将测试样本分别输入至第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,得到第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率和第n+N次强化学习后的码率调整神经网络模型输出的第二测试输出码率,其中,当所述n=0时,所述第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率,为所述预先建立的码率调整神经网络模型输出的输出码率;
获取当前视频的最大码率和最小码率,并根据最大码率、最小码率和码率偏好值,计算当前视频的目标码率;
根据所述第一测试输出码率、所述第二测试输出码率、所述测试样本视频的卡顿时长、所述测试样本视频的码率和所述当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
分别计算第n次强化学习的奖励rewardn的方差和均值,第n+N次强化学习的奖励rewardn+N的方差和均值;
当第n次强化学习的奖励rewardn的方差与第n+N次强化学习的奖励rewardn+N的方差的差值,在预设方差阈值范围内,且第n次强化学习的奖励rewardn的均值与第n+N次强化学习的奖励rewardn+N的均值的差值,在预设的均值阈值范围内时,将第n+N次强化学习后的码率调整神经网络模型作为预先训练得到的码率调整神经网络模型;
否则,采用训练样本对第n+N次强化学习后的码率调整神经网络模型进行第n+N+1次强化学习。
可选的,根据所述第一测试输出码率、所述第二测试输出码率、所述测试样本视频的卡顿时长、所述测试样本视频的码率和所述当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N,包括:
当第一测试输出码率小于目标码率时,采用如下公式:
rewardn=bitraten-rebuffer_time-|last_bitrate-bitraten|
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当第一测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当第二测试输出码率小于目标码率时,采用如下公式:
rewardn+N=bitraten+N-rebuffer_time-|last_bitrate-bitraten+N|
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
当第二测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
其中,n为大于1的自然数,bitraten为第一测试输出码率,bitraten+N为第二测试输出码率,rebuffer_time为测试样本视频的卡顿时长,last_bitrate为测试样本视频的码率,为目标码率。
在本发明实施的又一方面,还提供了一种视频码率自适应调整装置,应用于服务器,该装置包括:
获取模块,用于获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,网络信息包括:网络带宽,播放信息包括:当前缓冲区长度;
调整码率确定模块,用于获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。
可选的,当前网络信息还包括:当前网络延迟以及当前网络地理信息,当前播放信息包括:当前客户端设备类型、当前播放视频、当前播放视频的码率、当前播放视频的卡顿信息。
可选的,预先建立的码率调整模型,还包括:预设的码率偏好值表,
可选的,视频码率自适应调整装置,还包括:
码率偏好值查找模块,用于在预设码率偏好值表中,查询与当前带宽负载、当前网络信息以及当前播放信息,对应的码率偏好值;其中,在码率偏好值表中,不同的带宽负载、不同的网络信息以及不同的播放信息,对应不同的码率偏好值;
调整码率确定模块,具体用于将码率偏好值、当前网络信息以及当前播放信息,输入与当前视频对应的预先训练得到的码率调整神经网络模型,得到对客户端的码率进行调整的调整码率。
可选的,预先训练得到的码率调整神经网络模型为采用Actor-Critic算法进行强化学习,训练得到的神经网络模型。
可选的,码率偏好值大于或等于0,且小于或等于1;
可选的,该码率自适应装置还包括:码率调整神经网络模型训练模块,码率调整神经网络模型训练模块,包括:
样本获取子模块,用于获取预先设置的与当前视频对应的训练样本和测试样本,其中,训练样本包括:码率偏好值训练样本、网络信息训练样本、播放信息训练样本,训练样本的播放信息包括:训练样本视频的码率、训练样本视频的卡顿时长;测试样本包括:码率偏好值测试样本、网络信息测试样本、播放信息测试样本,测试样本的播放信息包括:测试样本视频的码率、测试样本视频的卡顿时长;
强化学习子模块,用于采用训练样本对预先建立的码率调整神经网络模型进行n次强化学习和n+N次强化学习,得到第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,其中,n大于或等于0,当n=0时,第n次强化学习采用的码率调整神经网络模型为预先建立的码率调整神经网络模型,N大于或等于1;
测试样本输入子模块,用于将测试样本分别输入至第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,得到第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率和第n+N次强化学习后的码率调整神经网络模型输出的第二测试输出码率,其中,当所述n=0时,所述第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率,为所述预先建立的码率调整神经网络模型输出的输出码率;
目标码率计算子模块,用于获取当前视频的最大码率和最小码率,并根据最大码率、最小码率和码率偏好值,计算当前视频的目标码率;
奖励计算子模块,用于根据所述第一测试输出码率、所述第二测试输出码率、所述测试样本视频的卡顿时长、所述测试样本视频的码率和所述当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
方差计算子模块,用于分别计算第n次强化学习的奖励rewardn的方差和均值,第n+N次强化学习的奖励rewardn+N的方差和均值;当第n次强化学习的奖励rewardn的方差与第n+N次强化学习的奖励rewardn+N的方差的差值,在预设方差阈值范围内,且第n次强化学习的奖励rewardn的均值与第n+N次强化学习的奖励rewardn+N的均值的差值,在预设的均值阈值范围内时,触发码率调整神经网络模型确定子模块,否则,触发强化学习子模块,执行采用训练样本对第n+N次强化学习后的码率调整神经网络模型进行第n+N+1次强化学习的动作;
码率调整神经网络模型确定子模块,用于将第n+N次强化学习后的码率调整神经网络模型作为预先训练得到的码率调整神经网络模型。
可选的,奖励计算子模块,具体用于:
当第一测试输出码率小于目标码率时,采用如下公式:
rewardn=bitraten-rebuffer_time-|last_bitrate-bitraten|
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当第一测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当第二测试输出码率小于目标码率时,采用如下公式:
rewardn+N=bitraten+N-rebuffer_time-|last_bitrate-bitraten+N|
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
当第二测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
其中,n为大于1的自然数,bitraten为第一测试输出码率,bitraten+N为第二测试输出码率,rebuffer_time为测试样本视频的卡顿时长,last_bitrate为测试样本视频的码率,为目标码率。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的视频码率自适应调整方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频码率自适应调整方法。
本发明实施例提供的一种视频码率自适应调整方法、装置及电子设备,在对客户端的当前播放的视频的码率进行调整时,可以获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,然后获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率,进而可以根据该对客户端的码率进行调整的调整码率,调整该客户端正在播放的视频的码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例的一种视频播放系统的结构示意图;
图2为本发明实施例的一种视频码率自适应调整方法第一种实施方式的流程图;
图3为本发明实施例的一种视频码率自适应调整方法第二种实施方式的流程图;
图4为本发明实施例中预先训练与当前视频对应的码率调整神经网络模型的流程图;
图5为本发明实施例的一种视频码率自适应调整方法应用于服务器时的信令交互示意图;
图6为本发明实施例的一种视频码率自适应调整装置的结构示意图;
图7为本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了解决现有技术存在的问题,本发明实施例提供了一种视频码率自适应调整方法、装置及电子设备,以实现降低客户端视频帧码率改变对服务器带宽负载的影响。
首先对本发明实施例的一种视频自适应调整方法的应用场景进行介绍,如图1所示,为本发明实施例的一种视频播放系统的结构示意图,该视频播放系统可以包括多个客户端110和服务器120。该服务器120可以是应用本发明实施例的一种视频码率自适应调整方法的服务器。
该服务器120在对任一客户端110的播放码率进行调整时,可以先从客户端获取播放当前视频时的当前网络信息和当前播放信息,然后获取该服务器120自身的当前带宽负载,再将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
下面,对本发明实施例的一种视频码率自适应调整方法进行介绍,该方法可以应用于为客户端提供视频的服务器中,如图2所示,为本发明实施例的一种视频码率自适应调整方法第一种实施方式的流程图,该方法可以包括:
S210,获取客户端发送的播放当前视频时的当前网络信息和当前播放信息。
其中,网络信息可以包括:网络带宽,播放信息可以包括:当前缓冲区长度。
在一些示例中,上述的服务器可以周期性的对客户端正在播放的视频码率进行调整,此时,该服务器可以向待调整视频码率的客户端发送信息获取请求,以获取该客户端的当前网络信息和当前播放信息。
在一些示例中,与服务器通信连接的待调整视频码率的客户端也可以主动向服务器发送码率调整请求,该码率调整请求中可以携带有该待调整视频码率的客户端播放当前视频时的当前网络信息和当前播放信息。
在一些示例中,该服务器可以同时与多个客户端通信连接,并向该多个客户端发送不同的视频流,上述的待调整视频码率的客户端可以是该多个客户端中的任一个客户端。
S220,获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。
其中,该当前带宽负载可以是该服务器当前向与该服务器通信连接的多个客户端发送不同视频流时所使用的总带宽。
上述的服务器在接收到客户端发送的当前网络信息和当前播放信息,为了为该客户端确定出合适的码率,以便客户端根据该码率进行码率调整,该服务器可以获取自身的当前带宽负载,然后可以将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。
在一些示例中,当该预先建立的码率调整模型中包括预先训练得到的码率调整神经网络模型时,该服务器可以将该当前带宽负载、当前网络信息以及当前播放信息,输入预先训练得到的码率调整神经网络模型,该预先训练得到的码率调整神经网络模型可以输出对该客户端的码率进行调整的调整码率。
在一些示例中,该预先训练得到的码率调整神经网络模型可以是深度卷积神经网络模型。该预先训练得到的码率调整神经网络模型,可以采用带宽负载样本、网络信息样本、播放信息样本以及对应的调整码率样本进行训练得到。
通过本发明实施例的一种视频码率自适应调整方法,在对客户端的当前播放的视频的码率进行调整时,可以获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,然后获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率,进而可以根据该对客户端的码率进行调整的调整码率,调整该客户端正在播放的视频的码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
在一些示例中,为了为客户端提供更精确的调整码率,上述的当前网络信息还包括:当前网络延迟以及当前网络地理信息,当前播放信息包括:当前客户端设备类型、当前播放视频、当前播放视频的码率、当前播放视频的卡顿信息。
在一些示例中,该网络地理信息为该客户端使用网络播放当前视频时的位置信息,例如,该位置信息可以为农村或边远山区。
在一些示例中,预先建立的码率调整模型,还可以包括:码率偏好值表,对此,在图2所示的一种视频码率自适应调整方法的基础上,本发明实施例还提供了一种可能的实现方式,如图3所示,为本发明实施例的一种视频码率自适应调整方法第二种实施方式的流程图,在S210,获取客户端发送的播放当前视频时的当前网络信息和当前播放信息之后,该视频码率自适应调整方法,可以包括:
S221,在码率偏好值表中,查询与当前带宽负载、当前网络信息以及当前播放信息,对应的码率偏好值。
其中,在码率偏好值表中,不同的带宽负载、不同的网络信息以及不同的播放信息,对应不同的码率偏好值。
表1 码率偏好值表
在一些示例中,可以预先在上述的服务器中设置一个码率偏好值表,如表1所示,为包括带宽负载、网络信息、播放信息以及码率偏好值的码率偏好值表,该网络信息可以包括:网络带宽、网络延迟、网络地理信息,该网络带宽中可以设置不同的带宽值,该网络延迟中也可以设置不同的网络延迟值,该播放信息可以包括:缓冲区长度、客户端设备类型、播放视频、播放视频的码率、播放视频的卡顿信息等。应当理解的是,不同的客户端设备,所支持的码率不同,一些客户端设备可以播放较高码率的视频,一些客户端设备可以播放较低码率的视频。
通过在该码率偏好值表中进行查找,可以查找到与与当前带宽负载、当前网络信息以及当前播放信息,对应的码率偏好值。该码率偏好值可以反映出该客户端播放视频时的视频码率的偏好,这样,可以为后续步骤确定客户端的调整码率提供参考。并且,该码率偏好值的选择还依据了服务器的带宽负载,从而在后续步骤中确定调整码率时,能够充分考虑服务器的带宽负载。
S222,将码率偏好值、当前网络信息以及当前播放信息,输入与当前视频对应的预先训练得到的码率调整神经网络模型,得到对客户端的码率进行调整的调整码率。
上述的服务器在得到码率偏好值后,可以将码率偏好值、当前网络信息以及当前播放信息,输入与当前视频对应的预先训练得到的码率调整神经网络模型,得到对客户端的码率进行调整的调整码率。
在一些示例中,该预先训练得到的码率调整神经网络模型,还可以是采用码率偏好值样本、网络信息样本、播放信息样本以及对应的调整码率样本进行训练得到的。
在又一些示例中,还可以在上述的服务器中预先设置网络地理信息与地理评分表,该预先设置的网络地理信息与地理评分表中可以包含多个网络地理信息,以及对应的地理评分。
例如,如表2所示,为网络地理信息与地理评分表,该网络地理信息与地理评分表中可以包括不同的地理位置以及与该不同地理位置对应的地理评分。
表2 网络地理信息与地理评分表
网络地理信息 | 地理评分 | 网络地理信息 | 地理评分 |
北京市 | 10.00 | 烟台市 | 5.00 |
杭州市 | 9.00 | 兰州市 | 4.00 |
苏州市 | 8.00 | 锦州市 | 3.00 |
郑州市 | 7.00 | 六盘水市 | 2.00 |
昆明市 | 6.00 | 防城港市 | 1.00 |
例如,网络地理信息为“北京”时,对应的地理评分为“10.00”,网络地理信息为“郑州”时,对应的地理评分为“6.00”。在一些示例中,表2中仅为简要的示例性的说明,各个不同地理评分之间还可以包括多个评分,例如,地理评分“10.00”与地理评分“9.00”之间还可以包括地理评分“9.01~9.99”以及与各个地理评分对应的网络地理信息。
上述的服务器可以在该预设的网络地理信息与地理评分表中查找与当前网络地理信息对应的地理评分;
在一些示例中,还可以在上述的服务器中,预先设置客户端设备类型与客户端设备评分表,该客户端设备类型与客户端设备评分表中可以包括不同类型的客户端设备以及与该客户端设备对应的客户端设备评分。
上述的服务器可以在该预先设置的客户端设备类型与客户端设备评分表中国,查找与当前客户端设备类型对应的客户端设备评分。
上述的服务器在得到与当前网络地理信息对应的地理评分和与当前客户端设备类型对应的客户端设备评分后,可以将包含与当前客户端设备类型对应的客户端设备评分的当前网络信息、包含与当前客户端设备类型对应的客户端设备评分的当前播放信息以及当前带宽负载,输入与当前视频对应的预先建立的码率调整模型中,从而可以得到对客户端的码率进行调整的调整码率。
在一些示例中,该预先训练得到的码率调整神经网络模型可以是采用Actor-Critic算法进行强化学习,训练得到的神经网络模型。
下面,对预先训练与该当前视频对应的码率调整神经网络模型的过程进行介绍,如图4所示,为本发明实施例中预先训练与当前视频对应的码率调整神经网络模型的流程图,该预先训练与当前视频对应的码率调整神经网络模型的过程,可以包括:
S410,获取预先设置的与当前视频对应的训练样本和测试样本。
其中,训练样本包括:码率偏好值训练样本、网络信息训练样本、播放信息训练样本,训练样本的播放信息包括:训练样本视频的码率、训练样本视频的卡顿时长;测试样本包括:码率偏好值测试样本、网络信息测试样本、播放信息测试样本,测试样本的播放信息包括:测试样本视频的码率、测试样本视频的卡顿时长;
在一些示例中,为了对预先建立的码率调整神经网络模型进行训练,可以预先在该服务器中设置训练使用的与当前视频对应的训练样本。因此,该服务器可以从本地获取到预先设置的与当前视频对应的训练样本。
在又一些示例中,为了对训练得到的码率调整神经网络模型进行测试,可以预先在该服务器中设置测试使用的与当前视频对应的测试样本,因此,该服务器可以从本地获取到预先设置的与当前视频对应的测试样本。
S420,采用训练样本对预先建立的码率调整神经网络模型进行n次强化学习和n+N次强化学习,得到第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型。
其中,n大于或等于0,当n=0时,第n次强化学习采用的码率调整神经网络模型为预先建立的码率调整神经网络模型,第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率,为预先建立的码率调整神经网络模型输出的输出码率,N大于或等于1;
在一些示例中,在训练与当前视频对应的码率调整神经网络模型时,可以通过多次训练来得到该与当前视频对应的码率调整神经网络模型,例如,可以训练100次、1000次等。
因此,当进行第1次训练时,上述的服务器可以将预先建立的码率调整神经网络模型作为第0次强化学习后的码率调整神经网络模型,进而可以将上述的训练样本输入到预先建立的码率调整神经网络模型,可以得到该预先建立的码率调整神经网络模型输出的第0次输出码率,然后可以对该预先建立的码率调整神经网络模型进行第1次调整,并将该第一次强化学习后的码率调整神经网络模型作为第1次强化学习后的码率调整神经网络模型,上述的服务器可以将上述的训练样本输入该第1次强化学习后的码率调整神经网络模型,从而可以得到第1次强化学习后的码率调整神经网络模型输出的第1次输出码率。
重复上述步骤,直至对该预先建立的码率调整神经网络模型进行n次强化学习和n+N次强化学习,从而可以得到第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型。
在一些示例中,在采用上述的Actor-Critic算法作为本发明实施例的预先建立的码率调整神经网络模型时,该Actor-Critic算法可以在每次输出码率后,可以对自身的参数进行调整。
S430,将测试样本分别输入至第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,得到第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率和第n+N次强化学习后的码率调整神经网络模型输出的第二测试输出码率。
S440,获取当前视频的最大码率和最小码率,并根据最大码率、最小码率和码率偏好值,计算当前视频的目标码率。
S450,根据第一测试输出码率、第二测试输出码率、测试样本视频的卡顿时长、测试样本视频的码率和当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
在一些示例中,为了确定该第n+N次强化学习后的码率调整神经网络模型是否可以作为最终可以使用的码率调整神经网络模型,上述的服务器可以将测试样本分别输入至第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,这样,第n次强化学习后的码率调整神经网络模型可以输出一个输出码率,也即第一测试输出码率,第n+N次强化学习后的码率调整神经网络模型也可以输出一个码率,也即第二测试输出码率。
然后可以计算该第一测试码率对应的第n次强化学习的奖励rewardn和第二测试输出码率对应的第n+N次强化学习的奖励rewardn+N,当rewardn+N的方差与rewardn的方差的差值较小,且rewardn+N的均值与rewardn的均值的差值较小,则可以认为该第n+N次强化学习的奖励rewardn+N处于稳定状态,则可以将该第n+N次强化学习后的码率调整神经网络模型作为最终可以使用的码率调整神经网络模型,也即,可以作为预先训练得到的码率调整神经网络模型,否则,则需要继续进行强化学习,也即将上述的训练样本输入到第n+N次强化学习后的码率调整神经网络模型中进行强化学习。
在一些示例中,上述的服务器可以首先获取当前视频的最大码率和最小码率,并根据最大码率、最小码率和码率偏好值,计算当前视频的目标码率。然后可以依据该目标码率与第一测试输出码率计算第n次强化学习的奖励rewardn,可以依据该目标码率与第二测试输出码率计算第n+N次强化学习的奖励rewardn+N。
在又一些示例中,该码率偏好值也可以是大于或等于0,且小于或等于1的数。
在又一些示例中,上述的服务器在计算当前视频的目标码率时,可以采用如下公式:
目标码率=(最大码率-最小码率)*码率偏好值+最小码率
计算该当前视频的目标码率。
在一些示例中,上述的服务器在根据第一测试输出码率、第二测试输出码率、测试样本视频的卡顿时长、测试样本视频的码率和当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N时,可以采用如下步骤进行计算:
步骤A,当第一测试输出码率小于目标码率时,采用如下公式:
rewardn=bitraten-rebuffer_time-|last_bitrate-bitraten|
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
步骤B,当第一测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
步骤C,当第二测试输出码率小于目标码率时,采用如下公式:
rewardn+N=bitraten+N-rebuffer_time-|last_bitrate-bitraten+N|
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
步骤D,当第二测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
其中,n为大于1的自然数,bitraten为第一测试输出码率,bitraten+N为第二测试输出码率,rebuffer_time为测试样本视频的卡顿时长,last_bitrate为测试样本视频的码率,为目标码率。
在又一些示例中,上述的服务器在确定该奖励是否处于稳定状态时,可以将第n次强化学习的奖励rewardn与第n+N次强化学习的奖励rewardn+N进行比较,例如,可以通过执行后续步骤S460~S470来确定该奖励是否处于稳定状态。
S460,分别计算第n次强化学习的奖励rewardn的方差和均值,第n+N次强化学习的奖励rewardn+N的方差和均值。
S470,判断第n次强化学习的奖励rewardn的方差与第n+N次强化学习的奖励rewardn+N的方差的差值,是否在预设方差阈值范围内,且第n次强化学习的奖励rewardn的均值与第n+N次强化学习的奖励rewardn+N的均值的差值,是否在预设的均值阈值范围内;如果是,执行步骤S470,否则,执行步骤S480;
在一些示例中,该预设方差阈值范围可以是根据经验预先设置的范围值,例如,可以设置为[方差阈值1,方差阈值2],在又一些示例中,该均值阈值范围也可以是根据经验预先设置的范围值,例如,可以设置为[均值阈值1,均值阈值2]。
当该第n次强化学习的奖励rewardn的方差与第n+N次强化学习的奖励rewardn+N的方差的差值,处于该预设方差阈值范围内,且该第n次强化学习的奖励rewardn的均值与第n+N次强化学习的奖励rewardn+N的均值的差值,也处于该均值阈值范围内时,则可以说明该第n+N次强化学习的奖励rewardn+N处于稳定状态,则可以执行步骤S480,从而可以得到预先训练得到的码率调整神经网络模型。否则,则说明该第n+N次强化学习的奖励rewardn+N还不能作为最终可以使用的码率调整神经网络模型,此时,可以执行步骤S490,即,进行第n+N+1次强化学习。
S480,将第n+N次强化学习后的码率调整神经网络模型作为预先训练得到的码率调整神经网络模型;
S490,采用训练样本对第n+N次强化学习后的码率调整神经网络模型进行第n+N+1次强化学习。
在一些示例中,在进行第n+N+1次强化学习后,可以继续进行强化学习,直至进行到第n+2N次强化学习,然后对第n+2N次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,执行与步骤S430~S470相似的步骤,以确定第n+2N次强化学习后的码率调整神经网络模型是否可以作为预先训练得到的码率调整神经网络模型。
通过上述的训练步骤,可以预先训练得到最终可以使用的码率调整神经网络模型。进而可以采用该预先训练得到的码率调整神经网络模型,得到对该客户端播放的当前视频的码率进行调整的调整码率。
为了更清楚的说明本发明实施例,这里结合客户端与服务器之间的信令交互图进行说明,如图5所示,为本发明实施例的一种视频码率自适应调整方法应用于服务器时的信令交互示意图。该交互过程可以为如下的过程:
S510,获取自身播放当前视频时的当前网络信息和当前播放信息。
在一些示例中,客户端在播放视频时,可以从服务器获取到该正在播放的视频的视频流。此时,该服务器可以向该正在播放视频的客户端发送一个信息获取请求,以获取该客户端的当前网络信息和当前播放信息。
该客户端在接收到该信息获取请求后,可以对自身当前的网络信息进行检测,从而可以得到该客户端播放当前视频时的当前网络信息。
在一些示例中,该客户端还可以实时记录自身播放当前视频时的播放信息,因此,该客户端可以从自身获取到播放当前视频时的当前播放信息。
该客户端在获取到自身播放当前视频时的当前网络信息和当前播放信息后,可以执行步骤S520,发送自身播放当前视频时的当前网络信息和当前播放信息至服务器。
S530,获取自身当前带宽负载。
该服务器在接收到该客户端发送的当前网络信息和当前播放信息后,为了为该客户端确定出合适的调整码率,可以先获取自身当前带宽负载。
S540,在预设码率偏好值表中,查询与当前带宽负载、当前网络信息以及当前播放信息,对应的码率偏好值。
S550,将码率偏好值、当前网络信息以及当前播放信息,输入与当前视频对应的预先训练得到的码率调整神经网络模型,得到对客户端的码率进行调整的调整码率。
S560,发送调整码率至客户端。
该服务器在获取到自身当前带宽负载后,可以先在预设码率偏好值表中,查询与当前带宽负载、当前网络信息以及当前播放信息,对应的码率偏好值,然后将该查询得到的码率偏好值、客户端发送的当前网络信息以及当前播放信息,输入与当前视频对应的预先训练得到的码率调整神经网络模型,这样,可以得到对客户端的码率进行调整的调整码率。最后,该服务器可以将得到的对客户端的码率进行调整的调整码率发送至客户端,以便客户端根据该调整码率调整自身正在播放的视频的播放码率。
这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率,进而可以根据该对客户端的码率进行调整的调整码率,调整该客户端正在播放的视频的码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
相应于上述的方法实施例,本发明实施例还提供了一种视频码率自适应调整装置,可以应用于为客户端提供视频的服务器中,如图6所示,为本发明实施例的一种视频码率自适应调整装置的结构示意图,该装置可以包括:
获取模块610,用于获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,网络信息包括:网络带宽,播放信息包括:当前缓冲区长度;
调整码率确定模块620,用于获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。
本发明实施例提供的一种视频码率自适应调整装置,在对客户端的当前播放的视频的码率进行调整时,可以获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,然后获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率,进而可以根据该对客户端的码率进行调整的调整码率,调整该客户端正在播放的视频的码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
在一些示例中,当前网络信息还包括:当前网络延迟以及当前网络地理信息,当前播放信息包括:当前客户端设备类型、当前播放视频、当前播放视频的码率、当前播放视频的卡顿信息。
在一些示例中,预先建立的码率调整模型,还包括:预设的码率偏好值表,
在一些示例中,该视频码率自适应调整装置,还可以包括:
码率偏好值查找子模块,用于在预设码率偏好值表中,查询与当前带宽负载、当前网络信息以及当前播放信息,对应的码率偏好值;其中,在码率偏好值表中,不同的带宽负载、不同的网络信息以及不同的播放信息,对应不同的码率偏好值;
调整码率确定模块620,具体用于将码率偏好值、当前网络信息以及当前播放信息,输入与当前视频对应的预先训练得到的码率调整神经网络模型,得到对客户端的码率进行调整的调整码率。
在一些示例中,预先训练得到的码率调整神经网络模型为采用Actor-Critic算法进行强化学习,训练得到的神经网络模型。
在一些示例中,码率偏好值大于或等于0,且小于或等于1;
在一些示例中,该码率自适应装置还包括:码率调整神经网络模型训练模块,码率调整神经网络模型训练模块,包括:
样本获取子模块,用于获取预先设置的与当前视频对应的训练样本和测试样本,其中,训练样本包括:码率偏好值训练样本、网络信息训练样本、播放信息训练样本,训练样本的播放信息包括:训练样本视频的码率、训练样本视频的卡顿时长;测试样本包括:码率偏好值测试样本、网络信息测试样本、播放信息测试样本,测试样本的播放信息包括:测试样本视频的码率、测试样本视频的卡顿时长;
强化学习子模块,用于采用训练样本对预先建立的码率调整神经网络模型进行n次强化学习和n+N次强化学习,得到第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,其中,n大于或等于0,当n=0时,第n次强化学习采用的码率调整神经网络模型为预先建立的码率调整神经网络模型,N大于或等于1;
测试样本输入子模块,用于将测试样本分别输入至第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,得到第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率和第n+N次强化学习后的码率调整神经网络模型输出的第二测试输出码率,其中,当n=0时,第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率,为预先建立的码率调整神经网络模型输出的输出码率;
目标码率计算子模块,用于获取当前视频的最大码率和最小码率,并根据最大码率、最小码率和码率偏好值,计算当前视频的目标码率;
奖励计算子模块,用于根据第一测试输出码率、第二测试输出码率、测试样本视频的卡顿时长、测试样本视频的码率和当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
方差计算子模块,用于分别计算第n次强化学习的奖励rewardn的方差和均值,第n+N次强化学习的奖励rewardn+N的方差和均值;当第n次强化学习的奖励rewardn的方差与第n+N次强化学习的奖励rewardn+N的方差的差值,在预设方差阈值范围内,且第n次强化学习的奖励rewardn的均值与第n+N次强化学习的奖励rewardn+N的均值的差值,在预设的均值阈值范围内时,触发码率调整神经网络模型确定子模块,否则,触发强化学习子模块,执行采用训练样本对第n+N次强化学习后的码率调整神经网络模型进行第n+N+1次强化学习的动作;
码率调整神经网络模型确定子模块,用于将第n+N次强化学习后的码率调整神经网络模型作为预先训练得到的码率调整神经网络模型。
在一些示例中,奖励计算子模块,具体用于:
当第一测试输出码率小于目标码率时,采用如下公式:
rewardn=bitraten-rebuffer_time-|last_bitrate-bitraten|
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当第一测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当第二测试输出码率小于目标码率时,采用如下公式:
rewardn+N=bitraten+N-rebuffer_time-|last_bitrate-bitraten+N|
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
当第二测试输出码率大于或等于目标码率时,采用如下公式:
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
其中,n为大于1的自然数,bitraten为第一测试输出码率,bitraten+N为第二测试输出码率,rebuffer_time为测试样本视频的卡顿时长,last_bitrate为测试样本视频的码率,为目标码率。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,网络信息包括:网络带宽,播放信息包括:当前缓冲区长度;
获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率,其中,预先建立的码率调整模型包括预先训练得到的码率调整神经网络模型。
本发明实施例提供的一种电子设备,在对客户端的当前播放的视频的码率进行调整时,可以获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,然后获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率,进而可以根据该对客户端的码率进行调整的调整码率,调整该客户端正在播放的视频的码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如下步骤:
获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,网络信息包括:网络带宽,播放信息包括:当前缓冲区长度;
获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率,其中,预先建立的码率调整模型包括预先训练得到的码率调整神经网络模型。
本发明实施例提供的一种计算机可读存储介质,在对客户端的当前播放的视频的码率进行调整时,可以获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,然后获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率,进而可以根据该对客户端的码率进行调整的调整码率,调整该客户端正在播放的视频的码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如下步骤:
获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,网络信息包括:网络带宽,播放信息包括:当前缓冲区长度;
获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率,其中,预先建立的码率调整模型包括预先训练得到的码率调整神经网络模型。
本发明实施例提供的一种包含指令的计算机程序产品,在对客户端的当前播放的视频的码率进行调整时,可以获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,然后获取服务器的当前带宽负载,并将当前带宽负载、当前网络信息以及当前播放信息,输入与当前视频对应的预先建立的码率调整模型中,得到对客户端的码率进行调整的调整码率。这样,可以依据该服务器的当前带宽负载、当前网络信息以及当前播放信息,得到对客户端的码率进行调整的调整码率,进而可以根据该对客户端的码率进行调整的调整码率,调整该客户端正在播放的视频的码率。从而可以综合考虑与该服务器通信连接的多个客户端对该服务器的带宽负载的影响和该客户端的当前网络信息以及当前播放信息,来调整该客户端正在播放的视频的码率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (11)
1.一种视频码率自适应调整方法,其特征在于,应用于服务器,所述方法包括:
获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,所述网络信息包括:网络带宽,所述播放信息包括:当前缓冲区长度;
在预设码率偏好值表中,查询与所述当前带宽负载、所述当前网络信息以及所述当前播放信息,对应的码率偏好值;其中,在所述码率偏好值表中,不同的带宽负载、不同的网络信息以及不同的播放信息,对应不同的码率偏好值;
获取所述服务器的当前带宽负载,并将所述码率偏好值、所述当前网络信息以及所述当前播放信息,输入与所述当前视频对应的预先训练得到的码率调整神经网络模型,得到对所述客户端的码率进行调整的调整码率。
2.根据权利要求1所述的方法,其特征在于,所述当前网络信息还包括:当前网络延迟以及当前网络地理信息,所述当前播放信息包括:当前客户端设备类型、当前播放视频、所述当前播放视频的码率、当前播放视频的卡顿信息。
3.根据权利要求1所述的方法,其特征在于,所述预先训练得到的码率调整神经网络模型为采用Actor-Critic算法进行强化学习,训练得到的神经网络模型。
4.根据权利要求3所述的方法,其特征在于,所述码率偏好值大于或等于0,且小于或等于1;预先训练与所述当前视频对应的所述码率调整神经网络模型,包括:
获取预先设置的与所述当前视频对应的训练样本和测试样本,其中,所述训练样本包括:码率偏好值训练样本、网络信息训练样本、播放信息训练样本,训练样本的播放信息包括:训练样本视频的码率、训练样本视频的卡顿时长;所述测试样本包括:码率偏好值测试样本、网络信息测试样本、播放信息测试样本,测试样本的播放信息包括:测试样本视频的码率、测试样本视频的卡顿时长;
采用所述训练样本对预先建立的码率调整神经网络模型进行n次强化学习和n+N次强化学习,得到第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,其中,所述n大于或等于0,当n=0时,所述第n次强化学习采用的码率调整神经网络模型为所述预先建立的码率调整神经网络模型,所述N大于或等于1;
将所述测试样本分别输入至所述第n次强化学习后的码率调整神经网络模型和所述第n+N次强化学习后的码率调整神经网络模型,得到所述第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率和所述第n+N次强化学习后的码率调整神经网络模型输出的第二测试输出码率,其中,当所述n=0时,所述第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率,为所述预先建立的码率调整神经网络模型输出的输出码率;
获取所述当前视频的最大码率和最小码率,并根据所述最大码率、所述最小码率和所述码率偏好值,计算所述当前视频的目标码率;
根据所述第一测试输出码率、所述第二测试输出码率、所述测试样本视频的卡顿时长、所述测试样本视频的码率和所述当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
分别计算所述第n次强化学习的奖励rewardn的方差和均值,所述第n+N次强化学习的奖励rewardn+N的方差和均值;
当所述第n次强化学习的奖励rewardn的方差与所述第n+N次强化学习的奖励rewardn+N的方差的差值,在预设方差阈值范围内,且所述第n次强化学习的奖励rewardn的均值与所述第n+N次强化学习的奖励rewardn+N的均值的差值,在预设的均值阈值范围内时,将所述第n+N次强化学习后的码率调整神经网络模型作为所述预先训练得到的码率调整神经网络模型;
否则,采用所述训练样本对所述第n+N次强化学习后的码率调整神经网络模型进行第n+N+1次强化学习。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一测试输出码率、所述第二测试输出码率、所述测试样本视频的卡顿时长、所述测试样本视频的码率和所述当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N,包括:
当所述第一测试输出码率小于所述目标码率时,采用如下公式:
rewardn=bitraten-rebuffer_time-|last_bitrate-bitraten|
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当所述第一测试输出码率大于或等于所述目标码率时,采用如下公式:
计算对所述预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当所述第二测试输出码率小于所述目标码率时,采用如下公式:
rewardn+N=bitraten+N-rebuffer_time-|last_bitrate-bitraten+N|
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
当所述第二测试输出码率大于或等于所述目标码率时,采用如下公式:
计算对所述预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
6.一种视频码率自适应调整装置,其特征在于,应用于服务器,所述装置包括:
获取模块,用于获取客户端发送的播放当前视频时的当前网络信息和当前播放信息,其中,所述网络信息包括:网络带宽,所述播放信息包括:当前缓冲区长度;
码率偏好值查找模块,用于在预设码率偏好值表中,查询与所述当前带宽负载、所述当前网络信息以及所述当前播放信息,对应的码率偏好值;其中,在所述码率偏好值表中,不同的带宽负载、不同的网络信息以及不同的播放信息,对应不同的码率偏好值;
调整码率确定模块,用于获取所述服务器的当前带宽负载,并将所述码率偏好值、所述当前网络信息以及所述当前播放信息,输入与所述当前视频对应的预先训练得到的码率调整神经网络模型,得到对所述客户端的码率进行调整的调整码率。
7.根据权利要求6所述的装置,其特征在于,所述当前网络信息还包括:当前网络延迟以及当前网络地理信息,所述当前播放信息包括:当前客户端设备类型、当前播放视频、所述当前播放视频的码率、当前播放视频的卡顿信息。
8.根据权利要求6所述的装置,其特征在于,所述预先训练得到的码率调整神经网络模型为采用Actor-Critic算法进行强化学习,训练得到的神经网络模型。
9.根据权利要求8所述的装置,其特征在于,所述码率偏好值大于或等于0,且小于或等于1;所述装置还包括:码率调整神经网络模型训练模块,所述码率调整神经网络模型训练模块,包括:
样本获取子模块,用于获取预先设置的与所述当前视频对应的训练样本和测试样本,其中,所述训练样本包括:码率偏好值训练样本、网络信息训练样本、播放信息训练样本,训练样本的播放信息包括:训练样本视频的码率、训练样本视频的卡顿时长;所述测试样本包括:码率偏好值测试样本、网络信息测试样本、播放信息测试样本,测试样本的播放信息包括:测试样本视频的码率、测试样本视频的卡顿时长;
强化学习子模块,用于采用所述训练样本对预先建立的码率调整神经网络模型进行n次强化学习和n+N次强化学习,得到第n次强化学习后的码率调整神经网络模型和第n+N次强化学习后的码率调整神经网络模型,其中,所述n大于或等于0,当n=0时,第n次强化学习采用的码率调整神经网络模型为所述预先建立的码率调整神经网络模型,所述N大于或等于1;
测试样本输入子模块,用于将所述测试样本分别输入至所述第n次强化学习后的码率调整神经网络模型和所述第n+N次强化学习后的码率调整神经网络模型,得到所述第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率和所述第n+N次强化学习后的码率调整神经网络模型输出的第二测试输出码率,其中,当所述n=0时,所述第n次强化学习后的码率调整神经网络模型输出的第一测试输出码率,为所述预先建立的码率调整神经网络模型输出的输出码率;
目标码率计算子模块,用于获取所述当前视频的最大码率和最小码率,并根据所述最大码率、所述最小码率和所述码率偏好值,计算所述当前视频的目标码率;
奖励计算子模块,用于根据所述第一测试输出码率、所述第二测试输出码率、所述测试样本视频的卡顿时长、所述测试样本视频的码率和所述当前视频的目标码率,计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn和对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
方差计算子模块,用于分别计算所述第n次强化学习的奖励rewardn的方差和均值,所述第n+N次强化学习的奖励rewardn+N的方差和均值;当所述所述第n次强化学习的奖励rewardn的方差与所述第n+N次强化学习的奖励rewardn+N的方差的差值,在预设方差阈值范围内,且所述第n次强化学习的奖励rewardn的均值与所述第n+N次强化学习的奖励rewardn+N的均值的差值,在预设的均值阈值范围内时,触发码率调整神经网络模型确定子模块,否则,触发强化学习子模块,执行采用训练样本对所述第n+N次强化学习后的码率调整神经网络模型进行第n+N+1次强化学习的动作;
所述码率调整神经网络模型确定子模块,用于将所述第n+N次强化学习后的码率调整神经网络模型作为所述预先训练得到的码率调整神经网络模型。
10.根据权利要求9所述的装置,其特征在于,所述奖励计算子模块,具体用于:
当所述第一测试输出码率小于所述目标码率时,采用如下公式:
rewardn=bitraten-rebuffer_time-|last_bitrate-bitraten|
计算对预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当所述第一测试输出码率大于或等于所述目标码率时,采用如下公式:
计算对所述预先建立的码率调整神经网络模型进行第n次强化学习的奖励rewardn;
当所述第二测试输出码率小于所述目标码率时,采用如下公式:
rewardn+N=bitraten+N-rebuffer_time-|last_bitrate-bitraten+N|
计算对预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
当所述第二测试输出码率大于或等于所述目标码率时,采用如下公式:
计算对所述预先建立的码率调整神经网络模型进行第n+N次强化学习的奖励rewardn+N;
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910236531.3A CN109982118B (zh) | 2019-03-27 | 2019-03-27 | 一种视频码率自适应调整方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910236531.3A CN109982118B (zh) | 2019-03-27 | 2019-03-27 | 一种视频码率自适应调整方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109982118A CN109982118A (zh) | 2019-07-05 |
CN109982118B true CN109982118B (zh) | 2021-05-14 |
Family
ID=67080880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910236531.3A Active CN109982118B (zh) | 2019-03-27 | 2019-03-27 | 一种视频码率自适应调整方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109982118B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511482A (zh) * | 2019-09-16 | 2021-03-16 | 华为技术有限公司 | 媒体数据传输方法、装置及系统 |
CN111031387B (zh) * | 2019-11-21 | 2020-12-04 | 南京大学 | 一种监控视频发送端视频编码流速控制的方法 |
CN114449282B (zh) * | 2019-12-26 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 视频传输控制方法及装置、设备、存储介质 |
CN111405327B (zh) * | 2020-04-03 | 2022-12-09 | 广州市百果园信息技术有限公司 | 网络带宽预测模型训练方法、视频数据播放方法及装置 |
CN111669627B (zh) * | 2020-06-30 | 2022-02-15 | 广州市百果园信息技术有限公司 | 一种视频码率的确定方法、装置、服务器和存储介质 |
CN113518250B (zh) * | 2020-08-07 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种多媒体数据处理方法、装置、设备及可读存储介质 |
CN112511844B (zh) * | 2020-11-10 | 2021-08-17 | 北京大学 | 一种基于360度视频流的传输方法及系统 |
CN112383791B (zh) * | 2020-11-12 | 2023-07-21 | 咪咕视讯科技有限公司 | 一种媒体数据处理方法、装置、电子设备和存储介质 |
CN112543366A (zh) * | 2020-12-02 | 2021-03-23 | 北京五八信息技术有限公司 | 一种视频的播放方法和装置 |
CN112911408B (zh) * | 2021-01-25 | 2022-03-25 | 电子科技大学 | 基于深度学习的智能视频码率调整及带宽分配方法 |
CN113014968B (zh) * | 2021-02-24 | 2022-02-08 | 南京大学 | 一种基于强化学习的多用户动态码率视频传输方法及系统 |
CN115037986B (zh) * | 2021-03-04 | 2023-06-06 | 北京字跳网络技术有限公司 | 视频的自适应播放方法及设备 |
CN114024906B (zh) * | 2021-10-13 | 2022-06-17 | 北京邮电大学 | 优化视频传输用户体验质量的流量控制方法、装置和系统 |
CN114979799A (zh) * | 2022-05-20 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 一种全景视频处理方法、装置、设备和存储介质 |
CN115002557B (zh) * | 2022-05-23 | 2024-01-30 | 北京字跳网络技术有限公司 | 一种网速预测方法、装置、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016123721A1 (en) * | 2015-02-07 | 2016-08-11 | Zhou Wang | Method and system for smart adaptive video streaming driven by perceptual quality-of-experience estimations |
CN106060605B (zh) * | 2016-05-25 | 2019-03-26 | 清华大学深圳研究生院 | 一种基于cdn的直播流自适应方法和系统 |
CN106162233B (zh) * | 2016-07-08 | 2019-12-31 | 合一网络技术(北京)有限公司 | 码率推荐方法及装置 |
-
2019
- 2019-03-27 CN CN201910236531.3A patent/CN109982118B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109982118A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109982118B (zh) | 一种视频码率自适应调整方法、装置及电子设备 | |
US10997229B2 (en) | Content recommendation system | |
US11228794B2 (en) | Method, computer device, and storage medium for media code rate self-adaptation | |
EP3585007B1 (en) | System and method for use of a media content bot in a social messaging environment | |
KR102020764B1 (ko) | 복수의 최대 비트레이트 레벨들을 사용하여 인코딩된 비디오를 인코딩하고 스트리밍하기 위한 시스템들 및 방법들 | |
JP2018185841A (ja) | メディアアセットに関するコンテクスト上関係する情報を表示するための方法およびシステム | |
US20170330556A1 (en) | Two-stage training of a spoken dialogue system | |
CN106604078B (zh) | 一种网络视频推荐方法及装置 | |
CN101499914B (zh) | 一种组播系统的父节点选择方法、系统及节点 | |
US11706491B2 (en) | Deep reinforcement learning for personalized screen content optimization | |
US10909174B1 (en) | State detection of live feed | |
CN110809167B (zh) | 一种视频播放方法、装置、电子设备及存储介质 | |
JP2008287210A5 (zh) | ||
US11849079B2 (en) | Systems and methods to generate metadata for content | |
US20210279222A1 (en) | Dynamic Buffer Lookahead in Adaptive Streaming Using Machine Learning | |
CN113676754A (zh) | 直播视频转码方法及装置 | |
CN105245562A (zh) | 操作高速缓存器的方法以及对应的高速缓存器 | |
CN112752117A (zh) | 一种视频缓存方法、装置、设备及存储介质 | |
JP6857098B2 (ja) | 情報処理装置 | |
US10743085B2 (en) | Automatic annotation of audio-video sequences | |
EP3427440A1 (en) | Method and scoring node for estimating a user's quality of experience for a delivered service | |
EP2925002A1 (en) | System and method for predictive buffering and network shaping | |
US11621929B2 (en) | Chat bot utilizing metaphors to both relay and obtain information | |
CN110139160B (zh) | 一种预测系统及方法 | |
US20140129507A1 (en) | Information processing device, information processing method and program |
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 |