CN111182352B - 一种视频播放的自适应码流控制装置及方法 - Google Patents
一种视频播放的自适应码流控制装置及方法 Download PDFInfo
- Publication number
- CN111182352B CN111182352B CN201811333140.5A CN201811333140A CN111182352B CN 111182352 B CN111182352 B CN 111182352B CN 201811333140 A CN201811333140 A CN 201811333140A CN 111182352 B CN111182352 B CN 111182352B
- Authority
- CN
- China
- Prior art keywords
- code stream
- video playing
- stream type
- control object
- control
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000003044 adaptive effect Effects 0.000 title claims description 21
- 230000015654 memory Effects 0.000 claims description 91
- 238000001514 detection method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 16
- 238000011217 control strategy Methods 0.000 abstract description 5
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000001737 promoting effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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/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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. 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/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
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开了一种视频播放的自适应码流控制装置及方法,应用于视频播放对象,以切换视频播放对象中的控制对象的码流类型,其在网络不佳的情况下,自动进行降低分辨率的码流类型切换,使得视频维持播放流畅;在网络较佳的情况下,自动进行提升分辨率的码流类型切换,使视频观看时体验效果更佳;在多分屏情况下,根据分屏模式、设备终端的性能指标以及播放卡顿情况,给出最佳的视频码流控制策略,防止视频播放对象出现卡顿、卡死、崩溃等情况,同时给用户提供最佳码流的视频效果,提升用户体验。
Description
技术领域
本发明涉及视频技术领域,尤其涉及一种视频播放的自适应码流控制装置及方法。
背景技术
随着移动端互联网的发展与成熟,移动端监控APP的使用也日益普遍化。其中看实况是移动端监控APP的主要业务。实况时,常见的分屏模式有多种,例如:1分屏、4分屏、9分屏和16分屏,如图1所示为9分屏模式时的效果图。
播放实况时的常见码流也有多种,例如:自动、高清、标清和流畅,其中,高清、标清和流畅三种码流的分辨率(代表画质清晰度)从小到大依次为:流畅<标清<高清,如图2所示为自动模式时的效果图。
虽然移动端监控APP日益普遍化,但现有的移动端监控APP通常存在以下几点不足:
1)、为了能够体验较好的视频效果,往往需要用户手动切换码流,导致实况时的交互不够友好。
2)、在网络不佳的情况下,播放高清的码流时,会出现视频卡顿现象,影响用户观看视频的体验效果。
3)、在网络较佳的情况下,播放流畅的码流时,播放的视频清晰度低,给用户带来的视觉体验不好。
4)、在多分屏情况下(例如:4分屏、9分屏和16分屏),批量播放高清视频时,往往会因为软件内存不够,造成移动端监控APP卡顿、卡死、崩溃等影响用户体验的现象。
为了解决多分屏情况下移动端监控APP卡顿、卡死、崩溃的情况,现有技术中采用的技术方案如:专利号为CN107888964A的专利文献中公开了一种视频播放的码流类型切换方法及装置,该专利设计了一种分屏数与码流类型对应的关系,即在1分屏下使用高清模式,在4分屏下使用标清模式,9分屏或16分屏下使用流畅模式,从而解决了多分屏下使用高分辨率导致内存消耗大、带宽需求高的问题。
但该专利存在下面2个缺点:
1)、没有考虑到网络因素,即1分屏下使用高分辨率的码流时,如果网络较差,则视频播放可能会出现卡顿,影响用户观看视频的体验效果。
2)、多分屏下使用低分辨率的码流模式播放实况时,没有考虑设备终端的性能指标,即当用户使用大屏、高性能的设备终端(例如:iPad Pro)看多路实况时,由于码流较低,没有给用户呈现最好的视频体验效果。
发明内容
本发明的目的在于提供一种视频播放的自适应码流控制装置及方法,根据分屏模式、播放卡顿情况以及设备终端的性能指标,自动调整播放的码流类型,呈现最佳的视频体验效果。
为实现上述目的,本发明所采取的技术方案如下:
一种视频播放的自适应码流控制装置,应用于视频播放对象,以切换视频播放对象中的控制对象的码流类型,所述视频播放的自适应码流控制装置包括码流控制单元,所述码流控制单元在默认情况下,根据预设的分屏模式与码流类型的对应关系确定控制对象的默认码流类型,所述视频播放的自适应码流控制装置,还包括反馈单元和输入单元,其中,
所述反馈单元,用于检测所述控制对象的播放卡顿情况,并将检测的结果发送至输入单元;
所述输入单元,用于获取分屏模式和所述视频播放对象所在的设备终端的性能指标,并接收所述反馈单元反馈的播放卡顿情况,将获取以及接收的数据转化为输入参数发送至码流控制单元;
所述码流控制单元,用于接收输入单元的输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型。
作为优选,所述反馈单元检测所述控制对象的播放卡顿情况,执行如下操作:
所述反馈单元定时获取控制对象中每路已开启的视频播放通道的实际帧率,所述实际帧率为该通道在一个周期内收到的帧视频数据的累计数量;
当所获取的实际帧率小于设定值时,则该通道当前存在卡顿情况;反之则该通道当前不存在卡顿情况。
作为优选,所述的性能指标包括剩余内存,所述输入单元获取剩余内存时,执行如下操作:
获取视频播放对象所在的设备终端的物理内存总和;
获取视频播放对象正常运行所需的基础内存;
计算当前分屏模式下视频播放所需的总内存,并根据以下公式计算设备终端的剩余内存:
式中:R为设备终端可用的剩余内存,T为设备终端的物理内存总和,p为设备终端允许视频播放对象使用的内存系数,B为视频播放对象正常运行所需的基础内存,n为控制对象在当前分屏模式下的分屏个数,C(i)为第i路分屏通道进行视频播放时所需的内存,则为当前分屏模式下视频播放所需的总内存。
作为优选,所述控制对象的状态为启流状态时,码流控制单元接收输入单元的输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,执行如下操作:
所述码流控制单元根据预设的分屏模式与码流类型的对应关系确定控制对象启流时的默认码流类型;
所述码流控制单元获取输入参数中的设备终端的性能指标,若设备终端的性能指标不支持控制对象维持默认码流类型进行启流,则将控制对象中将要开启的每路视频播放通道的码流类型切换为比默认码流类型的分辨率低的码流类型;
若设备终端的性能指标支持控制对象维持默认码流类型进行启流,则码流控制单元不改变控制对象的码流类型。
作为优选,所述控制对象的状态为播放状态时,所述码流控制单元接收输入单元的输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,执行如下操作:
所述码流控制单元从输入参数中获取的所述播放卡顿情况,若存在卡顿情况,则对控制对象中的所有已开启的视频播放通道进行降低分辨率的码流类型切换;
若不存在卡顿,则码流控制单元进一步判断所述视频播放对象所在的设备终端的性能指标;若设备终端的性能指标不满足提升分辨率的码流类型切换,则码流控制单元不改变控制对象的码流类型;
若设备终端的性能指标满足提升分辨率的码流类型切换,则对控制对象中所有已开启的视频播放通道进行提升分辨率的码流类型切换。
本发明还提供一种视频播放的自适应码流控制方法,应用于视频播放对象,以切换视频播放对象中的控制对象的码流类型,预先根据预设的分屏模式与码流类型的对应关系确定控制对象的默认码流类型,所述视频播放的自适应码流控制方法,包括:
检测所述控制对象的播放卡顿情况;
获取分屏模式和所述视频播放对象所在的设备终端的性能指标,并获取所述播放卡顿情况,将获取的所有数据转化为输入参数;
接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型。
作为优选,所述检测所述控制对象的播放卡顿情况,包括:
定时获取控制对象中每路已开启的视频播放通道的实际帧率,所述实际帧率为该通道在一个周期内收到的帧视频数据的累计数量;
当所获取的实际帧率小于设定值时,则该通道当前存在卡顿情况;反之则该通道当前不存在卡顿情况。
作为优选,所述的性能指标包括剩余内存,所述获取设备终端的剩余内存,包括:
获取视频播放对象所在的设备终端的物理内存总和;
获取视频播放对象正常运行所需的基础内存;
计算当前分屏模式下视频播放所需的总内存,并根据以下公式计算设备终端的剩余内存:
式中:R为设备终端可用的剩余内存,T为设备终端的物理内存总和,p为设备终端允许视频播放对象使用的内存系数,B为视频播放对象正常运行所需的基础内存,n为控制对象在当前分屏模式下的分屏个数,C(i)为第i路分屏通道进行视频播放时所需的内存,则为当前分屏模式下视频播放所需的总内存。
作为优选,所述控制对象的状态为启流状态时,所述接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,包括:
根据预设的分屏模式与码流类型的对应关系确定控制对象启流时的默认码流类型;
获取输入参数中的设备终端的性能指标,若设备终端的性能指标不支持控制对象维持默认码流类型进行启流,则将控制对象中将要开启的每路视频播放通道的码流类型切换为比默认码流类型的分辨率低的码流类型;
若设备终端的性能指标支持控制对象维持默认码流类型进行启流,则不改变控制对象的码流类型。
作为优选,所述控制对象的状态为播放状态时,所述接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,包括:
从输入参数中获取的所述播放卡顿情况,若存在卡顿情况,则对控制对象中的所有已开启的视频播放通道进行降低分辨率的码流类型切换;
若不存在卡顿,则进一步判断所述视频播放对象所在的设备终端的性能指标;若设备终端的性能指标不满足提升分辨率的码流类型切换,则不改变控制对象的码流类型;
若设备终端的性能指标满足提升分辨率的码流类型切换,则对控制对象中所有已开启的视频播放通道进行提升分辨率的码流类型切换。
本发明提供的一种视频播放的自适应码流控制装置及方法,在进行视频播放时无需用户手动切换码流类型,提升视频播放时的交互友好性;在网络不佳的情况下,自动进行降低分辨率的码流类型切换,使得视频维持播放流畅;在网络较佳的情况下,自动进行提升分辨率的码流类型切换,使视频观看时体验效果更佳;在多分屏情况下(例如:4分屏、9分屏、16分屏),根据分屏模式、设备终端的性能指标以及播放卡顿情况,给出最佳的视频码流控制策略,防止视频播放对象出现卡顿、卡死、崩溃等情况,同时给用户提供最佳码流的视频效果,提升用户体验。
附图说明
图1为视频播放对象在9分屏模式时的效果图;
图2为视频播放对象的码流为自动模式时的效果图;
图3为本发明视频播放的自适应码流控制装置的一种实施例结构示意图;
图4为视频播放窗格范围内的像素点个数的效果图;
图5为本发明视频播放的自适应码流控制方法的一种实施例流程图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本实施例提供一种视频播放的自适应码流控制装置,应用于视频播放对象(例如:移动端监控APP,或专门的播放设备),即在视频播放对象为自动模式时实现,用于根据外界因素自动切换视频播放对象中的控制对象(例如:视频播放通道,或视频播放窗口)的码流类型。
如图3所示,视频播放的自适应码流控制装置包括码流控制单元、反馈单元和输入单元,其中,
反馈单元,用于检测所述控制对象的播放卡顿情况,并将检测的结果发送至输入单元。
在视频播放过程中,当网络状况不佳时,视频播放容易出现卡顿情况,本实施例中反馈单元检测控制对象的播放卡顿情况时,执行如下操作:
反馈单元定义一个全局的定时器,每间隔周期T对每路已开启的视频播放通道的播放卡顿情况进行一次判断。例如:当T=1/30秒时,即每1/30秒对所有已开启的视频播放通道逐一判断一次。
反馈单元对每路已开启的视频播放通道的播放卡顿情况进行判断时,获取控制对象中每路已开启的视频播放通道的实际帧率,实际帧率为该通道在一个周期内收到的帧视频数据的累计数量。例如:定义变量F为实际帧率,且周期为1/30秒,则表示在1/30秒内每接收到1帧视频数据,则变量F加1。
在定时器的执行方法中,遍历当前已开启的所有视频播放通道,当所获取的实际帧率小于设定值时,则该通道当前存在卡顿情况;反之则该通道当前不存在卡顿情况。例如,反馈单元在对所有视频播放通道进行遍历时,某视频播放通道出现实际帧率F<10,且反馈单元检测到该通道的实际帧率F<10的情况持续超过10秒,则判定为该视频播放通道当前存在卡顿情况,且当所有已开启的视频播放通道中的一路或多路存在卡顿情况时,即为当前控制对象存在播放卡顿情况。
需要说明的是,上述反馈单元检测控制对象的播放卡顿情况为本实施例中举例说明的一种方法,在其他实施例中,检测控制对象的播放卡顿情况还可以采用其他现有技术。例如:可根据视频流的网络丢包率来确定当前的播放卡顿情况,但该方法的准确率不高。
本实施例中的输入单元,用于获取分屏模式和所述视频播放对象所在的设备终端(例如:手机或电脑)的性能指标,并接收所述反馈单元反馈的播放卡顿情况,将获取以及接收的数据转化为输入参数发送至码流控制单元。
需要说明的是,输入单元获取控制对象的分屏模式时,可以是在用户手动进行分屏模式设置时通过相应接口直接获取;也可以是通过如下操作间接获取:先确定所述控制对象中当前已开启的视频播放通道;根据所确定的已开启视频播放通道的路数,确定当前的分屏模式。
一般而言,设备终端的性能指标包括剩余内存、CPU利用率以及屏幕的PPI。本实施例中在启流或切换码流类型之前先要对设备终端的性能指标进行判断,即在控制对象启流或切换分辨率更高的码流类型之前,需要判断设备终端当前的剩余内存是否够用、CPU是否够用,以及屏幕的PPI是否支持切换成分辨率更高的码流类型。
其中,屏幕的PPI(pixels per inch)为屏幕的像素密度,即图像分辨率的单位。屏幕的PPI会影响到视频播放窗格范围内的屏幕像素点个数,本实施例中输入单元通过不同平台的接口直接获取屏幕的PPI,并将其整合至输入参数中。
在后续进行分辨率更高的码流类型切换之前,码流控制单元先判断该视频播放窗格范围内的屏幕像素点个数是否支持清晰码流的分辨率。如果不支持,则切换清晰的码流对用户来说是不可见的,因此没有必要进行切换。
如图4所示,假如控制对象当前码流的分辨率为7*6,如果要将码流提升到分辨率为15*13时,图4(左)中的视频播放窗格范围内的像素点个数为15*13,即视频播放窗格的长、宽像素值都满足切换分辨率更高的码流类型,因此支持切换;图4(右)中的视频播放窗格范围内的像素点个数为7*6,比15*13像素的长、宽都小,故即使进行15*13的分辨率切换后,视频播放窗格范围内最大的像素点个数依旧只有7*6,表示此次码流切换效果对于用户来说是不可见的,因此不支持切换。
本实施例中输入单元获取剩余内存时,执行如下操作:
获取视频播放对象所在的设备终端的物理内存总和;获取视频播放对象正常运行所需的基础内存;计算当前分屏模式下视频播放所需的总内存,并根据以下公式计算设备终端的剩余内存:
式中:R为设备终端可用的剩余内存,T为设备终端的物理内存总和,p为设备终端允许视频播放对象使用的内存系数,B为视频播放对象正常运行所需的基础内存,n为控制对象在当前分屏模式下的分屏个数,C(i)为第i路分屏通道进行视频播放时所需的内存,则为当前分屏模式下视频播放所需的总内存。
以下通过实施例对各参数的计算方法举例说明。
实施例1:
由于设备终端的物理内存总和为设备终端的硬件设施,故各终端平台一般都会有对应的方法进行获取,例如:iOS(苹果移动设备操作系统)平台可以通过下面接口获取到总的物理内存:
其中,程序执行后返回的maxMemorySizeMB的值即为该设备终端的物理内存总和。
p为设备终端允许视频播放对象使用的内存系数,不同平台设定的内存系数略有不同,例如:iOS平台的p取值为0.48,Android(安卓)平台的p取值为0.4。
B为视频播放对象正常运行所需的基础内存,例如:iOS平台和Android平台一般均设置为25M。。
C(i)为第i路分屏通道进行视频播放时所需的内存,其值与该视频播放的分辨率、编码格式相关。因此在计算C(i)之前需要从视频播放对象获取该通道的编码信息、分辨率。例如,在H.265格式下,1080P分辨率的通道消耗内存为100M,则其他分辨率的内存计算公式为
C(i)=(h×w)/(1920×1080)×100,其中h、w分别是该通道分辨率的高度、宽度。
根据上述计算方式输入单元即可得出设备终端当前的剩余内存R,并将其整合至输入参数中。当后续码流控制单元判断设备终端的剩余内存R小于预设值时,表示设备终端当前的剩余内存不支持控制对象维持当前码流类型或不支持控制对象进行提升分辨率的码流类型切换;当设备终端的剩余内存R大于或等于预设值时,表示设备终端当前的剩余内存支持控制对象维持当前码流类型或支持控制对象进行提升分辨率的码流类型切换。
需要说明的是,该计算过程可由输入单元完成,也可以由视频播放对象中独立于本实施例的视频播放的自适应码流控制装置之外的其他单元完成,并通过接口将计算结果发送至输入单元。
当然,获取设备终端当前的剩余内存时还可以根据不同平台提供的接口进行直接获取,但是通过接口直接获取方法存在波动、误差较大的缺陷,且其稳定性也低于本实施例中采用的计算方法。
本实施例中输入单元对设备终端的CPU是否够用直接通过不同平台提供的接口进行获取,不再进行赘述。
通过上述操作输入单元即获取了控制对象的分屏模式、播放卡顿情况以及视频播放对象所在的设备终端的性能指标,输入单元将获取结果转化为输入参数发送至码流控制单元。
码流控制单元为本实施例的算法执行对象,用于接收输入单元的输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,图2中的输出量即为视频播放对象在当前码流类型下的视频效果。
码流控制单元在默认情况下,将根据预设的分屏模式与码流类型的对应关系确定控制对象的默认码流类型,例如:1分屏模式时,设置默认码流类型为高清;4分屏模式时,设置默认码流类型为标清;9分屏、16分屏或更多分屏模式时,设置默认码流类型为流畅。
码流控制器获取输入参数中的性能指标后,判断性能指标中的剩余内存、CPU利用率以及屏幕的PPI同时支持控制对象维持当前码流类型或支持控制对象进行提升分辨率的码流类型切换时,才进行控制对象的启流操作或提升码流类型的操作;否则即为不支持控制对象维持当前码流类型或不支持控制对象进行提升分辨率的码流类型切换。
在进行码流调控的过程中,当控制对象的状态为启流(开启流量)状态时,在进行批量启流之前,码流控制单元获取输入参数中的设备终端的性能指标,若设备终端的性能指标不支持控制对象维持默认码流类型进行启流,则将控制对象中将要开启的每路视频播放通道的码流类型切换为比默认码流类型的分辨率低的码流类型;若设备终端的性能指标支持控制对象维持默认码流类型进行启流,则码流控制单元不改变控制对象的码流类型。
需要说明的是,码流控制单元在进行降低分辨率的码流类型切换时,先将控制对象的码流类型切换为比分屏模式对应的默认码流类型的分辨率低一档的码流类型,若降低一档分辨率后,检测到视频播放对象所在的设备终端的性能指标仍不满足批量启流操作,则继续降低控制对象的码流类型;若已降低至最低分辨率的码流类型(例如:流畅)后,设备终端仍无法满足批量启流操作,则只对前几个视频播放通道进行启流操作,对于后面未执行启流操作的视频播放通道提示“性能不足,无法完成启流”。
当控制对象的状态为播放状态时,码流控制单元执行如下操作:
1)码流控制单元从输入参数中获取播放卡顿情况,若存在卡顿情况,则对控制对象中的所有已开启的视频播放通道进行降低分辨率的码流类型切换。
在进行降低分辨率的码流类型切换时,码流控制单元先将当前码流类型切换为降低一档分辨率的码流类型,例如:将高清切换为标清,或者将标清切换为流畅。且当进行降低分辨率的码流类型切换时,需对所有视频播放通道的码流类型进行降档切换,保持所有视频播放通道中的码流类型一致。
进行一次降低分辨率的码流类型切换操作后,继续检测控制对象是否存在播放卡顿情况,如果视频播放还是卡顿,则继续降低码流类型,直到降低至最低档模式(例如:流畅);如果视频播放不卡顿,则保持当前的控制策略。
2)码流控制单元从输入参数中获取的所述播放卡顿情况,若不存在卡顿,则码流控制单元进一步判断所述视频播放对象所在的设备终端的性能指标;若设备终端的性能指标不满足提升分辨率的码流类型切换,则码流控制单元不改变控制对象的码流类型;
若设备终端的性能指标满足提升分辨率的码流类型切换,则对控制对象中所有已开启的视频播放通道进行提升分辨率的码流类型切换。
在进行提升分辨率的码流类型切换时,为了保持视频播放通道的码流类型一致,对控制对象的所有已开启的视频播放通道逐一进行提升分辨率的码流类型切换。需要说明的是,在分屏模式对应的默认码流类型的基础上,最多进行提升一档分辨率的码流类型切换,例如:将流畅切换为标清,或者将标清切换为高清。
如果在对控制对象的所有已开启的视频播放通道逐一进行提升分辨率的码流类型切换的过程中,任意时间段均没有出现码流卡顿情况,则完成所有视频播放通道的码流类型提升,并保持提升后的码流控制策略。
若在保持提升后的码流控制策略的过程中,由于网络原因出现播放卡顿情况,则根据上述步骤(1)中所述的进行码流类型降档操作。
如果在对控制对象的所有已开启通道逐一进行提升分辨率的码流类型切换的过程中,出现码流卡顿情况,则说明网络情况无法支撑所有码流进行提升分辨率的码流类型切换,则取消此次的码流类型提升操作,保持之前的码流类型。
需要说明的是,为了避免在视频播放中码流切换过于频繁,导致给用户带来不佳体验的情况,设定在一次视频播放过程中,提升码流类型的操作仅仅尝试一次,即该次提升码流类型的操作失败或者该次提升码流类型的操作成功之后,即使后续检测到播放卡顿情况以及视频播放对象所在的设备终端的性能指标又满足提升码流类型操作,也不再进行码流类型的提升。当然,在其他实施例中,可设定在一次视频播放过程中,根据需要进行多次码流类型的提升。
如图5所示,提供了一种视频播放的自适应码流控制方法的实施例,应用于视频播放对象,以切换视频播放对象中的控制对象的码流类型,预先根据预设的分屏模式与码流类型的对应关系确定控制对象的默认码流类型,所述视频播放的自适应码流控制方法,包括:
检测所述控制对象的播放卡顿情况;
获取分屏模式和所述视频播放对象所在的设备终端的性能指标,并获取所述播放卡顿情况,将获取的所有数据转化为输入参数;
接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型。
本实施例中的视频播放的自适应码流控制方法与上述的视频播放的自适应码流控制装置对应设置,以下通过实施例对视频播放的自适应码流控制方法进一步说明。
本发明的一种实施例,本实施例视频播放的自适应码流控制方法中,检测控制对象的播放卡顿情况,包括:定时获取控制对象中每路已开启的视频播放通道的实际帧率,所述实际帧率为该通道在一个周期内收到的帧视频数据的累计数量;当所获取的实际帧率小于设定值时,则该通道当前存在卡顿情况;反之则该通道当前不存在卡顿情况。
另一方面,视频播放的自适应码流控制方法中的性能指标包括剩余内存,获取设备终端的剩余内存,包括:
获取视频播放对象所在的设备终端的物理内存总和;
获取视频播放对象正常运行所需的基础内存;
计算当前分屏模式下视频播放所需的总内存,并根据以下公式计算设备终端的剩余内存:
式中:R为设备终端可用的剩余内存,T为设备终端的物理内存总和,p为设备终端允许视频播放对象使用的内存系数,B为视频播放对象正常运行所需的基础内存,n为控制对象在当前分屏模式下的分屏个数,C(i)为第i路分屏通道进行视频播放时所需的内存,则为当前分屏模式下视频播放所需的总内存。
另一方面,当控制对象的状态为启流状态时,所述接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,包括:
根据预设的分屏模式与码流类型的对应关系确定控制对象启流时的默认码流类型;
获取输入参数中的设备终端的性能指标,若设备终端的性能指标不支持控制对象维持默认码流类型进行启流,则将控制对象中将要开启的每路视频播放通道的码流类型切换为比默认码流类型的分辨率低的码流类型;
若设备终端的性能指标支持控制对象维持默认码流类型进行启流,则不改变控制对象的码流类型。
另一方面,当控制对象的状态为播放状态时,所述接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,包括:
从输入参数中获取的所述播放卡顿情况,若存在卡顿情况,则对控制对象中的所有已开启的视频播放通道进行降低分辨率的码流类型切换;
若不存在卡顿,则进一步判断所述视频播放对象所在的设备终端的性能指标;若设备终端的性能指标不满足提升分辨率的码流类型切换,则不改变控制对象的码流类型;
若设备终端的性能指标满足提升分辨率的码流类型切换,则对控制对象中所有已开启的视频播放通道进行提升分辨率的码流类型切换。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种视频播放的自适应码流控制装置,应用于视频播放对象,以切换视频播放对象中的控制对象的码流类型,所述控制对象包括一路或多路视频播放通道,所述视频播放的自适应码流控制装置包括码流控制单元,所述码流控制单元在默认情况下,根据预设的分屏模式与码流类型的对应关系确定控制对象的默认码流类型,其特征在于,所述视频播放的自适应码流控制装置,还包括反馈单元和输入单元,其中:
所述反馈单元,用于检测所述控制对象的播放卡顿情况,并将检测的结果发送至输入单元;
所述输入单元,用于获取分屏模式和所述视频播放对象所在的设备终端的性能指标,并接收所述反馈单元反馈的播放卡顿情况,将获取以及接收的数据转化为输入参数发送至码流控制单元;
所述码流控制单元,用于接收输入单元的输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型;
其中,当所述控制对象的状态为播放状态时,所述码流控制单元接收输入单元的输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,执行如下操作:
所述码流控制单元从输入参数中获取所述播放卡顿情况,若存在卡顿情况,则对控制对象中的所有已开启的视频播放通道进行降低分辨率的码流类型切换;
若不存在卡顿,则码流控制单元进一步判断所述视频播放对象所在的设备终端的性能指标;若设备终端的性能指标不满足提升分辨率的码流类型切换,则码流控制单元不改变控制对象的码流类型;
若设备终端的性能指标满足提升分辨率的码流类型切换,则对控制对象中所有已开启的视频播放通道进行提升分辨率的码流类型切换。
2.如权利要求1所述的视频播放的自适应码流控制装置,其特征在于,所述反馈单元检测所述控制对象的播放卡顿情况,执行如下操作:
所述反馈单元定时获取控制对象中每路已开启的视频播放通道的实际帧率,所述实际帧率为该通道在一个周期内收到的帧视频数据的累计数量;
当所获取的实际帧率小于设定值时,则该通道当前存在卡顿情况;反之则该通道当前不存在卡顿情况。
4.如权利要求1所述的视频播放的自适应码流控制装置,其特征在于,所述控制对象的状态为启流状态时,码流控制单元接收输入单元的输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,执行如下操作:
所述码流控制单元根据预设的分屏模式与码流类型的对应关系确定控制对象启流时的默认码流类型;
所述码流控制单元获取输入参数中的设备终端的性能指标,若设备终端的性能指标不支持控制对象维持默认码流类型进行启流,则将控制对象中将要开启的每路视频播放通道的码流类型切换为比默认码流类型的分辨率低的码流类型;
若设备终端的性能指标支持控制对象维持默认码流类型进行启流,则码流控制单元不改变控制对象的码流类型。
5.一种视频播放的自适应码流控制方法,应用于视频播放对象,以切换视频播放对象中的控制对象的码流类型,所述控制对象包括一路或多路视频播放通道,预先根据预设的分屏模式与码流类型的对应关系确定控制对象的默认码流类型,其特征在于,所述视频播放的自适应码流控制方法,包括:
检测所述控制对象的播放卡顿情况;
获取分屏模式和所述视频播放对象所在的设备终端的性能指标,并获取所述播放卡顿情况,将获取的所有数据转化为输入参数;
接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型;
其中,当所述控制对象的状态为播放状态时,所述接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,包括:
从输入参数中获取所述播放卡顿情况,若存在卡顿情况,则对控制对象中的所有已开启的视频播放通道进行降低分辨率的码流类型切换;
若不存在卡顿,则进一步判断所述视频播放对象所在的设备终端的性能指标;若设备终端的性能指标不满足提升分辨率的码流类型切换,则不改变控制对象的码流类型;
若设备终端的性能指标满足提升分辨率的码流类型切换,则对控制对象中所有已开启的视频播放通道进行提升分辨率的码流类型切换。
6.如权利要求5所述的视频播放的自适应码流控制方法,其特征在于,所述检测所述控制对象的播放卡顿情况,包括:
定时获取控制对象中每路已开启的视频播放通道的实际帧率,所述实际帧率为该通道在一个周期内收到的帧视频数据的累计数量;
当所获取的实际帧率小于设定值时,则该通道当前存在卡顿情况;反之则该通道当前不存在卡顿情况。
8.如权利要求5所述的视频播放的自适应码流控制方法,其特征在于,所述控制对象的状态为启流状态时,所述接收输入参数,在控制对象的不同状态下,根据预设的输入参数与码流类型的对应关系,确定当前输入参数对应的码流类型,并将控制对象中已开启或将要开启的每路视频播放通道的默认码流类型切换为所确定的码流类型,包括:
根据预设的分屏模式与码流类型的对应关系确定控制对象启流时的默认码流类型;
获取输入参数中的设备终端的性能指标,若设备终端的性能指标不支持控制对象维持默认码流类型进行启流,则将控制对象中将要开启的每路视频播放通道的码流类型切换为比默认码流类型的分辨率低的码流类型;
若设备终端的性能指标支持控制对象维持默认码流类型进行启流,则不改变控制对象的码流类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811333140.5A CN111182352B (zh) | 2018-11-09 | 2018-11-09 | 一种视频播放的自适应码流控制装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811333140.5A CN111182352B (zh) | 2018-11-09 | 2018-11-09 | 一种视频播放的自适应码流控制装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111182352A CN111182352A (zh) | 2020-05-19 |
CN111182352B true CN111182352B (zh) | 2022-06-14 |
Family
ID=70621970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811333140.5A Active CN111182352B (zh) | 2018-11-09 | 2018-11-09 | 一种视频播放的自适应码流控制装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111182352B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114257861B (zh) * | 2020-09-24 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 视频处理方法、装置、存储介质及设备 |
CN112672079B (zh) * | 2020-12-18 | 2023-01-06 | 北京飞讯数码科技有限公司 | 分屏切换方法、装置、设备及存储介质 |
CN114025211A (zh) * | 2021-10-27 | 2022-02-08 | 福建野小兽健康科技有限公司 | 一种适配用户设备的视频下发方法及系统 |
CN114007142A (zh) * | 2021-11-03 | 2022-02-01 | 北京雷石天地电子技术有限公司 | 视频播放方法、装置、电子设备及可读存储介质 |
CN114979666A (zh) * | 2022-05-16 | 2022-08-30 | 郑州小鸟信息科技有限公司 | 一种基于大屏解码能力的智能升、降窗口码流方法 |
CN115174965B (zh) * | 2022-06-30 | 2024-01-02 | 杭州海康威视数字技术股份有限公司 | 视频预览方法、装置、电子设备及计算机可读存储介质 |
CN116156253B (zh) * | 2023-02-01 | 2024-06-04 | 山东浪潮超高清智能科技有限公司 | 一种视频监控在智慧大屏的可视化方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917568A (zh) * | 2009-12-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种基于流媒体技术的网络视频播放器及播放系统 |
KR101455078B1 (ko) * | 2014-06-09 | 2014-10-28 | 주식회사 이글루시큐리티 | 대규모 영상 관제 시스템을 위한 사용자 정의 분할화면 표출장치 및 그 방법 |
TW201513675A (zh) * | 2013-09-26 | 2015-04-01 | Seenergy Corp | 多路視訊顯示控制方法及系統 |
CN104980819A (zh) * | 2015-06-26 | 2015-10-14 | 安徽四创电子股份有限公司 | 一种视频传输方法及装置 |
CN106101766A (zh) * | 2016-07-11 | 2016-11-09 | 乐视控股(北京)有限公司 | 一种视频广告的播放控制方法、装置及电子设备 |
CN106657143A (zh) * | 2017-01-20 | 2017-05-10 | 中兴通讯股份有限公司 | 一种流媒体传输方法、装置、服务器及终端 |
CN107659828A (zh) * | 2017-10-30 | 2018-02-02 | 广东欧珀移动通信有限公司 | 视频画质调整方法、装置、终端设备及存储介质 |
CN107888964A (zh) * | 2016-09-30 | 2018-04-06 | 杭州海康威视数字技术股份有限公司 | 一种视频播放的码流类型切换方法及装置 |
CN108347598A (zh) * | 2018-01-25 | 2018-07-31 | 晶晨半导体(上海)股份有限公司 | 一种音视频卡顿信息自动检测上报系统及方法 |
CN108377421A (zh) * | 2018-04-26 | 2018-08-07 | 深圳Tcl数字技术有限公司 | 视频的播放方法及显示设备、计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219590A (zh) * | 2013-06-05 | 2014-12-17 | 华为终端有限公司 | 一种切换编码方式的方法、发送端和接收端 |
-
2018
- 2018-11-09 CN CN201811333140.5A patent/CN111182352B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917568A (zh) * | 2009-12-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种基于流媒体技术的网络视频播放器及播放系统 |
TW201513675A (zh) * | 2013-09-26 | 2015-04-01 | Seenergy Corp | 多路視訊顯示控制方法及系統 |
KR101455078B1 (ko) * | 2014-06-09 | 2014-10-28 | 주식회사 이글루시큐리티 | 대규모 영상 관제 시스템을 위한 사용자 정의 분할화면 표출장치 및 그 방법 |
CN104980819A (zh) * | 2015-06-26 | 2015-10-14 | 安徽四创电子股份有限公司 | 一种视频传输方法及装置 |
CN106101766A (zh) * | 2016-07-11 | 2016-11-09 | 乐视控股(北京)有限公司 | 一种视频广告的播放控制方法、装置及电子设备 |
CN107888964A (zh) * | 2016-09-30 | 2018-04-06 | 杭州海康威视数字技术股份有限公司 | 一种视频播放的码流类型切换方法及装置 |
CN106657143A (zh) * | 2017-01-20 | 2017-05-10 | 中兴通讯股份有限公司 | 一种流媒体传输方法、装置、服务器及终端 |
CN107659828A (zh) * | 2017-10-30 | 2018-02-02 | 广东欧珀移动通信有限公司 | 视频画质调整方法、装置、终端设备及存储介质 |
CN108347598A (zh) * | 2018-01-25 | 2018-07-31 | 晶晨半导体(上海)股份有限公司 | 一种音视频卡顿信息自动检测上报系统及方法 |
CN108377421A (zh) * | 2018-04-26 | 2018-08-07 | 深圳Tcl数字技术有限公司 | 视频的播放方法及显示设备、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111182352A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111182352B (zh) | 一种视频播放的自适应码流控制装置及方法 | |
EP3840390A1 (en) | Method and device for controlling video transcoding code rate | |
US7898597B2 (en) | Video processing apparatus and control method for the video processing apparatus | |
CN104125482B (zh) | 一种流媒体播放方法及装置 | |
US20100217888A1 (en) | Transmission device, reception device, rate control device, transmission method, and reception method | |
WO2016026245A1 (zh) | 视频播放分辨率切换方法及系统 | |
CN104010232A (zh) | 一种智能播放在线视频的方法、系统、播放器及移动终端 | |
EP2151802A1 (en) | Image processor and image processing method | |
CN104394484A (zh) | 一种无线实时流媒体传输方法 | |
CN110895794B (zh) | 视频效果自修复方法和视频自修复装置 | |
US12034952B2 (en) | Seamless content encoding and transmission | |
CN113037697A (zh) | 一种视频帧处理方法、装置和电子设备及可读存储介质 | |
CN114245196B (zh) | 一种录屏推流方法、装置、电子设备及存储介质 | |
JP6089846B2 (ja) | 映像配信システム及びデコーダ並びに映像配信方法 | |
CN109922366B (zh) | 一种设备参数调整方法、装置、设备及介质 | |
CN112543348A (zh) | 远程录屏方法、装置、设备及计算机可读存储介质 | |
US20220109915A1 (en) | Pseudo seamless switching method, device and media for web playing different video sources | |
CN112328145A (zh) | 图像显示方法、装置、设备及计算机可读存储介质 | |
CN111669539A (zh) | 一种视频播放方法、装置及电子设备 | |
CN116156253B (zh) | 一种视频监控在智慧大屏的可视化方法 | |
CN115002520B (zh) | 一种视频流数据处理方法、装置、设备及存储介质 | |
CN111510703A (zh) | 一种视频播放方法、装置及系统 | |
CN114827668B (zh) | 基于解码能力的视频档位选择方法、装置及设备 | |
US20110261879A1 (en) | Scene cut detection for video stream compression | |
CN115208862A (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 |