CN115118921B - 一种云会议中视频合屏自适应输出的方法及系统 - Google Patents
一种云会议中视频合屏自适应输出的方法及系统 Download PDFInfo
- Publication number
- CN115118921B CN115118921B CN202211037569.6A CN202211037569A CN115118921B CN 115118921 B CN115118921 B CN 115118921B CN 202211037569 A CN202211037569 A CN 202211037569A CN 115118921 B CN115118921 B CN 115118921B
- Authority
- CN
- China
- Prior art keywords
- screen
- frame
- output
- closing
- input
- 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
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
Abstract
本发明披露了一种云会议中视频合屏自适应输出的方法及系统,通过多任务多编码设计、帧率控制——平均丢帧策略以及自适应启停机制,有效解决了云会议中多种不同参会设备对实时合屏视频的多分辨率需求,能够有效节省设备资源以及下行带宽,同时还提升了用户对云会议的使用体验和可靠性。
Description
技术领域
本发明属于视频云会议领域,具体涉及一种云会议中视频合屏自适应输出的方法及系统。
背景技术
随着视频云会议的快速发展,视频会议媒介多元化,打破了时域、地域限制,随时随地都能快速进行视频会议。客户使用开会的设备也多种多样,PC、手机、盒子,商业客户还有传统硬件视频会议终端。为了适应云会议中用户使用多种不同的参会设备,能够快速响应设备多样化的需求,当手机设备参会时给手机发送高分辨率合屏视频,不仅对手机端性能造成消耗,也浪费了公司服务器下行带宽。但是,如果给小分辨率合屏视频,PC及盒子等高清设备上观看云会议的效果会大大降低。为了能将第三方视频会议设备接入到云会议中,需要在云会议中实现实时视频合屏功能。同时,为了多种不同参会设备都能有更好的使用体验和稳定性。因此,就要求云会议中在实时视频合屏时,能够支持输出多种不同分辨率的合屏视频,来满足各种各样的云会议参会设备,并达到设备和带宽资源的合理使用。
目前,现有的实时视频合屏自适应分辨率的方案,分为折中分辨率方案和多任务输出方案。其中,折中分辨率方案,是根据参数设备不同,取中间分辨率进行合屏输出,这样针对手机等需要低分辨率设备有所提升,但是参会中有PC、盒子等需要高分辨率时,对中间分辨率合屏视频进行上采样有质量损失,影响了高分辨率设备用户的使用体验。而多任务输出方案,是针对不同分辨率需求,创建多个合屏任务输出,这样能满足多种参会设备对不同分辨率的需求,但是,也造成了服务器资源的部分浪费。
发明内容
针对上述缺点,本发明公开实施例至少提供一种云会议中实时视频合屏自适应输出的方法及系统。
第一方面,本发明实施例提供一种云会议中视频合屏自适应输出的方法,包括如下步骤:在输入源池中创建一个或多个输入对象,每个所述输入对象对应一个输入源;在合屏任务池中创建一个或多个合屏任务,并根据分屏布局信息确定所述合屏任务的合屏参数以及合屏任务中每个分屏对应的输入源;为每个合屏任务创建多个编码输出任务并存入输出池,所述多个编码输出任务具有不同的编码参数;启动合屏任务,从每个分屏对应的输入源获取视频帧,按照所述合屏参数进行合屏处理生成合屏帧;启动编码输出任务,按照所述编码参数将所述合屏帧转换为输出帧。
可选地,所述在输入源池中创建一个或多个输入对象还包括:根据输入源创建对应的解码器。
可选地,所述合屏参数包括合屏任务的背景图、合屏分辨率、和/或合屏帧率中的一个或多个。
可选地,所述编码参数包括编码分辨率、编码帧率、和/或编码码率中的一个或多个
可选地,所述按照所述编码参数将所述合屏帧转换为输出帧包括:获取来自对应合屏任务的当前合屏帧;基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧;若是,则将当前合屏帧加入编码队列,按照所述编码参数将当前合屏帧转换为输出帧。
可选地,所述基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧包括:判断输出帧率是否大于输入帧率,若是,则保留当前合屏帧;若否,则根据输入帧率、当前合屏帧输入的时间信息和全局上帧时间计算跳帧数;根据输入帧率与输出帧率的差和跳帧数计算全局步阶数;若所述全局步阶数不大于输入帧率,则保留当前合屏帧,否则,判断跳帧数是否大于预设阈值,若是,则保留当前合屏帧,若否,则不保留当前合屏帧。
可选地,每个所述编码输出任务的编码参数是基于云会议中的一种设备类型确定的,所述方法还包括:若该种设备类型的设备数量不为0,则启动对应的编码输出任务;若该种设备类型的设备数量为0,则停止对应的编码输出任务。
第二方面,本发明实施例还提供一种云会议中视频合屏自适应输出的系统,包括:输入管理器,用于在输入源池中创建一个或多个输入对象,每个所述输入对象对应一个输入源;合屏管理器,用于在合屏任务池中创建一个或多个合屏任务,并根据分屏布局信息确定所述合屏任务的合屏参数以及合屏任务中每个分屏对应的输入源;以及启动合屏任务,从每个分屏对应的输入源获取视频帧,按照所述合屏参数进行合屏处理生成合屏帧;输出管理器,用于为每个合屏任务创建多个编码输出任务并存入输出池,所述多个编码输出任务具有不同的编码参数;以及启动编码输出任务,按照所述编码参数将所述合屏帧转换为输出帧。
第三方面,本发明实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本发明实施例提供的云会议中视频合屏自适应输出的方法与系统中,通过多任务多编码设计、平均丢帧策略,有效解决了实时合屏中多种参会设备对不同分辨率、帧率的需求,从而能够适用多种不同的参会设备;同时采用自适应启停输出技术能合理使用设备资源,保证并提升了云会议效果与体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明公开实施例所提供的一种云会议中视频合屏自适应输出的方法的流程图;
图2示出了本发明公开实施例所提供的一种云会议中视频合屏自适应输出的框架图;
图3示出了本发明公开实施例所提供的云会议中视频合屏自适应输出方法中输出任务的帧率控制(平均丢帧策略)方法流程图;
图4示出了本发明公开实施例所提供的云会议中视频合屏自适应输出方法中输出任务的自适应启停输出方法流程图;
图5示出了本发明公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为了使本公开发明的目的、技术方案和优点更加清楚明白,下面结合具体实施例,并根据附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,未描述的内容以及部分英文简写为所属技术领域中普通技术人员所熟知的内容。
实施例1
如图1所示,本发明公开实施例所提供的一种云会议中视频合屏自适应输出方法,包括:
S101:在输入源池中创建一个或多个输入对象,每个所述输入对象对应一个输入源;
S102:在合屏任务池中创建一个或多个合屏任务,并根据分屏布局信息确定所述合屏任务的合屏参数以及合屏任务中每个分屏对应的输入源;
S103:为每个合屏任务创建多个编码输出任务并存入输出池,所述多个编码输出任务具有不同的编码参数;
S104:启动合屏任务,从每个分屏对应的输入源获取视频帧,按照所述合屏参数进行合屏处理生成合屏帧;
S105:启动编码输出任务,按照所述编码参数将所述合屏帧转换为输出帧。
进一步地,所述在输入源池中创建一个或多个输入对象还包括:根据输入源创建对应的解码器。
进一步地,所述合屏参数包括合屏任务的背景图、合屏分辨率、和/或合屏帧率中的一个或多个。
进一步地,所述编码参数包括编码分辨率、编码帧率、和/或编码码率中的一个或多个。
进一步地,所述按照所述编码参数将所述合屏帧转换为输出帧包括:获取来自对应合屏任务的当前合屏帧;基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧;若是,则将当前合屏帧加入编码队列,按照所述编码参数将当前合屏帧转换为输出帧。
进一步地,所述基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧包括:判断输出帧率是否大于输入帧率,若是,则保留当前合屏帧;若否,则根据输入帧率、当前合屏帧输入的时间信息和全局上帧时间计算跳帧数;根据输入帧率与输出帧率的差和跳帧数计算全局步阶数;若所述全局步阶数不大于输入帧率,则保留当前合屏帧,否则,判断跳帧数是否大于预设阈值,若是,则保留当前合屏帧,若否,则不保留当前合屏帧。
进一步地,每个所述编码输出任务的编码参数是基于云会议中的一种设备类型确定的,所述方法还包括:若该种设备类型的设备数量不为0,则启动对应的编码输出任务;若该种设备类型的设备数量为0,则停止对应的编码输出任务。
本发明实施例提供的云会议中视频合屏自适应输出方法,通过多任务多编码设计,保证了满足多种不同分辨率;通过帧率控制即平均丢帧策略,有效解决了不同设备对不同分辨率的需求,提升了参会设备多样化时带宽有效使用;采用自适应启停机制,保证了设备性能资源换和带宽的合理使用,避免了设备资源的浪费。本发明实施例提供的一种云会议中视频合屏自适应分辨率的方法及系统,保证了根据云会议中参数设备类型,自适应输出多种不同分辨率,解决了设备资源与带宽浪费的等问题,能够适用多种不同的参会设备,从而极大的提升了用户在云会议中体验及感受。
实施例2
如图2所示,在本发明实施例1的基础上,结合多任务多编码框架图,对本发明做进一步详细说明:
为了实现多种不同布局合屏及多种不同参数的编码输出,整体上设计了三个资源池,分别为输入源池InputManager、合屏任务池VideoMixerManager、输出池VideoOutputManager。其中,三个资源池根据唯一ID进行区别,采用Map表方式存储输入对象、合屏对象、编码对象。
输入源池InputManager中存放输入对象,云会议实时视频合屏中可以支持多种参会设备,可以是PC机、手机(Android和Iphone)、MAC、PIC图片(单帧图、多帧图、24/32位图)、小程序APP、第三方硬件终端、盒子等输入源,并根据源格式不同创建不同的解码器。
合屏任务池VideoMixerManager中存放合屏对象(即合屏任务),云会议中一场会会有一个或多个合屏布局Swscale,合屏任务的参数包括最大分辨率和帧率,这样对分辨率做下采样可以保证视频质量相对较好,帧率做下采样可以有效适配更多的参会设备,还能有效控制带宽。
输出池VideoOutputManager中存放编码对象(即编码输出任务),根据不同参会设备需要可以创建多种分辨率、帧率、码率的编码输出任务,合理设置码率与帧率,能降低服务器下行带宽,提高代码使用率。
基于该多任务多编码框架,所述云会议视频合屏自适应输出方法的具体流程如下:
1)基于输入源创建输入对象Input1到Input7,每个输入源具有唯一的输入源ID。如图2所示,每个输入对象对应一个输入源,不同输入源可以为相同类型或不同类型,对于每个输入对象根据输入源的类型创建对应类型的解码器。
2)创建并执行合屏任务1(VideoMixer1)和合屏任务2(VideoMixer2),以合屏任务1为例,具体处理流程如下所示:
(1)创建合屏任务1,并将新合屏任务放入到合屏任务池中,继续步骤(2)。
(2)从布局信息中获取并设置合屏任务的背景图、合屏分辨率、合屏帧率等参数,继续步骤(3)。
(3)遍历布局任务中的分屏布局信息,未遍历完则执行步骤(4),否则执行步骤(6)。
(4)获取一个分屏布局信息,得到对应输入源ID,从输入源池中查找,如果存在则无需重新创建,如果不存在则需要创建输入对象,继续执行步骤(5)。
(5)根据布局信息添加当前布局,并创建对应的Swscale模块,放到合屏任务中的缩放池里,继续执行步骤(3)。
(6)启动合屏任务1,生成第1合屏帧。所述第1合屏帧具有步骤(2)中所述的参数。
3)创建编码输出任务1(Output1),具体处理流程如下所示:
(1)根据输入参数中合屏任务1 的ID,从合屏任务池中查找合屏任务,继续执行步骤(2)。
(2)创建编码输出任务1,并将编码输出任务1放入到输出池中,继续执行步骤(3)。
(3)设置编码输出任务参数,有编码分辨率、编码帧率、编码码率、编码线程数等参数,继续执行步骤(4)。
(4)启动编码输出任务1,并执行步骤(5)。
(5)合屏任务1绑定编码输出任务ID,继续执行步骤4)。
4)按照步骤3)中,依次创建图中编码输出任务2、编码输出任务3、编码输出任务4、编码输出任务5,其中编码输出任务1/2/3是合屏任务1的输出,编码输出4/5是合屏任务2的输出。
本发明实施例所提供的云会议中视频合屏自适应输出的方法,实现了多合屏任务多编码输出的视频合屏框架,实现了一个合屏任务能有多个不同编码、帧率、码率的输出,达到了云会议中满足多种不同的参会设备对实时视频合屏的多种分辨率需求。
实施例3
为了有效利用带宽,本发明在编码输出任务执行过程中还通过平均丢帧策略执行帧率控制。具体地,创建编码输出任务后,根据编码输出任务参数进行编码输出任务的初始化操作,包括初始化对象的全局变量,然后启动编码输出任务线程以执行帧率控制方法,如图3所示,该方法包括:
1)Push数据
通过回调将合屏帧数据传入到编码推帧函数处理;
2)执行编码推帧函数,进行帧率控制,包括:
(1)判断全局上帧时间变量是否初始化,如果没有初始化则执行步骤(2),否则执行步骤(3)。
(2)获取当前系统时间,并赋值为全局上帧时间变量,继续执行步骤3)。
(3)判断输出帧率是否大于输入帧率,如果不是则执行步骤(4),否则结束当前帧的处理。
(4)计算输入帧间隔,计算方式是输入帧间隔=90000/输入帧率,例如输入帧率25帧,间隔是90000/25=3600,继续执行步骤(5)。
(5)根据帧的时间信息去计算跳帧数,计算方式是跳帧数=(帧的时间-全局上帧时间)/输入帧间隔,继续执行步骤(6)。
(6)对跳帧数做参数保护,如果跳帧数小于等于0时,设置跳帧数为1,继续执行步骤(7)。
(7)将帧的时间信息赋值给全局上帧时间进行保存,并执行步骤(8)。
(8)计算全局步阶数,计算方式是全局步阶数累加输入帧率与输出帧率差并乘以跳帧数,继续执行步骤(9)。
(9)判断全局步阶数是否大于输入帧率,如果是执行步骤(10),否则执行步骤3)。
(10)重新计算全局步阶数,将全局步阶数除以输入帧率的余数赋值给全局步阶数,执行步骤(11)。
(11)判断跳帧数小于等于2,如果是执行步骤(12),否则执行步骤3)。
(12)设置丢帧标记是true,执行步骤3)。
3)判断丢帧标记是否是true,如果不是继续执行步骤4);否则,丢弃当前推入的合屏帧。
4)重新申请数据帧内存,并进行数据赋值,继续执行步骤5)。
5)判断编码队列帧数是否大于等于编码帧率,即队列最多缓存1秒待编码数据,如果是则执行步骤6),否则执行步骤7)。
6)取出编码队列第一帧数据,并从队列中去除第一帧,并释放第一帧数据内存,执行步骤7)。
7)将备份的数据帧放入到编码队列中,结束帧率控制处理。
然后,编码输出任务线程对所述编码队列中的帧进行编码和输出。
本发明实施例所提供的云会议中视频合屏自适应输出的方法,采用了帧率控制——平均丢帧策略来满足合屏帧率与编码输出帧率不相同的情况,提升了参会设备多样化时带宽的有效利用。
实施例4
本发明提供的云会议中视频合屏自适应输出方法中,在启动编码输出任务线程后,还执行自适应启动/停止输出的方法,如图4所示,业务层根据参会设备类型,进行统计,如果某个设备类型的观看数量从0变成1,那么则需要启动对应编码输出任务;如果观看数量从1变成0,则需要停止对应编码输出任务。另外,业务层通过回收机制将长时间不适用的输出任务进行释放,从而降低创建删除输出任务的频次,解除反复频繁操作编码器引入的不稳定性。
自适应启动/停止输出处理流程如下所示:
(1)业务层检测到一场云会议中合屏任务的输出分辨率不再使用或有设备使用时,对一个或者多个分辨率编码输出进行停止/启动处理,根据合屏任务ID找到合屏任务,执行步骤(2)。
(2)判断合屏任务是否为空,如果非空则执行步骤(3),否则执行步骤(11)。
(3)获取合屏任务中动态记录的编码输出任务ID向量,执行步骤(4)。
(4)循环遍历编码输出任务ID向量,如果未遍历完则执行步骤(5),否则执行步骤(11)。
(5)获取一个要处理的分辨率,执行步骤(6)。
(6)循环遍历编码输出任务ID向量,如果未循环完成执行步骤(7),否则执行步骤(5)。
(7)获取一个编码输出任务ID,从输出池中得到对应的编码输出任务,执行步骤(8)。
(8)判断编码输出任务非空,如果是执行步骤(9),否则执行步骤(7)。
(9)获取编码输出任务中的编码参数,并判断当前分辨是否与编码分辨率相等,如果是执行步骤(10),否则执行步骤(7)。
(10)调用编码输出任务设置启停接口,将设置状态传入并处理,执行步骤(7)。
(11)完成编码输出任务设置启动/停止状态并返回。
业务层通过回收机制将长时间不适用的输出任务进行释放,通过编码输出任务线程实时检测,输出任务状态,是启动还是停止,具体处理流程如下:
(1)初始化线程变量,并循环检测编码输出任务线程是否是启动状态,如果是则继续执行步骤(1),否则退出。
(2)判断当前编码输出任务状态是否是启动状态,如果是则执行步骤(3),否则执行步骤(9)。
(3)判断编码队列是否为空,如果非空执行步骤(4),否则执行步骤(9)。
(4)取出第一帧数据,并将第一帧数据从编码队列中踢出,执行步骤(5)。
(5)判断取出帧是否有效,如果有效则步骤(6),否则执行步骤(9)。
(6)编码前判断输入帧宽高是否与编码宽高相同,来进行缩放处理,并释放取出的第一帧数据,执行步骤(7)。
(7)判断编码时间是否到达,如果是执行步骤(8),否则执行步骤(9)。
(8)整理编码参数并进行编码,将编码输出数据赋值并回调给上层处理,执行步骤(9)。
(9)释放线程占用CPU资源,Sleep 1毫秒,继续执行步骤(2)。
本发明实施例所提供的云会议中视频合屏自适应输出的方法,采用了自适应启停输出技术,业务层根据会议中参会设备类型,对所需分辨率进行统计,如果某个分辨率无设备使用,则可以停止对应分辨率的编码输出,从而达到设备资源合理利用,避免了设备资源的浪费。
实施例5
本发明公开实施例所提供的一种云会议中视频合屏自适应输出系统,包括:输入管理器,用于在输入源池中创建一个或多个输入对象,每个所述输入对象对应一个输入源;合屏管理器,用于在合屏任务池中创建一个或多个合屏任务,并根据分屏布局信息确定所述合屏任务的合屏参数以及合屏任务中每个分屏对应的输入源;以及启动合屏任务,从每个分屏对应的输入源获取视频帧,按照所述合屏参数进行合屏处理生成合屏帧;输出管理器,用于为每个合屏任务创建多个编码输出任务并存入输出池,所述多个编码输出任务具有不同的编码参数;以及启动编码输出任务,按照所述编码参数将所述合屏帧转换为输出帧。
实施例6
基于同一技术构思,本申请实施例还提供了一种计算机设备,包括存储器1和处理器2,如图4所示,所述存储器1存储有计算机程序,所述处理器2执行所述计算机程序时实现上述任一项所述的方法。
其中,存储器1至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器1在一些实施例中可以是云会议中视频合屏自适应输出系统的内部存储单元,例如硬盘。存储器1在另一些实施例中也可以是云会议中视频合屏自适应输出系统的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器1还可以既包括云会议中视频合屏自适应输出系统的内部存储单元也包括外部存储设备。存储器1不仅可以用于存储安装于云会议中视频合屏自适应输出系统的应用软件及各类数据,例如视云会议中视频合屏自适应输出程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器2在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器1中存储的程序代码或处理数据,例如执行云会议中视频合屏自适应输出程序等。
本发明公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本发明公开实施例所提供的云会议中视频合屏自适应输出方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本发明公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种云会议中视频合屏自适应输出的方法,其特征在于,包括如下步骤:
在输入源池中创建一个或多个输入对象,每个所述输入对象对应一个输入源;
在合屏任务池中创建一个或多个合屏任务,并根据分屏布局信息确定所述合屏任务的合屏参数以及合屏任务中每个分屏对应的输入源;
为每个合屏任务创建多个编码输出任务并存入输出池,所述多个编码输出任务具有不同的编码参数;
启动合屏任务,从每个分屏对应的输入源获取视频帧,按照所述合屏参数进行合屏处理生成合屏帧;
启动编码输出任务,按照所述编码参数将所述合屏帧转换为输出帧;
其中,所述按照所述编码参数将所述合屏帧转换为输出帧包括:
获取来自对应合屏任务的当前合屏帧;
基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧;
若是,则将当前合屏帧加入编码队列,按照所述编码参数将当前合屏帧转换为输出帧;
其中,所述基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧包括:
判断输出帧率是否大于输入帧率,若是,则保留当前合屏帧;
若否,则根据输入帧率、当前合屏帧输入的时间信息和全局上帧时间计算跳帧数;
根据输入帧率与输出帧率的差和跳帧数计算全局步阶数;
若所述全局步阶数不大于输入帧率,则保留当前合屏帧,否则,判断跳帧数是否大于预设阈值,若是,则保留当前合屏帧,若否,则不保留当前合屏帧。
2.根据权利要求1所述的方法,其特征在于,所述在输入源池中创建一个或多个输入对象还包括:根据输入源创建对应的解码器。
3.根据权利要求1所述的方法,其特征在于,所述合屏参数包括合屏任务的背景图、合屏分辨率、和/或合屏帧率中的一个或多个。
4.根据权利要求1所述的方法,其特征在于,所述编码参数包括编码分辨率、编码帧率、和/或编码码率中的一个或多个。
5.根据权利要求1所述的方法,其特征在于,每个所述编码输出任务的编码参数是基于云会议中的一种设备类型确定的,所述方法还包括:
若该种设备类型的设备数量不为0,则启动对应的编码输出任务;若该种设备类型的设备数量为0,则停止对应的编码输出任务。
6.一种云会议中视频合屏自适应输出的系统,其特征在于,包括:
输入管理器,用于在输入源池中创建一个或多个输入对象,每个所述输入对象对应一个输入源;
合屏管理器,用于在合屏任务池中创建一个或多个合屏任务,并根据分屏布局信息确定所述合屏任务的合屏参数以及合屏任务中每个分屏对应的输入源;以及启动合屏任务,从每个分屏对应的输入源获取视频帧,按照所述合屏参数进行合屏处理生成合屏帧;
输出管理器,用于为每个合屏任务创建多个编码输出任务并存入输出池,所述多个编码输出任务具有不同的编码参数;以及启动编码输出任务,按照所述编码参数将所述合屏帧转换为输出帧;
其中,所述按照所述编码参数将所述合屏帧转换为输出帧包括:
获取来自对应合屏任务的当前合屏帧;
基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧;
若是,则将当前合屏帧加入编码队列,按照所述编码参数将当前合屏帧转换为输出帧;
其中,所述基于合屏帧的输入帧率和输出帧的输出帧率确定是否保留当前合屏帧包括:
判断输出帧率是否大于输入帧率,若是,则保留当前合屏帧;
若否,则根据输入帧率、当前合屏帧输入的时间信息和全局上帧时间计算跳帧数;
根据输入帧率与输出帧率的差和跳帧数计算全局步阶数;
若所述全局步阶数不大于输入帧率,则保留当前合屏帧,否则,判断跳帧数是否大于预设阈值,若是,则保留当前合屏帧,若否,则不保留当前合屏帧。
7.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211037569.6A CN115118921B (zh) | 2022-08-29 | 2022-08-29 | 一种云会议中视频合屏自适应输出的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211037569.6A CN115118921B (zh) | 2022-08-29 | 2022-08-29 | 一种云会议中视频合屏自适应输出的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118921A CN115118921A (zh) | 2022-09-27 |
CN115118921B true CN115118921B (zh) | 2023-01-20 |
Family
ID=83335185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211037569.6A Active CN115118921B (zh) | 2022-08-29 | 2022-08-29 | 一种云会议中视频合屏自适应输出的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118921B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215373A (zh) * | 2010-04-07 | 2011-10-12 | 苹果公司 | 会议中的显示调整 |
CN102695035A (zh) * | 2011-03-24 | 2012-09-26 | 创想空间软件技术(北京)有限公司 | 带宽自适应视频会议 |
CN107241564A (zh) * | 2016-03-29 | 2017-10-10 | 华为技术有限公司 | 基于ims网络架构的多流视频会议方法、装置及系统 |
CN109831637A (zh) * | 2017-11-23 | 2019-05-31 | 中兴通讯股份有限公司 | 一种视频会议中数据传输方法、服务器以及系统 |
CN111385515A (zh) * | 2018-12-27 | 2020-07-07 | 北京紫荆视通科技有限公司 | 视频会议数据的传输方法和视频会议数据的传输系统 |
CN112583814A (zh) * | 2020-12-07 | 2021-03-30 | 三星电子(中国)研发中心 | 多终端设备合并播放方法 |
CN112689119A (zh) * | 2021-03-11 | 2021-04-20 | 全时云商务服务股份有限公司 | 一种云会议中录制视频合屏的处理方法及装置 |
CN113286149A (zh) * | 2021-07-21 | 2021-08-20 | 全时云商务服务股份有限公司 | 一种云会议自适应多层视频编码方法、系统和存储介质 |
CN113630576A (zh) * | 2020-05-08 | 2021-11-09 | 辛纳普蒂克斯公司 | 自适应视频流式传输系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139015B2 (en) * | 2004-01-20 | 2006-11-21 | Polycom, Inc. | Method and apparatus for mixing compressed video |
-
2022
- 2022-08-29 CN CN202211037569.6A patent/CN115118921B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102215373A (zh) * | 2010-04-07 | 2011-10-12 | 苹果公司 | 会议中的显示调整 |
CN102695035A (zh) * | 2011-03-24 | 2012-09-26 | 创想空间软件技术(北京)有限公司 | 带宽自适应视频会议 |
CN107241564A (zh) * | 2016-03-29 | 2017-10-10 | 华为技术有限公司 | 基于ims网络架构的多流视频会议方法、装置及系统 |
CN109831637A (zh) * | 2017-11-23 | 2019-05-31 | 中兴通讯股份有限公司 | 一种视频会议中数据传输方法、服务器以及系统 |
CN111385515A (zh) * | 2018-12-27 | 2020-07-07 | 北京紫荆视通科技有限公司 | 视频会议数据的传输方法和视频会议数据的传输系统 |
CN113630576A (zh) * | 2020-05-08 | 2021-11-09 | 辛纳普蒂克斯公司 | 自适应视频流式传输系统和方法 |
CN112583814A (zh) * | 2020-12-07 | 2021-03-30 | 三星电子(中国)研发中心 | 多终端设备合并播放方法 |
CN112689119A (zh) * | 2021-03-11 | 2021-04-20 | 全时云商务服务股份有限公司 | 一种云会议中录制视频合屏的处理方法及装置 |
CN113286149A (zh) * | 2021-07-21 | 2021-08-20 | 全时云商务服务股份有限公司 | 一种云会议自适应多层视频编码方法、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115118921A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111882626B (zh) | 图像处理方法、装置、服务器及介质 | |
US20220038724A1 (en) | Video stream decoding method and apparatus, terminal device, and storage medium | |
CN107948735B (zh) | 一种视频播放方法、装置及电子设备 | |
CN110446072B (zh) | 视频流切换方法、电子设备和存储介质 | |
CN106804003B (zh) | 基于ffmpeg的视频编辑方法及装置 | |
CN110572622A (zh) | 视频解码方法及装置 | |
CN109660879A (zh) | 直播丢帧方法、系统、计算机设备和存储介质 | |
CN103399802A (zh) | 一种图片预加载方法以及装置 | |
CN114071226B (zh) | 视频预览图的生成方法及装置、存储介质及电子设备 | |
WO2018161843A1 (zh) | 一种视频播放速度调整方法及装置 | |
CN111314741A (zh) | 视频超分处理方法、装置、电子设备及存储介质 | |
CN108347580A (zh) | 一种处理视频帧数据的方法及电子设备 | |
CN110049347B (zh) | 在直播界面配置图像的方法、系统、终端和装置 | |
CN109729353B (zh) | 一种视频编码方法、装置、系统及介质 | |
CN113225585A (zh) | 一种视频清晰度的切换方法、装置、电子设备以及存储介质 | |
WO2019192481A1 (zh) | 媒体信息处理方法、相关设备及计算机存储介质 | |
CN107493478B (zh) | 编码帧率设置方法及设备 | |
CN114339412A (zh) | 视频质量增强方法、移动终端、存储介质及装置 | |
CN115118921B (zh) | 一种云会议中视频合屏自适应输出的方法及系统 | |
CN113973224A (zh) | 媒体信息的传输方法、计算设备及存储介质 | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
US9565454B2 (en) | Picture referencing control for video decoding using a graphics processor | |
CN115278289B (zh) | 一种云应用渲染视频帧处理方法与装置 | |
CN113286149B (zh) | 一种云会议自适应多层视频编码方法、系统和存储介质 | |
CN112019858B (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 |