CN109819333A - 视频流码率分配方法、装置及计算机可读存储介质 - Google Patents
视频流码率分配方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109819333A CN109819333A CN201910025892.3A CN201910025892A CN109819333A CN 109819333 A CN109819333 A CN 109819333A CN 201910025892 A CN201910025892 A CN 201910025892A CN 109819333 A CN109819333 A CN 109819333A
- Authority
- CN
- China
- Prior art keywords
- code rate
- resolution ratio
- sent
- video flowing
- rate
- 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.)
- Granted
Links
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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/437—Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
-
- 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/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
-
- 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/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种视频流码率分配方法、装置及计算机可读存储介质,其中方法包括:接收来自接收端的订阅信息;其中,所述订阅信息包括订阅视频流的分辨率;获取当前的上行码率;根据所述订阅信息与所述上行码率,确定待发送视频流的分辨率和对应的码率;根据已确定的码率,将所述待发送视频流发送给所述接收端。本发明有利于降低视频源端编码负担,且避免上行带宽资源的浪费。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种视频流码率分配方法、装置及计算机可读存储介质。
背景技术
源端视频在进行多播时,往往需要支持发送多路的视频流,例如发送分辨率为180p、360p、720p和1080p的视频流。发明人在实施现有技术时发现至少存在如下问题:如果默认源端将支持的多路视频全部发送至服务器,接收端再根据需求从服务器获取对应的视频流,这样一方面会增加源端的编码负担,另一方面每路视频流从源端发送到服务器端接收,源端发送的过程会占用源端的上行带宽,服务器接收的过程会占用服务器端的下行带宽,非需求的视频流会占用源端和服务器端的带宽,造成带宽资源的浪费。
发明内容
本发明的目的是提供一种视频流码率分配方法、装置及计算机可读存储介质,有利于降低视频源端编码负担,且避免上行带宽资源的浪费。
为了解决上述技术问题,本发明提供一种视频流码率分配方法,包括:
接收来自接收端的订阅信息;其中,所述订阅信息包括订阅视频流的分辨率;
获取当前的上行码率;
根据所述订阅信息与所述上行码率,确定待发送视频流的分辨率和对应的码率;
根据已确定的码率,将所述待发送视频流发送给所述接收端。
本发明实施例提供的一种视频流码率分配方法,能够根据接收端的订阅请求和发送端自身的上行码率,确定当前需要发送到接收端的视频流的分辨率,以及分配适应的码率,从而只需生成所需分辨率的待发送视频流,以及根据确定的码率发送视频流,满足接收端的订阅需求的同时,解决了现有技术中需要生成以及发送所有分辨率的视频流,从而降低视频源端编码负担,避免上行带宽资源的浪费。
进一步的,所述接收端包括若干个,则所述确定待发送视频流的分辨率包括:
确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率。
作为进一步方案,本发明根据不同接收端的订阅请求和发送端自身的上行码率,为不同的接收端分配合理的视频流,从而在满足接收端的订阅需求的同时,避免造成上行码率的浪费。
进一步的,所述确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率具体包括:
根据所述订阅信息和所述上行码率,并基于发送每一分辨率的视频流所需的最低码率、目标码率和最高码率,确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率。
作为进一步方案,考虑了不同分辨率的视频流所需的最低码率、目标码率和最高码率,来确定若干待发送视频流的分辨率和分配给每一分辨率的待发送视频流的码率,可以实现保证待发送视频流的最低码率,同时也可以根据最低码率、目标码率和最高码率来实现待发送视频流的码率的合理分配。
进一步的,所述确定待发送视频流的若干分辨率具体包括:
根据每一所述接收端订阅的视频流的分辨率的需求,并以满足待确定的若干分辨率的所述待发送视频流的最低码率为目标,确定所述上行码率所能够支持的若干分辨率作为所述待发送视频流的分辨率。
进一步的,所述确定所述上行码率所能够支持的分辨率作为所述待发送视频流的分辨率包括:
按照从低到高的顺序,依次选取所述订阅信息中每一订阅视频流的分辨率,并
对于每一选取的订阅视频流的分辨率,判断选取的订阅视频流的分辨率的最低码率是否不大于所述上行码率当前剩余的码率,若是,则将所述选取的请求订阅的分辨率确定为待发送订阅层,若否,则在数值低于选取的订阅视频流分辨率的分辨率中,将最低码率满足所述上行码率当前剩余的码率的最高分辨率作为所述待发送视频流的分辨率。
进一步的,所述分配给每一分辨率的待发送视频流的码率具体包括:
给所述每一分辨率的待发送视频流分配最低码率;
获取所述上行码率给每一分辨率的待发送视频流分配最低码率后剩余的码率为所述第一剩余码率;
若所述第一剩余码率大于零,则以满足所述待发送视频流的目标码率为目标,按照预设顺序将所述第一剩余码率依次给每一所述待发送视频流分配码率;
获取所述第一剩余码率以满足所述待发送视频流的目标码率为目标进行分配后剩余的码率为第二剩余码率;
若所述第二剩余码率大于零,则以满足所述待发送视频流的最高码率为目标,按照预设顺序将所述第二剩余码率依次给每一分辨率的所述待发送视频流分配码率。
进一步的,所述确定所述上行码率所能够支持的分辨率作为所述待发送视频流的分辨率和给每一所述待发送的分辨率分配最低码率包括:
S311、判断是否已按照分辨率从低到高的顺序依次选取过所述订阅信息中的每一分辨率,若是,则跳转至步骤S316,若否,则转至步骤S312;
S312、按照分辨率从低到高的顺序,从所述订阅信息中选取出下一订阅视频流的分辨率作为当前分辨率;
S313、判断所述当前分辨率是否已分配最低码率,若是,则返回步骤S311,若否,则转至步骤S314;
S314、判断所述上行码率所剩余的码率是否不小于所述当前分辨率的最低码率,若是,则确定所述当前分辨率为所述待发送视频流的分辨率,并分配给所述当前分辨率对应的最低码率,同时更新所述上行码率所剩余的码率,并跳转至步骤S311;若否,则转至步骤S315;
S315、判断支持发送的分辨率中是否存在分辨率低于所述当前分辨率的下一分辨率,若是,则将选取所述下一层分辨率作为当前分辨率并执行步骤S313,若否,则转至步骤S316;
S316、结束所述确定所述上行码率所能够支持的分辨率作为所述待发送的分辨率,并给每一所述待发送视频流的分辨率分配最低码率。
进一步的,所述以满足所述待发送的分辨率的目标码率为目标,按照分辨率从高到低的顺序将所述第一剩余码率依次给每一所述待发送视频流的分辨率分配码率包括:
S341、判断是否已按照分辨率从高到低的顺序依次选取过所有确定的所述待发送视频流的分辨率,若是,则转至步骤S334,若否,则转至步骤S342;
S342、按照分辨率从高到低的顺序,从所有确定的所述待发送视频流的分辨率中选取出下一当前待发送的分辨率;
S343、判断所述第一剩余码率当前剩余的码率和所述当前待发送的分辨率的已分配到的最低码率的和是否大于所述当前待发送的分辨率的目标码率,若是,则将所述第一剩余码率中部分码率分配给所述当前待发送的分辨率,以使所述当前待发送的分辨率分配的码率达到目标码率,更新所述第一剩余码率当前剩余的码率,并转至步骤S341;若否,则将所述第一剩余码率当前剩余的码率的全部分配给所述当前待发送视频流的分辨率,更新所述第一剩余码率当前剩余的码率,并转至步骤S334;
S334、结束所述以满足所述待发送视频流的分辨率的目标码率为目标,按照分辨率从高到低的顺序将所述第一剩余码率依次给每一所述待发送的分辨率分配码率。
进一步的,所述以满足所述待发送视频流的分辨率的最高码率为目标,按照分辨率从高到低的顺序将所述第二剩余码率依次给每一所述待发送视频流的分辨率分配码率包括:
S361、判断是否已按照分辨率从高到低的顺序依次选取过所有确定的所述待发送视频流的分辨率,若是,则转至步骤S364,若否,则转至步骤S362;
S362、按照分辨率从高到低的顺序,从确定的所有所述待发送视频流的分辨率中选取出下一当前待发送视频流的分辨率;
S363、判断所述第一剩余码率当前剩余的码率和所述当前待发送视频流的分辨率的当前分配到的码率的和是否大于所述当前待发送的分辨率的最大码率,若是,则将所述第二剩余码率中部分码率分配给所述当前待发送的分辨率,以使所述当前待发送视频流的分辨率分配的码率达到最大码率,更新所述第二剩余码率当前剩余的码率,并转至步骤S361;若否,则将所述第二剩余码率当前剩余的码率的全部分配给所述当前待发送的分辨率;
S364、结束所述以满足所述待发送视频流的分辨率的最高码率为目标,按照分辨率从高到低的顺序将所述第二剩余码率依次给每一所述待发送的分辨率分配码率。
进一步的,所述接收来自接收端订阅信息包括:
接收由服务器汇总并转发的若干接收端的订阅信息;
则将所述待发送视频流发送给所述接收端包括:
将所述待发送视频流发送给所述服务器,以使所述服务器将每一分辨率的待发送视频流发送给对应的接收端。
相应的,本发明实施例还提供一种视频流码率分配装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的视频流码率分配方法。
相应的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的视频流码率分配方法。
附图说明
图1是本发明实施例中的视频流码率分配方法的流程图;
图2是本发明实施例中的视频流码率分配方法的时序图;
图3是本发明实施例中的步骤S3的流程图;
图4是本发明实施例中的步骤S31的实际应用流程图;
图5是本发明实施例中的步骤S33的实际应用流程图;
图6是本发明实施例中的步骤S35的实际应用流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明优选实施例1提供的视频流码率分配方法,本实施例包括下述步骤:
S1、接收来自接收端的订阅信息;其中,所述订阅信息包括订阅视频流的分辨率;
S2、获取当前的上行码率;
S3、根据所述订阅信息与所述上行码率,确定待发送视频流的分辨率和对应的码率;
S4、根据已确定的码率,将所述待发送视频流发送给所述接收端。
本发明实施例提供的一种视频流码率分配方法,能够根据接收端的订阅请求和发送端自身的上行码率,确定当前需要发送到接收端的视频流的分辨率,以及分配适应的码率,从而只需生成所需分辨率的待发送视频流,以及根据确定的码率发送视频流,满足接收端的订阅需求的同时,解决了现有技术中需要生成以及发送所有分辨率的视频流,从而降低视频源端编码负担,避免上行带宽资源的浪费。
可以理解的是,此处上行码率上传视频流的码率。具体,上行码率优选为结合丢包、延时、抖动等进行预估而获得的码率,基本能够反映上行的带宽状况。
具体的,所述接收端包括若干个,则:
步骤S1中所述订阅请求统计信息包括统计的若干接收端所请求订阅的分辨率的信息;
步骤S3中所述确定待发送视频流的分辨率包括:确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率。
本发明能够根据接收端的订阅请求和发送端自身的上行码率,为不同的接收端分配合理的视频流,从而在满足接收端的订阅需求的同时,避免造成上行码率的浪费。
在本发明实施例中,优选的,每一所述接收端所请求订阅的分辨率为每一所述接收端所能接收的最高分辨率的视频流;除此之外,每一所述接收端所请求订阅的分辨率还可以为用户优选设置的需要接受的分辨率。
本实施例适用于发送端,该发送端为视频流的来源处,在本发明中也称为视频源端。本领域人员可以理解的是,发送端和接收端可选择生成/请求的视频流的分辨率不是任意值,而是若干固定值,比如分辨率为180p、360p、720p和1080p的视频流。
进一步的,本实施例的工作环境中还包括服务器,具体的,由服务器统计来自于接收端的所请求订阅的分辨率的信息,对接收到的分辨率的信息进行统计,并将统计信息发送至发送端,以获取到对应的分辨率的视频流;则步骤S1具体包括:
S1、接收由所述服务器发送的订阅请求统计信息,其中,所述订阅请求统计信息包括由服务器统计的若干接收端所请求订阅的分辨率的信息;
则步骤S4具体为:将所述待发送视频流发送给服务器;当服务器接收到所述待发送的分辨率的视频流后,根据所述接收端所请求订阅的分辨率的信息,将若干所述待发送的分辨率的视频流转发至对应的接收端。
如图2所示,例如,在本发明实施例中,由于服务器向发送端的订阅请求统计信息一般是统计了不同接收端所期望的最高分辨率的视频流信息。例如,接收端1的带宽能够支持源端180P的视频流,于是向服务器请求订阅发送端180P的视频,接收端2的带宽能够支持源端360P的视频流,于是向服务器请求订阅源端360P的视频流。服务器会统计接收方1和接收方2的订阅请求信息,然后向发送端订阅180P和360P的视频流,发送端根据服务器的订阅请求统计信息以及自身的上行码率的情况,给每一分辨率的视频流分配码率,如果上行码率充足,则会给180P和360P都分配码率,从而给服务器发送180P和360P的视频流,服务器会把发送端的180P转发给接收端1,把360P转发给接收端2,以为不同接收端分别合理码率的视频流。假如上行码率并不足以支持同时发送180P和360P的视频流,则向服务器发送180P的视频流,从而给服务器发送180P的视频流给接收端1和接收端2。
进一步的,步骤S3具体包括:根据所述订阅信息和所述上行码率,并基于发送每一分辨率的视频流所需的最低码率确定、目标码率和最高码率,确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率。
其中,发送每一所述分辨率的视频流,如分辨率为180p、360p、720p和1080p的视频流,均预设有对应的最低码率、目标码率和最高码率;所述最低码率为所述待发送的分辨率所需要的最低码率,所述目标码率为所述待发送的分辨率所期望的理想码率,所述最大码率为所述待发送的分辨率所能接收的最大码率。
步骤S3中确定待发送视频流的若干分辨率具体包括:
S31、根据每一所述接收端订阅的视频流的分辨率的需求,并以满足待确定的若干分辨率的所述待发送视频流的最低码率为目标,确定所述上行码率所能够支持的若干分辨率作为所述待发送视频流的分辨率。
具体步骤S31中确定所述上行码率所能够支持的分辨率作为所述待发送视频流的分辨率包括:
按照从低到高的顺序,依次选取所述订阅信息中每一订阅视频流的分辨率,并
对于每一选取的订阅视频流的分辨率,判断选取的订阅视频流的分辨率的最低码率是否不大于所述上行码率当前剩余的码率,若是,则将所述选取的请求订阅的分辨率确定为待发送订阅层,若否,则在数值低于选取的订阅视频流分辨率的分辨率中,将最低码率满足所述上行码率当前剩余的码率的最高分辨率作为所述待发送视频流的分辨率。
步骤S3中分配给每一分辨率的待发送视频流的码率具体包括:
S32、给每一所述待发送的分辨率分配最低码率;
S33、获取所述上行码率给每一所述待发送的分辨率分配最低码率后剩余的码率为所述第一剩余码率;
S34、若所述第一剩余码率大于零,则以满足所述待发送的分辨率的目标码率为目标,按照预设顺序将所述第一剩余码率依次给每一所述待发送的分辨率分配码率;
S35、获取所述第一剩余码率以满足分辨率的目标码率为目标进行分配后剩余的码率为第二剩余码率;
S36、若所述第二剩余码率大于零,则以满足所述待发送的分辨率的最高码率为目标,按照预设顺序将所述第二剩余码率依次给每一所述待发送的分辨率分配码率。
优选的,出于保证高分辨率的视频流的质量,所述步骤S34和步骤S36中的预设顺序为分辨率从高到低的顺序。
为了给所述待发送视频流分配合理的最低码率,所述步骤S31和S32具体包括:
S311、判断是否已按照分辨率从低到高的顺序依次选取过所述订阅请求统计信息中的每一分辨率,若是,则跳转至步骤S316,若否,则转至步骤S312;
需要说明的是,当每次开始步骤S31和S32时,初始从步骤S311开始,且默认从未选取过所述订阅请求统计信息中的分辨率;
S312、按照分辨率从低到高的顺序,从所述订阅请求统计信息中选取出下一请求订阅的分辨率作为当前分辨率;
S313、判断所述当前分辨率是否已分配最低码率,若是,则返回步骤S311,若否,则转至步骤S314;
S314、判断所述上行码率所剩余的码率是否不小于所述当前分辨率的最低码率,若是,则确定所述当前分辨率为所述待发送的分辨率,并分配给所述当前分辨率对应的最低码率,同时更新所述上行码率所剩余的码率,并跳转至步骤S311;若否,则转至步骤S315;
S315、判断是否支持发送的分辨率存在分辨率低于所述当前分辨率的下一分辨率,若是,则将选取所述下一分辨率作为当前分辨率并执行步骤S313,若否,则转至步骤S316;
需要说明的是,本发明的步骤S315中所述的支持发送的分辨率为该视频源端/发送端中能够发送的分辨率,如常见的提供180p、360p、720p和1080p的分辨率。该步骤能保证当分辨率无法发送的时候,能够通过选低层的分辨率的视频流来满足订阅需求。
S316、结束所述确定所述上行码率所能够支持的分辨率作为所述待发送的分辨率,并给每一所述待发送的分辨率分配最低码率。
在本发明实施例中,所述步骤S31的主要目的是在尽可能满足所述待发送的分辨率的订阅需求的基础上,确认所述上行码率能够支持订阅哪些分辨率。其中,尽可能满足所述待发送的分辨率的订阅需求的原则是:首先考虑所述接收端请求订阅的分辨率,如果所述上行码率无法支持所述接收端请求订阅的分辨率,则优先考虑较所述接收端请求订阅的分辨率低一级分辨率的层,如果依然无法满足,则继续考虑更低一级分辨率的层,直到较低分辨率的层已经分配有码率或者没有较低级的层。此外,判断当前上行码率支持哪些分辨率时,从订阅列表的低分辨率开始,判断剩余码率是否大于等于该层的最低码率,如果满足,则给该层分配对应的最低码率,同时更新剩余码率,继续遍历订阅列表。如果不满足,则在尽可能满足订阅需求的基础上给较低的层分配码率。
为了给所述待发送的分辨率分配合理的目标码率,以优先保证高分辨的视频流发出的视频质量,所述步骤S34具体包括:
S341、判断是否已按照分辨率从高到低的顺序依次选取过所有确定的所述待发送的分辨率,若是,则转至步骤S334,若否,则转至步骤S342;
S342、按照分辨率从高到低的顺序,从所有确定的所述待发送的分辨率中选取出下一当前待发送的分辨率;
S343、判断所述第一剩余码率当前剩余的码率和所述当前待发送的分辨率的当前分配到的码率的和是否大于所述当前待发送的分辨率的目标码率,若是,则将所述第一剩余码率中部分码率分配给所述当前待发送的分辨率,以使所述当前待发送的分辨率分配的码率达到目标码率,更新所述第一剩余码率当前剩余的码率,并转至步骤S341;若否,则将所述第一剩余码率当前剩余的码率的全部分配给所述当前待发送的分辨率,更新所述第一剩余码率当前剩余的码率,并转至步骤S334;
S344、结束所述以满足所述待发送的分辨率的目标码率为目标,按照分辨率从高到低的顺序将所述第一剩余码率依次给每一所述待发送的分辨率分配码率。
为了给所述待发送的分辨率分配合理的最高码率,以优先保证高分辨订阅层发出的视频质量,所述步骤S36包括:
S361、判断是否已按照分辨率从高到低的顺序依次选取过所有确定的所述待发送的分辨率,若是,则转至步骤S364,若否,则转至步骤S362;
S362、按照分辨率从高到低的顺序,从确定的所有所述待发送的分辨率中选取出下一当前待发送的分辨率;
S363、判断所述第一剩余码率当前剩余的码率和所述当前待发送的分辨率的当前分配到的码率的和是否大于所述当前待发送的分辨率的最大码率,若是,则将所述第二剩余码率中部分码率分配给所述当前待发送的分辨率,以使所述当前待发送的分辨率分配的码率达到最大码率,更新所述第二剩余码率当前剩余的码率,并转至步骤S361;若否,则将所述第二剩余码率当前剩余的码率的全部分配给所述当前待发送的分辨率;
S364、结束所述以满足所述待发送的分辨率的最高码率为目标,按照分辨率从高到低的顺序将所述第二剩余码率依次给每一所述待发送的分辨率分配码率。
为更好地理解上述内容,以下述例子进一步说明:参见图4~图6,作为本发明的一个实际应用,假设分辨率包括有:180,360,720,1080;假设每一分辨率的最低码率、目标码率、最高码率设置如下:
//180,360,720,1080
constexpr uint32_t minBitrate[4]={30000,200000,600000,800000};//最低码率
constexpr uint32_t targetBitrate[4]={100000,300000,1000000,2000000};//目标码率
constexpr uint32_t maxBitrate[4]={200000,700000,1800000,3000000};//最高码率
示例1:当服务器向发送端订阅180P的视频流,即subscribeLayers=[180],发送端的上行码率为bitrate=40k。
第一轮:
从低分辨率开始遍历subscribeLayers,取layer=180。因为bitrate>minBitrate[180],所以isAllocated[layer]=true,即分辨率180P有足够的码率分配,分辨率180P确定为待发送的视频流的分辨率,bitrateAllocate[layer]=minBitrate[180]=30k,bitrate=bitrate-minBitrate[180]=10k。继续遍历subscribeLayers,发现遍历完成,返回。其中,subscribeLayers表示订阅请求中的若干分辨率,bitrate表示当前的上行码率。
第二轮:
simulcast支持的分辨率为supportedLayers=[180,360,720],从高分辨率开始遍历supportedLayers,发现只有layer=180时,isAllocated[layer]=true,于是给该层分配码率。由于bitrate+bitrateAllocated=10k+30k=40k,小于targetBitrate[layer]=100k,于是给该层分配40k的码率,剩余码率bitrate=0,直接返回。其中,simulcast支持的分辨率表示所确定的待发送的视频流的分辨率。
第三轮:
bitrate=0,直接返回。
示例2:服务器向发送端订阅180P+720P视频,即subscribeLayers=[180,720],发送端的上行码率为bitrate=600k。
第一轮:
从低分辨率开始遍历subscribeLayers,首先取layer=180。因为bitrate>minBitrate[180],所以isAllocated[180]=true,bitrateAllocate[180]=30k,bitrate=600k-30k=570k。
为180P分辨率分配最低码率后,继续遍历subscribeLayers,取layer=720。因为bitrate=570k<minBitrate[720]=600k,因此不给720P订阅层分配码率。同时判断存在比720P低的订阅层lowerLayers=[180,360]。
从高往低遍历lowerLayers,取lowerLayer=360,因为bitrate=570>minBitrate[360]=200k,因此给360P分配码率,isAllocated[360]=true,bitrateAllocate[360]=200k,bitrate=570k-200k=370k。返回。
第二轮:
simulcast支持的订阅层为supportedLayers=[180,360,720,1080],从高分辨率开始遍历supportedLayers,1080P订阅层和720P订阅层的isAllocated为false,直接跳过。继续从高分辨率往低分辨率遍历,取layer=360时,发现isAllocated[360]=true,同时,由于bitrateAllocate[360]+bitrate=570k>targetBitrate[360]=300k,因此给360P分配bitrateAllocate[360]=300k,剩余码率bitrate=570k-300k=270k。
继续遍历,取layer=180P时,发现isAllocated[180]=true,由于bitrateAllocate[180]+bitrate=30k+270k=300k>targetBitrate[180]=100k,因此给180P订阅层分配bitrateAllocated[180]=100k,剩余码率bitrate=300k-100k=200k。
继续,发现遍历完成,返回。
第三轮:
重复第二轮的过程,取layer=360P时,发现isAllocated[360]=true,由于bitrateAllocate[360]+bitrate=500k<maxBitrate[360]=700k,因此给360P订阅层分配bitrateAllocate[360]=500k,剩余码率bitrate=0k。
结束,返回。
上述示例所示意的数据和程序语言仅为示例说明,并不对本发明的保护范围进行限制。
一种示例,本实施例可以适用于多人视频会议场景,一参与者在发送自己的场景视频时作为发送端,其它参与者则相对作为接收端,接收端和发送端均连接至同一服务器,通过本实施例,接收端可以将订阅请求通过服务器发送至接收端,接收端根据订阅请求和自身的上行码率情况确定场景视频需要生成哪些分辨率的视频流,以及分配到的码率。
本发明一实施例2还提供一种视频流码率分配装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的视频流码率分配方法。
该实施例的视频流码率分配装置包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个视频流码率分配方法实施例中的步骤,例如图1所示的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述视频流码率分配装置中的执行过程,例如:
统计信息接收单元,用于接收订阅请求统计信息;其中,所述订阅请求统计信息包括由服务器统计的若干接收端所请求订阅的分辨率的信息;
上行码率获取单元,用于获取当前的上行码率;
待发送的分辨率确定单元,用于根据所述订阅请求统计信息与所述上行码率,确定待发送的分辨率和分配给每一所述待发送的分辨率的码率;
发送单元,用于将分配有所述码率的所述待发送的分辨率的视频流发送给所述服务器。
所述视频流码率分配装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述视频流码率分配装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述说明仅仅是视频流码率分配装置的示例,并不构成对视频流码率分配装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述视频流码率分配装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述视频流码率分配装置的控制中心,利用各种接口和线路连接整个视频流码率分配装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述视频流码率分配装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述视频流码率分配装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
此外,为了解决相同的技术问题,本发明实施例3还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的视频流码率分配方法。
综上,本发明实施例提供的一种视频流码率分配方法、装置及计算机可读存储介质,通过接收订阅请求统计信息;其中,所述订阅请求统计信息包括由服务器统计的若干接收端所请求订阅的分辨率的信息;获取当前的上行码率;根据所述订阅请求统计信息与所述上行码率,确定待发送的分辨率和分配给每一所述待发送的分辨率的码率;将分配有所述码率的所述待发送的分辨率的视频流发送给所述服务器。本发明能够根据接收端的订阅请求和发送端自身的上行码率,为不同的接收端分配合理的视频流,从而在满足接收端的订阅需求的同时,避免造成上行码率的浪费。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (12)
1.一种视频流码率分配方法,其特征在于,包括:
接收来自接收端的订阅信息;其中,所述订阅信息包括订阅视频流的分辨率;
获取当前的上行码率;
根据所述订阅信息与所述上行码率,确定待发送视频流的分辨率和对应的码率;
根据已确定的码率,将所述待发送视频流发送给所述接收端。
2.如权利要求1所述的一种视频流码率分配方法,其特征在于,所述接收端包括若干个,则所述确定待发送视频流的分辨率包括:
确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率。
3.如权利要求2所述的视频流码率分配方法,其特征在于,所述确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率具体包括:
根据所述订阅信息和所述上行码率,并基于发送每一分辨率的视频流所需的最低码率确定、目标码率和最高码率,确定待发送视频流的若干分辨率和分配给每一分辨率的待发送视频流的码率。
4.如权利要求3所述的视频流码率分配方法,其特征在于,所述确定待发送视频流的若干分辨率具体包括:
根据每一所述接收端订阅的视频流的分辨率的需求,并以满足待确定的若干分辨率的所述待发送视频流的最低码率为目标,确定所述上行码率所能够支持的若干分辨率作为所述待发送视频流的分辨率。
5.如权利要求4所述的视频流码率分配方法,其特征在于,所述确定所述上行码率所能够支持的分辨率作为所述待发送视频流的分辨率包括:
按照从低到高的顺序,依次选取所述订阅信息中每一订阅视频流的分辨率,并
对于每一选取的订阅视频流的分辨率,判断选取的订阅视频流的分辨率的最低码率是否不大于所述上行码率当前剩余的码率,若是,则将所述选取的请求订阅的分辨率确定为待发送订阅层,若否,则在数值低于选取的订阅视频流分辨率的分辨率中,将最低码率满足所述上行码率当前剩余的码率的最高分辨率作为所述待发送视频流的分辨率。
6.如权利要求4所述的视频流码率分配方法,其特征在于,所述分配给每一分辨率的待发送视频流的码率具体包括:
给所述每一分辨率的待发送视频流分配最低码率;
获取所述上行码率给每一分辨率的待发送视频流分配最低码率后剩余的码率为所述第一剩余码率;
若所述第一剩余码率大于零,则以满足所述待发送视频流的目标码率为目标,按照预设顺序将所述第一剩余码率依次给每一所述待发送视频流分配码率;
获取所述第一剩余码率以满足所述待发送视频流的目标码率为目标进行分配后剩余的码率为第二剩余码率;
若所述第二剩余码率大于零,则以满足所述待发送视频流的最高码率为目标,按照预设顺序将所述第二剩余码率依次给每一分辨率的所述待发送视频流分配码率。
7.如权利要求6所述的视频流码率分配方法,其特征在于,所述确定所述上行码率所能够支持的分辨率作为所述待发送视频流的分辨率和给每一所述待发送的分辨率分配最低码率包括:
S311、判断是否已按照分辨率从低到高的顺序依次选取过所述订阅信息中的每一分辨率,若是,则跳转至步骤S316,若否,则转至步骤S312;
S312、按照分辨率从低到高的顺序,从所述订阅信息中选取出下一订阅视频流的分辨率作为当前分辨率;
S313、判断所述当前分辨率是否已分配最低码率,若是,则返回步骤S311,若否,则转至步骤S314;
S314、判断所述上行码率所剩余的码率是否不小于所述当前分辨率的最低码率,若是,则确定所述当前分辨率为所述待发送视频流的分辨率,并分配给所述当前分辨率对应的最低码率,同时更新所述上行码率所剩余的码率,并跳转至步骤S311;若否,则转至步骤S315;
S315、判断支持发送的分辨率中是否存在分辨率低于所述当前分辨率的下一分辨率,若是,则将选取所述下一层分辨率作为当前分辨率并执行步骤S313,若否,则转至步骤S316;
S316、结束所述确定所述上行码率所能够支持的分辨率作为所述待发送的分辨率,并给每一所述待发送视频流的分辨率分配最低码率。
8.如权利要求6所述的视频流码率分配方法,其特征在于,所述以满足所述待发送的分辨率的目标码率为目标,按照分辨率从高到低的顺序将所述第一剩余码率依次给每一所述待发送视频流的分辨率分配码率包括:
S341、判断是否已按照分辨率从高到低的顺序依次选取过所有确定的所述待发送视频流的分辨率,若是,则转至步骤S334,若否,则转至步骤S342;
S342、按照分辨率从高到低的顺序,从所有确定的所述待发送视频流的分辨率中选取出下一当前待发送的分辨率;
S343、判断所述第一剩余码率当前剩余的码率和所述当前待发送的分辨率的已分配到的最低码率的和是否大于所述当前待发送的分辨率的目标码率,若是,则将所述第一剩余码率中部分码率分配给所述当前待发送的分辨率,以使所述当前待发送的分辨率分配的码率达到目标码率,更新所述第一剩余码率当前剩余的码率,并转至步骤S341;若否,则将所述第一剩余码率当前剩余的码率的全部分配给所述当前待发送视频流的分辨率,更新所述第一剩余码率当前剩余的码率,并转至步骤S334;
S334、结束所述以满足所述待发送视频流的分辨率的目标码率为目标,按照分辨率从高到低的顺序将所述第一剩余码率依次给每一所述待发送的分辨率分配码率。
9.如权利要求6所述的视频流码率分配方法,其特征在于,所述以满足所述待发送视频流的分辨率的最高码率为目标,按照分辨率从高到低的顺序将所述第二剩余码率依次给每一所述待发送视频流的分辨率分配码率包括:
S361、判断是否已按照分辨率从高到低的顺序依次选取过所有确定的所述待发送视频流的分辨率,若是,则转至步骤S364,若否,则转至步骤S362;
S362、按照分辨率从高到低的顺序,从确定的所有所述待发送视频流的分辨率中选取出下一当前待发送视频流的分辨率;
S363、判断所述第一剩余码率当前剩余的码率和所述当前待发送视频流的分辨率的当前分配到的码率的和是否大于所述当前待发送的分辨率的最大码率,若是,则将所述第二剩余码率中部分码率分配给所述当前待发送的分辨率,以使所述当前待发送视频流的分辨率分配的码率达到最大码率,更新所述第二剩余码率当前剩余的码率,并转至步骤S361;若否,则将所述第二剩余码率当前剩余的码率的全部分配给所述当前待发送的分辨率;
S364、结束所述以满足所述待发送视频流的分辨率的最高码率为目标,按照分辨率从高到低的顺序将所述第二剩余码率依次给每一所述待发送的分辨率分配码率。
10.如权利要求1所述的视频流码率分配方法,其特征在于,所述接收来自接收端订阅信息包括:
接收由服务器汇总并转发的若干接收端的订阅信息;
则将所述待发送视频流发送给所述接收端包括:
将所述待发送视频流发送给所述服务器,以使所述服务器将每一分辨率的待发送视频流发送给对应的接收端。
11.一种视频流码率分配装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至10中任意一项所述的视频流码率分配方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至10中任意一项所述的视频流码率分配方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910025892.3A CN109819333B (zh) | 2019-01-10 | 2019-01-10 | 视频流码率分配方法、装置及计算机可读存储介质 |
PCT/CN2019/126713 WO2020143423A1 (zh) | 2019-01-10 | 2019-12-19 | 视频流码率分配方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910025892.3A CN109819333B (zh) | 2019-01-10 | 2019-01-10 | 视频流码率分配方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109819333A true CN109819333A (zh) | 2019-05-28 |
CN109819333B CN109819333B (zh) | 2021-05-07 |
Family
ID=66603479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910025892.3A Active CN109819333B (zh) | 2019-01-10 | 2019-01-10 | 视频流码率分配方法、装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109819333B (zh) |
WO (1) | WO2020143423A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064960A (zh) * | 2019-12-31 | 2020-04-24 | 广州市百果园网络科技有限公司 | 一种视频编码的方法、装置、服务器和存储介质 |
WO2020143423A1 (zh) * | 2019-01-10 | 2020-07-16 | 广州视源电子科技股份有限公司 | 视频流码率分配方法、装置及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246458A (zh) * | 2008-12-15 | 2011-11-16 | 微软公司 | 使用多个比特率流的视频会议订阅 |
CN102883157A (zh) * | 2011-07-12 | 2013-01-16 | 浙江大学 | 视频编码方法和视频编码器 |
CN103024460A (zh) * | 2012-12-11 | 2013-04-03 | 广东威创视讯科技股份有限公司 | 多码流自适应的方法及系统 |
CN103051982A (zh) * | 2012-12-28 | 2013-04-17 | 上海华为技术有限公司 | 一种视频流传输控制方法以及视频流传输控制装置 |
CN105025249A (zh) * | 2014-04-22 | 2015-11-04 | 中国移动通信集团江苏有限公司 | 视频监控数据传输控制方法、装置及视频监控系统 |
CN108400956A (zh) * | 2017-02-07 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 视频数据流的分配方法、装置和系统 |
WO2018184189A1 (zh) * | 2017-04-07 | 2018-10-11 | 天彩电子(深圳)有限公司 | 码率自适应调节方法及其系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103517137B (zh) * | 2013-09-30 | 2017-08-01 | 广州华多网络科技有限公司 | 网络视频传输方法和系统、发送/接收端处理方法和装置 |
CN105532012B (zh) * | 2014-06-30 | 2019-10-22 | 华为技术有限公司 | 视频分发方法、设备和系统 |
CN105491461B (zh) * | 2014-10-11 | 2018-11-20 | 成都鼎桥通信技术有限公司 | 一种视频传输方法 |
CN106162233B (zh) * | 2016-07-08 | 2019-12-31 | 合一网络技术(北京)有限公司 | 码率推荐方法及装置 |
CN109819333B (zh) * | 2019-01-10 | 2021-05-07 | 广州视源电子科技股份有限公司 | 视频流码率分配方法、装置及计算机可读存储介质 |
-
2019
- 2019-01-10 CN CN201910025892.3A patent/CN109819333B/zh active Active
- 2019-12-19 WO PCT/CN2019/126713 patent/WO2020143423A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246458A (zh) * | 2008-12-15 | 2011-11-16 | 微软公司 | 使用多个比特率流的视频会议订阅 |
CN102883157A (zh) * | 2011-07-12 | 2013-01-16 | 浙江大学 | 视频编码方法和视频编码器 |
CN103024460A (zh) * | 2012-12-11 | 2013-04-03 | 广东威创视讯科技股份有限公司 | 多码流自适应的方法及系统 |
CN103051982A (zh) * | 2012-12-28 | 2013-04-17 | 上海华为技术有限公司 | 一种视频流传输控制方法以及视频流传输控制装置 |
CN105025249A (zh) * | 2014-04-22 | 2015-11-04 | 中国移动通信集团江苏有限公司 | 视频监控数据传输控制方法、装置及视频监控系统 |
CN108400956A (zh) * | 2017-02-07 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 视频数据流的分配方法、装置和系统 |
WO2018184189A1 (zh) * | 2017-04-07 | 2018-10-11 | 天彩电子(深圳)有限公司 | 码率自适应调节方法及其系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020143423A1 (zh) * | 2019-01-10 | 2020-07-16 | 广州视源电子科技股份有限公司 | 视频流码率分配方法、装置及计算机可读存储介质 |
CN111064960A (zh) * | 2019-12-31 | 2020-04-24 | 广州市百果园网络科技有限公司 | 一种视频编码的方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020143423A1 (zh) | 2020-07-16 |
CN109819333B (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60106140T2 (de) | Ressourcenzuweisung und Dienstbereitstellung in einem drahtlosen Netzwerk | |
CN100420301C (zh) | 多点视频会议和交互式广播系统的统一分布式结构 | |
JP6442507B2 (ja) | ネットワークのデバイスにより実行される進行中のトラフィックセッションの中でネットワークの利用可能な帯域幅を割り当てる方法、対応するデバイス | |
TWI580267B (zh) | 智慧串流遞送伺服器及用於匯編欲遞送至一訂戶房宅之混合服務之系統及方法 | |
CN108881972B (zh) | 一种码率分配方法、装置、设备和存储介质 | |
CN106416269A (zh) | 单播自适应比特率流播 | |
CN105635755B (zh) | 直播流传输方法和装置 | |
CN1973485A (zh) | 用于通过共享网络分配内容的方法和系统 | |
CN111510734B (zh) | 一种cdn调度方法、装置、存储介质及设备 | |
CN105847398A (zh) | 业务调度方法、调度服务器及业务服务器 | |
CN109819333A (zh) | 视频流码率分配方法、装置及计算机可读存储介质 | |
CN100571193C (zh) | 多播信道请求的接入控制 | |
CN108683730A (zh) | 资源调度方法、业务服务器、客户终端、网络系统和介质 | |
US8694641B2 (en) | Image delivery management server and image delivery management system | |
CN111464704B (zh) | 彩铃业务的实现方法、服务器、终端及存储介质 | |
JP2009515429A (ja) | サービス融合ファブリックを用いるための方法および装置 | |
CN114024973B (zh) | 直播云转码的资源调度方法、装置、服务器及系统 | |
CN109660826B (zh) | 一种视频传输方法、装置、设备及存储介质 | |
CN102860051B (zh) | 一种业务计费控制方法以及相关设备 | |
CN104767796B (zh) | 一种基于移动p2p的车联网热点资源管理方法 | |
CN114339311A (zh) | 一种视频云转码及分发联合决策方法及系统 | |
GB2398701A (en) | Controlling bandwidth by introducing variable delay in transmission path | |
JP4638023B2 (ja) | 映像配信課金システム及び映像配信課金方法 | |
Issa et al. | Analysis of adaptive video streaming for users with demand heterogeneity | |
CN101325686B (zh) | 下拉式对等网络直播业务实现方法 |
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 |