一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种云会议中实时合屏布局平滑切换的方法和装置与流程

2022-06-11 15:08:38 来源:中国专利 TAG:


1.本发明属于视频会议技术领域,更具体地,涉及一种云会议中实时合屏布局平滑切换的方法和装置。


背景技术:

2.随着视频云会议的快速发展,及视频会议媒介多元化,打破了时域、地域限制,随时随地都能快速进行视频会议,客户使用开会的设备也多种多样,pc、手机、盒子,商业客户还有传统硬件视频会议终端。为了能将第三方视频会议设备接入到云会议中,需要将依赖端显示布局方案,改成视频软mcu服务器进行实时视频合屏来达到会议同步显示的效果,从而帮助客户解决了第三方视频会议设备无法同步显示会议的问题。因此,就需要云会议中支持实时视频合屏,来满足并支持更多的云会议扩展要求。
3.目前的实时视频合屏布局切换平滑显示的方案,通常采用业务消息规避处理,这种方案是从源头规避了布局切换频繁或太快的情况,直接进行丢弃新布局的方式,或者进行固定时长处理,比如两种布局间隔需大于2秒,那么用户在设置切换新布局时,会出现设置的新布局无效或长时间没反应,这样使得用户在云会议中的体验很差。同时,在用户操作点击多次相同布局切换消息时,容易出现合屏视频闪屏、黑屏、重影等问题,合屏布局切换平滑显示的效果并不好。


技术实现要素:

4.因此,本发明要解决的技术问题在于克服现有技术中的上述技术缺陷,从而提供一种云会议中实时合屏布局平滑切换的方法和装置,具体实现方案如下。
5.第一方面,本发明提供一种云会议中实时合屏布局平滑切换的方法,包括:步骤1:获取所有输入源的视频数据的解码数据,并存储到对应的布局视频队列中;步骤2:根据当前的合屏布局样式,获取一个输入源对应的布局信息;步骤3:提取对应的布局视频队列中的一帧视频,判断是否为有效视频;步骤4:如果是,则将所述的一帧视频合屏到对应的布局信息中;如果否,则提取对应的布局视频队列中的上一帧有效视频,将所述上一帧有效视频合屏到对应的布局信息中;步骤5:获取其他输入源对应的布局信息,重复上述步骤3-4,得到当前合屏布局样式的有效合屏数据。
6.进一步的,所述判断是否为有效视频包括:判断所提取的视频是否满足宽和高不为0且视频有数据;如果满足,则为有效视频;否则不是有效视频。
7.进一步的,还包括:将所述的有效合屏数据放入到合屏缓冲区中,将所述的有效合屏数据从合屏缓冲区复制到编码输出缓冲区中,进行编码输出。
8.进一步的,所述的获取所有输入源的视频数据的解码数据,并存储到对应的布局视频队列中,具体为:对每个输入源创建解码缓冲队列;将不同输入源的视频数据推入到对应的解码缓冲队列中进行解码,获得不同输入源的解码数据;将不同输入源的解码数据存储到对应的布局视频队列中。
9.进一步的,所述的将不同输入源的视频数据推入到对应的解码缓冲队列中包括:获取数据帧的数据时间,将数据帧和数据帧的数据时间一并推入到对应的解码缓冲队列中。
10.进一步的,所述的将不同输入源的视频数据推入到对应的解码缓冲队列中进行解码包括:采用独立线程解码,从解码缓冲队列中提取视频数据进行解码,获得解码数据帧,以及对应的数据时间;将数据时间与当前时间相比,判断数据时间对应的解码数据帧是否为过期数据;如果是,则休眠预设时间,再次从解码缓冲队列中提取输入数据进行解码;如果不是,则将数据时间对应的解码数据帧作为解码数据。
11.第二方面,本发明提供一种云会议中实时合屏布局平滑切换的装置,包括:解码数据获取模块,配置为获取所有输入源的视频数据的解码数据,并存储到对应的布局视频队列中;布局信息获取模块,配置为获取输入源对应的布局信息,并提取对应的布局视频队列中的一帧视频;有效视频判断模块,配置为判断所提取的一帧视频是否为有效视频;合屏模块,配置为将有效视频合屏到对应的布局信息中,得到当前合屏布局样式的有效合屏数据;合屏缓冲模块,配置为存放当前合屏布局样式的有效合屏数据;合屏编码输出模块,配置为将所述的有效合屏数据复制到编码输出缓冲区中,进行编码输出。
12.进一步的,还包括:解码缓冲队列创建模块,配置为对每个输入源创建解码缓冲队列;解码模块,配置为将不同输入源的视频数据推入到对应的解码缓冲队列中进行解码,获得不同输入源的解码数据;存储模块,配置为将不同输入源的解码数据存储到对应的布局视频队列中。
13.本发明技术方案,具有如下优点:本发明通过对输入源的输入数据采用输入解码缓冲机制,可以适应不同帧率源,以及不同信道产生帧率波动的情况,避免了分屏视频卡顿的现象;在具体合屏时采用合屏缓冲和编码输出缓冲双缓冲合屏机制,当布局变化时,如果没有产生有效合屏,则直接使用上一帧有效合屏视频进行输出,避免出现布局切换时的黑屏、闪屏等问题,提高用户视屏会议的使用体验。
附图说明
14.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1为本发明公开实施例所提供的一种云会议中实时合屏布局平滑切换的方法的流程图;图2为本发明公开实施例所提供的一种云会议中实时合屏布局平滑切换的装置的示意图;图3为本发明公开实施例所提供的一种计算机设备的示意图。
具体实施方式
16.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
18.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
19.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
20.实施例1如图1所示,本实施例提供一种云会议中实时合屏布局平滑切换的方法,包括:s101、获取所有输入源的视频数据的解码数据,并存储到对应的布局视频队列中;s102、根据当前的合屏布局样式,获取一个输入源对应的布局信息;s103、提取对应的布局视频队列中的一帧视频,判断是否为有效视频;s104、如果是,则将所述的一帧视频合屏到对应的布局信息中;如果否,则提取对应的布局视频队列中的上一帧有效视频,将所述上一帧有效视频合屏到对应的布局信息中;s105、获取其他输入源对应的布局信息,重复上述步骤103和104,得到当前合屏布局样式的有效合屏数据。
21.进一步的,所述判断是否为有效视频包括:判断所提取的视频是否满足宽和高不为0且视频有数据;
如果满足,则为有效视频;否则不是有效视频。
22.进一步的,还包括:将所述的有效合屏数据放入到合屏缓冲区中,将所述的有效合屏数据从合屏缓冲区复制到编码输出缓冲区中,进行编码输出。
23.在具体实践中,视频会议的参会终端作为输入源,可以采用手机、pc等作为参会终端;在进行视频会议时,根据实际会议需求构建合屏布局样式,并初始化合屏布局样式的全局参数,同时需要对合屏缓冲区和编码输出缓冲区进行初始化,为了实现沉浸式设计的云会议交流,还可以自由选择合屏布局样式的背景数据,并分别设置给合屏缓冲区和编码缓冲区。当合屏状态启动且到合屏时间,则设计合屏标记mixpic为false,然后开始循环当前合屏布局样式的所有布局,获取其中一个输入源对应的布局信息,从对应的布局视频队列中提取出一帧视频,判断提取的一帧视频宽和高是否不为0,以及视频是否有数据,如果二者都满足那么将该一帧视频按照对应的合屏布局样式进行视频合屏,并设置mixpic为true,说明当期合屏缓冲区是有效合屏数据,如果其中一条不满足则不是有效视频,那么从对应的布局视频队列中提取出上一帧视频,再次判断提取出的上一帧视频是否为有效视频,判断方式和上面的方式相同,直至提取到上一帧有效视频,将该上一帧有效视频按照对应的合屏布局样式进行视频合屏,并设置mixpic为true,说明当期合屏缓冲区是有效合屏数据;按照相同的步骤继续对当前合屏布局样式的其他布局进行视频合屏,在合屏缓冲区的产生有效合屏数据,将有效合屏数据复制到编码输出缓冲区中,然后进行编码输出。通过合屏缓冲区和编码输出缓冲区的设计,当布局变化时,如果没有产生有效合屏,则直接使用上一帧有效合屏视频进行输出,避免出现布局切换时的黑屏、闪屏等问题,提高用户视屏会议的使用体验。
24.进一步的,所述的获取所有输入源的视频数据的解码数据,并存储到对应的布局视频队列中,具体为:对每个输入源创建解码缓冲队列;将不同输入源的视频数据推入到对应的解码缓冲队列中进行解码,获得不同输入源的解码数据;将不同输入源的解码数据存储到对应的布局视频队列中。
25.进一步的,所述的将不同输入源的视频数据推入到对应的解码缓冲队列中包括:获取数据帧的数据时间,将数据帧和数据帧的数据时间一并推入到对应的解码缓冲队列中。
26.进一步的,所述的将不同输入源的视频数据推入到对应的解码缓冲队列中进行解码包括:采用独立线程解码,从解码缓冲队列中提取视频数据进行解码,获得解码数据帧,以及对应的数据时间;将数据时间与当前时间相比,判断数据时间对应的解码数据帧是否为过期数据;如果是,则休眠预设时间,再次从解码缓冲队列中提取输入数据进行解码;如果不是,则将数据时间对应的解码数据帧作为解码数据。
27.在具体实践中,对每个输入源创建解码对象,并初始化解码参数、创建解码缓冲队列,解码缓冲队列长度500ms帧数据,将不同输入源的输入数据推入到对应的解码缓冲队列中,在推入数据的过程中获取数据时间并推入到对应的数据帧中,同时进行输入数据帧的
帧数统计;采用独立线程进行解码,先初始化独立线程参数及局部变量空间,解码独立线程启动且解码时间到时,从解码缓冲队列中提取数据进行解码,获得数据时间,将数据时间与当前时间相比,判断数据时间对应的数据帧是否为过期数据,如果是则sleep 1ms,再次从解码缓冲队列中提取输入数据进行解码,如果不是则获得解码数据。通过进行数据时间、数据帧的帧数统计,以及输入解码缓冲机制的设计,可以计算平均帧率,能够适应不同帧率源,以及不同信道产生帧率波动的情况,避免了分屏视频卡顿的现象,采用解码独立线程,可以提升设备并发性能,同时不会阻塞住输入数据推入的线程。
28.实施例2如图2所示,本实施例提供一种云会议中实时合屏布局平滑切换的装置,包括:解码数据获取模块201,配置为获取所有输入源的视频数据的解码数据,并存储到对应的布局视频队列中;布局信息获取模块202,配置为获取输入源对应的布局信息,并提取对应的布局视频队列中的一帧视频;有效视频判断模块203,配置为判断提取到的一帧视频是否为有效视频;合屏模块204,配置为将有效视频合屏到对应的布局信息中,得到当前合屏布局样式的有效合屏数据;合屏缓冲模块205,配置为存放当前合屏布局样式的有效合屏数据;合屏编码输出模块206,配置为将所述的有效合屏数据复制到编码输出缓冲区中,进行编码输出。
29.进一步的,还包括:解码缓冲队列创建模块,配置为对每个输入源创建解码缓冲队列;解码模块,配置为将不同输入源的输入数据推入到对应的解码缓冲队列中进行解码,获得不同输入源的解码数据;存储模块,配置为将不同输入源的解码数据存储到对应的布局视频队列中。
30.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
31.实施例3基于同一技术构思,本技术实施例还提供了一种计算机设备,包括存储器1和处理器2,如图3所示,所述存储器1存储有计算机程序,所述处理器2执行所述计算机程序时实现上述任一项所述的方法。
32.其中,存储器1至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器1在一些实施例中可以是云会议中实时合屏布局平滑切换的指令的内部存储单元,例如硬盘。存储器1在另一些实施例中也可以是云会议中实时合屏布局平滑切换的指令的外部存
储设备,例如插接式硬盘,智能存储卡(smart media card, smc),安全数字(secure digital, sd)卡,闪存卡(flash card)等。进一步地,存储器1还可以既包括云会议中实时合屏布局平滑切换的指令的内部存储单元也包括外部存储设备。存储器1不仅可以用于存储安装于云会议中实时合屏布局平滑切换的系统的应用软件及各类数据,例如云会议中实时合屏布局平滑切换的系统程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
33.处理器2在一些实施例中可以是一中央处理器(central processing unit, cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器1中存储的程序代码或处理数据,例如执行云会议中实时合屏布局平滑切换的系统程序等。
34.本发明公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
35.本发明公开实施例所提供的云会议中实时合屏布局平滑切换的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
36.本发明公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
37.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
38.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
39.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
40.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
41.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
42.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
43.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
44.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
45.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献