CN114765677A - 多人视频会话方法、装置、计算机设备及存储介质 - Google Patents
多人视频会话方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114765677A CN114765677A CN202110034187.7A CN202110034187A CN114765677A CN 114765677 A CN114765677 A CN 114765677A CN 202110034187 A CN202110034187 A CN 202110034187A CN 114765677 A CN114765677 A CN 114765677A
- Authority
- CN
- China
- Prior art keywords
- video
- decoding
- data
- terminal
- compression data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000006835 compression Effects 0.000 claims abstract description 241
- 238000007906 compression Methods 0.000 claims abstract description 241
- 230000002159 abnormal effect Effects 0.000 claims abstract description 87
- 230000004044 response Effects 0.000 claims description 55
- 230000008859 change Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 abstract description 33
- 230000000694 effects Effects 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 13
- 230000005856 abnormality Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009954 braiding Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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
- H04N7/155—Conference systems involving storage of or access to video conference sessions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请是关于一种多人视频会话方法、装置、计算机设备及存储介质,所述方法包括:获取至少两路视频压缩数据,通过硬件解码方式对至少两路视频压缩数据分别进行解码,获得至少两路视频压缩数据各自的硬解码结果;响应于至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。通过上述方案,在基于云服务器的多人视频会话过程中,同时考虑了多路视频压缩数据,当多路视频压缩数据中硬解码异常满足切换条件时,才将硬件解码方式切换为软件解码方式,在保证视频正常播放的同时,减小了CPU的资源占用率,从而兼顾编解码的准确性和效率,提高多人视频会话效果。
Description
技术领域
本申请涉及视频播放领域,特别涉及一种多人视频会话方法、装置、计算机设备及存储介质。
背景技术
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,人眼感知到的就是动作连续的视频。
相关技术中,由于连续的视频帧间相似性极高,为便于储存传输,我们需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余,当需要进行视频播放时,再将编码压缩后的视频数据通过解码还原,以获得可以播放的视频画面。通过软件调用CPU(CentralProcessing Unit,中央处理器)实现上述编码与解码的过程被称为软编解,软编解的成功率高不易出错,但占用的CPU资源较多;直接通过GPU(Graphics Processing Unit,图形处理器)等硬件中的逻辑电路时间上述编码与解码的过程被称为硬编解,硬编解容易出错但编解效率较高,且不用占用CPU资源,通常在多人视频会话等场景中,用户可以手动选择使用硬编解或软编解对视频文件进行处理。
然而,上述方案中,用户通常无法准确的选择编解码方式,导致多人视频会话过程中无法兼顾编解码的准确性和编码效率,影响多人视频会话效果。
发明内容
本申请实施例提供了一种多人视频会话方法、装置、设备及存储介质,可以在保证视频正常播放的同时,减小了CPU的资源占用率,该技术方案如下:
一方面,提供了一种多人视频会话方法,所述方法由终端执行,所述方法包括:
获取至少两路视频压缩数据,所述至少两路视频压缩数据是由所述第一终端在多人视频会话中的至少两个会话对端分别发送的;
通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果;
响应于所述第一终端的设备标识满足第一指定条件,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果;
响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式;所述硬解码异常的视频压缩数据是对应的硬解码结果满足异常条件的视频压缩数据。
又一方面,提供了一种多人视频会话装置,所述装置用于第一终端,所述装置包括:
压缩数据获取模块,用于获取至少两路视频压缩数据,所述至少两路视频压缩数据是由所述第一终端在多人视频会话中的至少两个会话对端分别发送的;
数据解码模块,用于响应于所述第一终端的设备标识满足第一指定条件,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果。
解码切换模块,用于响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式;所述硬解码异常的视频压缩数据是对应的硬解码结果满足异常条件的视频压缩数据。
在一种可能的实现方式中,所述切换条件包括:
所述至少两路视频压缩数据中,硬解码异常的视频压缩数据的路数大于或等于第一阈值。
在一种可能的实现方式中,所述硬解码结果包含第一硬解码结果;所述第一硬解码结果中包含至少两个画面帧数据;
所述装置还包括:
异常条件确定模块,用于响应于第一硬解码结果中,错误画面帧数据的数量大于画面帧阈值,确定所述第一硬解码结果满足异常条件。
在一种可能的实现方式中,所述异常条件确定模块,用于,
响应于第一硬解码结果中,第一画面帧数据中各个像素点对应的数据信息中,大于数据阈值的数量满足错误条件,将所述第一画面帧数据确定为错误画面帧数据;所述第一画面帧数据是所述第一硬解码结果中的任意一帧画面帧数据。
在一种可能的实现方式中,所述解码切换模块,包括:
软解码单元,用于响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,通过软件解码方式对所述至少两路压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的软解码结果;
解码切换单元,用于响应于所述至少两路视频压缩数据各自的软解码结果以及所述至少两路视频压缩数据各自的硬解码结果的差异大于差异阈值,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
在一种可能的实现方式中,所述数据解码模块,还用于,
响应于所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式,将所述第一终端对应的设备标识发送至所述多人视频会话对应的服务器,以便所述服务器更新所述第一指定条件。
在一种可能的实现方式中,所述装置还包括:
第一视频获取模块,用于响应于接收到第一触发操作,获取所述多人视频会话对应的第一视频数据;所述第一视频数据是所述第一终端的图像采集组件获取的视频数据;
第一视频编码模块,用于响应于所述第一终端的设备标识满足第二指定条件,通过硬件编码方式对所述第一视频数据进行编码,获得所述第一视频数据对应的视频压缩数据;
压缩数据发送模块,用于将所述视频压缩数据发送至所述多人视频会话对应的服务器,以便服务器将所述视频压缩数据发送至所述多人视频会话中的至少两个会话对端。
在一种可能的实现方式中,所述装置还包括:
编码切换模块,用于响应于接收到服务器下发的变更信息,将所述多人视频会话对应的编码方式切换为软件编码方式。
在一种可能的实现方式中,所述装置还包括:
错误信息获取模块,用于响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足上传条件,获取所述硬解码异常的视频压缩数据对应的错误信息;
错误信息发送模块,用于将所述错误信息发送至所述多人视频会话对应的服务器,以便服务器基于所述错误信息向所述错误信息对应的会话对端发送所述变更信息。
在一种可能的实现方式中,所述数据解码单元,包括:
设备平台获取子单元,用于获取所述第一终端对应的设备平台信息;所述设备平台信息用于指示所述第一终端对应的设备平台;
第一标识集合获取子单元,用于获取所述设备平台信息对应的第一标识集合;所述第一标识集合用于指示所述第一终端对应的设备平台中禁止使用硬编码方式的设备;
数据解码子单元,用于响应于所述第一标识集合中不存在所述设备标识,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果。
在一种可能的实现方式中,所述第一终端为包含第一设备和第二设备的个人计算机;所述设备标识包括第一设备标识与第二设备标识;所述第一设备标识用于指示支持硬件解码方式的所述第一设备;所述第二设备标识用于指示支持硬件解码方式的所述第二设备;
所述数据解码单元,包括:
优先级参数获取子单元,用于响应于所述第一设备标识与所述第二设备标识均满足第一指定条件,获取所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数;所述优先级参数用于指示支持硬件解码方式的设备的优先级;
第一硬解码设备获取子单元,用于基于所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数,确定第一硬解码设备;
第一硬解码子单元,用于基于所述第一硬解码设备,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的第一硬解码结果。
在一种可能的实现方式中,所述解码切换模块还用于,
响应于所述至少两路视频压缩数据中,所述第一硬解码结果满足异常条件的视频压缩数据满足切换条件,基于所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数,确定第二硬解码设备;
基于所述第二硬解码设备,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果;
响应于所述至少两路视频压缩数据中,所述第二硬解码结果满足异常条件的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
又一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的多人视频会话方法。
再一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述的多人视频会话方法。
又一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述多人视频会话方法。
本申请提供的技术方案可以包括以下有益效果:
在多人会话场景中,先采用硬件解码方式实现对至少两路视频压缩数据进行硬解码,此时对CPU的资源占用率较低,当通过硬件解码方式对该至少两路视频压缩数据进行硬解码出现异常,且至少两路视频压缩数据中的异常达到切换条件,再切换为通过CPU对该多人视频会话进行软件解码。通过上述方案,在多人视频会话中,同时考虑了多路视频压缩数据,当多路视频压缩数据中硬解码异常满足切换条件时,才将硬件解码方式切换为软件解码方式,在多人视频会话过程中,在保证视频正常播放的同时,减小了CPU的资源占用率,从而兼顾编解码的准确性和效率,提高多人视频会话效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种多人视频会话系统的结构示意图;
图2是根据一示例性实施例示出的一种多人视频会话方法的流程示意图;
图3是根据一示例性实施例示出的一种多人视频会话方法的流程示意图;
图4示出了本申请实施例涉及的一种多人视频会议引擎流程框架图;
图5是根据一示例性实施例示出的一种多人视频会话中的解码方式切换示意图;
图6是根据一示例性实施例示出的一种多人视频会话中的编码方式切换示意图;
图7是根据一示例性实施例示出的一种多人视频会话装置的结构方框图;
图8示出了本申请一个示例性实施例示出的计算机设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在对本申请所示的各个实施例进行说明之前,首先对本申请涉及到的几个概念进行介绍:
1)软编解
软编解是使用CPU进行编解码算法运算,占用CPU资源但具有良好的适应性和画质稳定性,大多数视频会议都会使用软编解方式进行视频数据编解码。近年来新一代编码标准H.265以其比H.264节省30%以上的压缩量及更好画质的能力,也逐渐在视频会议场合得到了应用,由于高压缩比对应的计算复杂度也比H.264大幅提升,因此随着H.265使用软编解会出现更明显的高CPU占用等性能问题。
2)硬编解
硬件编解码器是调用GPU芯片专门的并行运算模块做编解码,能明显减小对CPU运算的负载,但由于众多的厂商对此模块能力的尤其在对较新的H.265编码标准的能力支持上不一致,设备机型及系统的多样性也使得无法完全测试覆盖,因此使用硬件编解码能力会有硬件系统兼容性及容易出现编解码失败等不稳定问题。一些视频直播软件为了能应用上硬件编解码器在界面提供软硬件切换的选项供用户选择,让用户在使用硬件编解码器出现异常表现时能手动切换至软件编解码器,但这种使用方式给用户带来使用门槛及带来不便。
3)云计算
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
4)云会议
云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。
目前国内云会议主要集中在以SaaS(Software as a Service,软件即服务)模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。
在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。
云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在政府、军队、交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。
图1是根据一示例性实施例示出的一种多人视频会话系统的结构示意图。该系统包括:后台服务器120以及用户终端140。
后台服务器120是一台服务器,或者包括若干台服务器,或者是一个虚拟化平台,或者是一个云计算服务中心等,本申请不做限制。其中,后台服务器120中还包含数据存储模块,其中数据存储模块可以用于存储各个平台对应的设备标识集,该设备标识集中用于存储无法正常进行硬编码或硬解码的设备标识。
用户终端140可以是具有视频播放功能的终端设备,比如,用户终端可以是手机、平板电脑、膝上型便携计算机和台式计算机等等。用户终端140的数量不做限定。
其中,用户终端140中可以安装有客户端,该客户端可以是办公类客户端、即时通信客户端、浏览器客户端、教育客户端等。本申请实施例不限定客户端的软件类型。
用户终端140与后台服务器120之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,该系统还可以包括管理设备(图1未示出),该管理设备与后台服务器120之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
图2是根据一示例性实施例示出的一种多人视频会话方法的流程示意图。该方法可以由计算机设备执行,该计算机设备可以是用户终端,其中,该用户终端可以是上述图1所示的实施例中的用户终端140。如图2所示,该多人视频会话的流程可以包括如下步骤:
步骤21,获取至少两路视频压缩数据,该至少两路视频压缩数据是由该第一终端在多人视频会话中的至少两个会话对端分别发送的。
在一种可能的实现方式中,该多人视频会话可以是具有视频会话功能的应用程序的用户终端接收到用户的第一触发操作时,在该应用程序的多人视频会话界面上进行的多人视频会话,且该多人视频会话是由该第一终端与至少两个会话对端共同构建的。
其中,该第一触发操作可以是该用户对多人视频会话的创建操作,即该用户可以通过第一触发操作实现邀请多个该应用程序对应的用户账号进行多人视频会话;或者该第一触发操作可以是该用户对该多人视频会话的加入操作,即该用户可以通过第一触发操作实现加入已经通过该应用程序创建的多人视频会话。
步骤22,响应于该第一终端的设备标识满足第一指定条件,通过硬件解码方式对该至少两路视频压缩数据分别进行解码,获得该至少两路视频压缩数据各自的硬解码结果。
其中,硬件解码方式是通过GPU或DSP等芯片,使用GPU资源或DSP硬件资源实现对编码视频流进行解码的方案。
在一种可能的实现方式中,当该第一终端为PC(Personal Computer)个人电脑时,该第一终端中通常包含CPU以及GPU,其中PC个人电脑中存在一个CPU,该CPU可以通过相应的软编解软件进行视频画面数据的编码或解码。
PC个人电脑中还可以包括两种类型的显卡(GPU),即独立显卡以及集成显卡,独立显卡是以芯片或芯片组模块形式独立运行与PC个人电脑中的一个GPU模块,独立显卡具备单独的显存,不占用系统的内存;而集成显卡是集成于CPU中的一个GPU区域,与CPU共享系统内存。
该独立显卡与集成显卡都可以作为GPU实现对视频画面数据的编码与解码,但该独立显卡或集成显卡能够进行的编解码类型与该独立显卡或集成显卡的显卡型号有关。
其中,PC个人电脑中需要包含一个CPU,除了包含CPU之外,该PC个人电脑可以包含集成显卡,也可以包含独立显卡,也可以同时包含集成显卡与独立显卡。
在一种可能的实现方式中,该第一终端为移动终端时,该第一终端中包含的可以进行图像处理的芯片为SOC(System on Chip,片上系统)芯片,该SOC中集成了CPU芯片,GPU芯片以及用于移动通信的基带芯片等。因此该SOC中的CPU区域可以通过相应的软编解软件进行视频画面的软编码或软解码;该SOC中的GPU区域可以进行视频画面数据的硬编码或硬解码。
在一种可能的实现方式中,该第一终端的设备标识用于指示该第一终端的终端型号。该第一终端是移动终端时,该第一终端的设备标识可以用于指示该第一终端的品牌,该第一终端在该品牌内对应的型号信息,以及该第一终端对应该品牌内的种类名称的配置等级。例如,该第一终端的设备标识可以指示该第一终端是A品牌的终端,且该第一终端在A品牌内的型号信息为XX123,该第一终端在A品牌内的型号信息的配置等级为最高级。
在另一种可能的实现方式中,该第一终端的设备标识用于指示该第一终端的配置信息,该配置信息包含该第一终端的内存大小、内存标识、CPU标识、GPU标识中的至少一者。其中该内存标识用于指示该终端采用内存的种类(例如DDR3、DDR4以及内存对应的厂商),该CPU标识用于指示该终端中CPU的厂商以及型号信息,该GPU标识用于指示该终端中GPU的厂商以及型号信息。
其中,该视频压缩数据是视频画面数据通过编码后压缩得到的数据。该视频压缩数据通过发送终端传输至接收终端后,接收终端可以通过硬件解码方式或软件解码方式,基于该视频压缩数据的编码方式对该视频压缩数据进行解码,得到该视频压缩数据中包含的硬解码结果。
在一种可能的实现方式中,当响应于该第一终端的设备标识满足第一指定条件,将该多人视频会话对应的解码方式确定为硬件解码方式之后,该第一终端中该多人视频会话的解码方式被确定为硬件解码方式,此时可以通过第一终端中的GPU对该多人视频会话对应的视频画面数据进行硬解码,得到该多人视频会话中至少两路视频画面数据分别对应的视频压缩数据。
在一种可能的实现方式中,该多人视频会话是至少三个终端进行的视频会话,因此在该第一终端显示的该多人视频会话对应的视频会话界面中,至少需要包含除该第一终端之外的其他两个终端对应的视频画面,因此该第一终端至少接收到两个视频压缩数据,并根据该视频压缩数据对应的编码方式进行解码,得到至少两个终端对应的硬解码结果,并将该视频画面数据对应的视频画面显示与该多人视频会话对应的视频会话界面中。
在一种可能的实现方式中,该多人视频会话中的第二终端可以选择不发送该第二终端对应的视频画面数据,此时该第一终端的视频会话界面中可以将该第二终端对应的视频画面的显示区域全黑显示。
步骤23,响应于该至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将该多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
综上所述,在本申请实施例所示的方案中,在多人会话场景中,先采用硬件解码方式实现对至少两路视频压缩数据进行硬解码,此时对CPU的资源占用率较低,当通过硬件解码方式对该至少两路视频压缩数据进行硬解码出现异常,且至少两路视频压缩数据中的异常达到切换条件,再切换为通过CPU对该多人视频会话进行软件解码。通过上述方案,在多人视频会话中,同时考虑了多路视频压缩数据,当多路视频压缩数据中硬解码异常满足切换条件时,才将硬件解码方式切换为软件解码方式,在多人视频会话过程中,在保证视频正常播放的同时,减小了CPU的资源占用率,从而兼顾编解码的准确性和效率,提高多人视频会话效果。
图3是根据一示例性实施例示出的一种多人视频会话方法的流程示意图。该方法可以由计算机设备执行,该计算机设备可以是用户终端,其中,该用户终端可以是上述图1所示的实施例中的用户终端140。如图3所示,该多人视频会话的流程可以包括如下步骤:
步骤301,获取至少两路视频压缩数据。
在一种可能的实现方式中,该多人视频会话是至少三个该具有视频会话功能的应用程序对应的用户进行的视频会话。
其中,该多人视频会话可以是基于视频会议形式的视频会话,即该多人视频会话可以是多人视频会议。
在一种可能的实现方式中,该多人视频会议还可以是云会议。
在一种可能的实现方式中,当该至少三个具有视频会话功能的应用程序对应的用户账号进行的视频会话中,由于至少一个用户账号退出导致该具有视频会话的应用程序的多人视频会话界面中只对应两个用户时,该多人视频会话界面可以转变为双人视频会话界面。
在一种可能的实现方式中,第一用户账号可以在该具有视频会话功能的应用程序中,邀请第二用户账号进行双人视频会话,并打开双人视频会话界面。
该双人视频会话界面上可以含有邀请控件,当响应于接收到双人视频会话界面对应的任意一个用户账号的指定邀请操作,该具有视频会话功能的应用程序可以向该指定邀请操作对应的第三用户账号发出邀请,当该第三用户账号接收邀请后,该双人视频会话界面可以变更为多人视频会话界面。
步骤302,响应于该第一终端的设备标识满足第一指定条件,通过硬件解码方式对该至少两路视频压缩数据分别进行解码,获得该至少两路视频压缩数据各自的硬解码结果。
在一种可能的实现方式中,获取该第一终端的设备标识;响应于该设备标识满足第一指定条件,通过硬件解码方式对该至少两路视频压缩数据分别进行解码,获得该至少两路视频压缩数据各自的硬解码结果。
在一种可能的实现方式中,获取该第一终端对应的设备平台信息;该设备平台信息用于指示该第一终端对应的设备平台;获取该设备平台信息对应的第一标识集合;该第一标识集合用于指示该第一终端对应的设备平台中禁止使用硬编码方式的设备;响应于该第一标识集合中不存在该设备标识,通过硬件解码方式对该至少两路视频压缩数据分别进行解码,获得该至少两路视频压缩数据各自的硬解码结果。
其中,设备平台信息用于指示该第一终端对应的设备平台的种类,该第一终端对应的设备平台包含IOS、Android以及windows,即该设备平台信息用于指示该第一终端对应的设备平台是IOS、Android以及windows三种设备平台中的其中一种。且该第一标识集合用于指示该第一终端对应的设备平台中禁止使用硬解码的设备,该IOS、Android以及windows中存在各自设备平台中禁止使用硬解码的设备对应的标识集合,该第一标识集合是该IOS、Android以及windows对应的标识集合中与该第一终端对应的标识集合。
在一种可能的实现方式中,当该设备标识用于指示该第一终端的终端型号时,该第一标识集合用于指示该第一终端对应的设备平台中禁止使用硬解码的终端型号;当该设备标识用于指示该第一终端的配置信息时(即第一终端的内存大小、内存标识、CPU标识、GPU标识中的至少一者),该第一标识集合用于指示该第一终端对应的设备平台中禁止使用硬解码的终端的配置信息。
即可以根据该设备标识与该第一标识集合之间的对应关系,确定该设备标识对应的第一终端是否允许采用硬件解码方式对视频压缩数据进行解码。
在一种可能的实现方式中,获取该第一终端对应的设备平台信息,该设备平台信息用于指示该第一终端对应的设备平台,获取该设备平台信息对应的第二标识集合,该第二标识集合用于指示该第一终端对应的设备平台中允许使用硬解码的设备;响应于该第二标识集合中存在该第一终端的设备标识,将该多人视频会话对应的解码方式确定为硬件解码方式。
即除了获取该第一终端对应的设备平台中禁止使用硬解码的设备名单,通过该设备名单与该第一终端的设备信息进行对比,以确定该第一终端是否可以采用硬解码之外,还可以获取该第一终端对应的设备平台中允许使用硬解码的设备名单,通过该设备名单与该第一终端的设备信息进行对比,当该第一终端对应的设备信息在该第一终端内时,该第一终端可以通过硬件解码方式对视频压缩数据进行解码。
在一种可能的实现方式中,该第一终端为包含第一设备和第二设备的个人计算机;该设备标识包括第一设备标识与第二设备标识;该第一设备标识用于指示支持硬件解码方式的第一设备;该第二设备标识用于指示支持硬件解码方式的第二设备;响应于该第一设备标识与该第二设备标识均满足第一指定条件,获取该第一设备标识的优先级参数与该第二设备标识中的优先级参数;该优先级参数用于指示支持硬件解码方式的设备的优先级;基于该第一设备标识对应的优先级参数与该第二设备标识中的优先级参数,确定第一硬解码设备;基于该第一硬解码设备,通过硬件解码方式对该至少两路视频压缩数据分别进行解码,获得该至少两路视频压缩数据各自的第一硬解码结果。
当该第一终端为PC个人计算机时,该第一终端中可以存在独立显卡与集成显卡,以第一设备为独立显卡,第二设备为集成显卡为例,获取该第一终端对应的第一设备标识与第二设备标识,并根据该第一设备标识获取该第一设备(独立显卡)的设备信息,根据该第二设备标识获取该第二设备(集成显卡)的设备信息。
当该第一设备标识与该第二设备标识中存在一者满足该第一指定条件时,即该PC个人计算机可以根据第一设备标识与该第二设备标识中满足该第一指定条件的设备标识对应的设备进行硬件解码。
在一种可能的实现方式中,响应于该第一设备标识与该第二设备标识均满足第一指定条件,将该多人视频会话对应的解码方式确定为硬解码。
当该第一设备标识与该第二设备标识均满足第一指定条件时,即该第一终端即可以通过第一设备对该视频压缩数据进行硬解码,也可以通过第二设备对该视频压缩数据进行硬解码。
在一种可能的实现方式中,当该第一终端为移动终端时,当该第一终端对应的SOC满足第一指定条件时,可以将该多人视频会话对应的解码方式确定为硬解码。
即当该第一终端是移动终端时,该CPU与GPU都集成于SOC上,因此可以通过该SOC的设备标识确定该第一终端是否可以通过该SOC中的GPU区域对该视频压缩数据进行硬解码。
在另一种可能的实现方式中,当该第一终端是移动终端时,该第一终端对应的型号通常与该终端的SOC信息是对应的,即同样的终端信号与的SOC信息是相同的,因此可以通过该第一终端对应的终端型号,确定该第一终端是否可以通过SOC中的GPU区域对该视频压缩数据进行硬解码。
步骤303,响应于该至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将该多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
即当该至少两路视频压缩数据分别对应的硬解码结果满足切换条件时,该第一终端停止对该至少两路视频压缩数据进行硬解码,将该多人视频会话对应的解码方式确定为软解码后,再通过CPU对该至少两路视频压缩数据进行软解码。
在一种可能的实现方式中,该切换条件包括:
该至少两路视频压缩数据中,硬解码异常的视频压缩数据的路数大于或等于第一阈值。
在多人视频会话中,第一终端可以同时接受到至少两路的视频压缩数据,且第一终端对该至少两路的视频压缩数据进行解码后,在该多人视频会话对应的多人视频会话界面上显示该至少两路的视频压缩数据对应的视频画面。此时,当该多人视频会话界面上显示的视频画面出现错误,或者该第一终端对该视频压缩数据进行解码时出现异常,可能是第一终端接收到的该视频压缩数据存在问题,此时如果将错误原因归咎于硬解码方式,并切换为软解码,不但无法解决视频压缩数据解码错误的问题,还会导致CPU的占用率提高。
因此,在将视频压缩数据的解码方式由硬件解码方式切换为软件解码方式之前,可以对该至少两路视频压缩数据解码出的硬解码结果判定。例如,第一终端在该多人视频会话中,可以同时接收到4路视频压缩数据,并根据该4路视频压缩数据解码出4路硬解码结果,将该硬解码结果对应的视频画面显示与该多人视频会话界面上。此时第一终端中若存在一路视频压缩数据解码出现错误,得到了无法正常显示的错误硬解码结果,其他三路视频压缩数据未发生解码出错,此时很可能是该错误硬解码结果对应的视频压缩数据本身存在问题,即可能是在该视频压缩数据对应的终端产生该视频压缩数据的编码过程中出现了错误;而当该第一终端在该多人视频会话中的4路视频压缩数据中,存在3路甚至4路视频压缩数据均出现错误,则说明很可能是该第一终端采用的硬解码方式出现了错误,需要将该第一终端对应的解码方式由硬解码切换为软解码。
在一种可能的实现方式中,该硬解码结果包含第一硬解码结果;该第一硬解码结果中包含至少两个画面帧数据;响应于第一硬解码结果中,错误画面帧数据的数量大于画面帧阈值,确定该第一硬解码结果满足异常条件。
当第一终端对该至少两路视频压缩数据进行解码,可以得到该至少两路视频压缩数据对应的第一硬解码结果,该第一硬解码结果包括至少两个画面帧数据,且该第一终端对视频压缩数据进行解码得到的至少两个画面帧数据中,可能包含错误画面帧数据,该错误画面帧数据是无法正常播放的画面帧对应的数据。
当该错误画面帧数据的数量小于或等于画面帧阈值时,该错误画面帧数据对应的错误画面可能难以被人眼识别,即该第一终端对该至少两路视频压缩数据进行解码的错误率在允许范围之内,此时第一硬解码结果不满足异常条件;当该错误画面帧数据的数量大于画面帧阈值时,该错误画面帧数据会影响用户对该多人视频会话的观感体验,此时将确定该第一硬解码结果满足异常条件。
在一种可能的实现方式中,响应于第一硬解码结果中,第一画面帧数据中各个像素点对应的数据信息中,大于数据阈值的数量满足错误条件,将该第一画面帧数据确定为错误画面帧数据;该第一画面帧数据是该第一硬解码结果中的任意一帧画面帧数据。
第一硬解码结果中的第一画面帧数据中包含该画面中各个像素点对应的数据信息,将该画面帧数据中大于数据阈值的数据确定为错误数据;当该错误数据的数量超过错误阈值(即满足错误条件),即该画面帧数据的各个数据中的错误数据的数量可以影响到该画面帧数据的显示效果,即该画面帧数据已经失真,此时该画面帧数据可以被确定为错误画面帧数据;而当该画面帧数据对应的各个数据中,大于数据阈值的数量不大于错误阈值,即该画面帧数据中的各个数据中的错误数据对该画面帧数据的显示效果的影响较小,根据该画面帧数据显示的视频画面仍然可以展示该画面帧数据对应的图像信息,因此该画面帧数据不为错误画面帧数据。
在另一种可能的实现方式中,当该第一终端启动该硬件解码方式对应的硬件解码器时,可能会直接出现错误,此时将该至少两路视频压缩数据均确定为硬解码异常。
在一种可能的实现方式中,响应于该至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,通过软件解码方式对该至少两路压缩数据分别进行解码,获得该至少两路视频压缩数据各自的软解码结果;响应于该至少两路视频压缩数据各自的软解码结果以及该至少两路视频压缩数据各自的硬解码结果的差异大于差异阈值,将该多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
当该至少两路视频压缩数据满足切换条件时,即该满足异常条件的视频压缩数据的硬解码结果满足切换条件时,可以先通过软件解码方式对该至少两路视频压缩数据进行解码,获得该至少两段视频压缩数据分别对应的软解码结果;再将该至少两段视频压缩数据分别对应的硬解码结果,与该至少两段视频压缩数据分别对应的软解码结果进行对比。
当该至少两段视频压缩数据分别对应的硬解码结果与该至少两段视频压缩数据分别对应的软解码结果的差异值小于或等于差异阈值时,说明通过软件解码方式与硬件解码方式对该至少两段视频压缩数据进行解码得到的数据差异不大,即该硬解码结果出错与硬件解码方式无关,不需要将硬件解码方式切换为软件解码方式;当该至少两段视频压缩数据分别对应的硬解码结果与该至少两段视频压缩数据分别对应的软解码画面数据的差异值大于差异阈值时,说明通过软解码方式解码出的数据与通过硬件解码方式解码出的数据相差较大,由于硬解码的不稳定性,该硬解码结果出错可能是由于硬件解码方式造成的,此时将多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
在一种可能的实现方式中,该至少两段视频压缩数据分别对应的硬解码结果与该至少两段视频压缩数据分别对应的软解码结果的差异值小于或等于差异阈值时,将该硬件编码异常对应的视频压缩数据的错误信息上传至服务器,以便服务器根据该错误信息发送变更信息。
在一种可能的实现方式中,响应于该多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式,将该第一终端对应的设备标识发送至该多人视频会话对应的服务器,以便该服务器更新该第一指定条件。
当该至少两路视频压缩数据分别对应的硬解码结果满足切换条件时,即通过硬解码方式得到的至少两路视频压缩数据分别对应的硬解码结果存在错误,切换为软解码时,将该第一终端的设备标识发送至该多人视频会话对应的服务器,以便服务器根据该第一终端的设备标识更新第一指定条件。
即该第一指定条件可以是存储与该多人视频会话对应的服务器中的,且当该第一终端通过满足该第一指定条件,进行硬编码后,硬编码得到的硬解码结果出错满足切换条件,说明该第一终端无法正常进行硬编码,此时说明第一指定条件可能需要更新,因此将该第一终端的设备标识上传至服务器,以便服务器更新该第一指定条件。
在一种可能的实现方式中,响应于该至少两路视频压缩数据中,硬解码异常的视频压缩数据满足上传条件,获取该硬解码异常的视频压缩数据对应的错误信息;将该错误信息发送至该多人视频会话对应的服务器,以便服务器基于该错误信息向该错误信息对应的会话对端发送变更信息。
当该至少两路视频压缩数据中硬解码异常的视频压缩数据满足上传条件时,可以获取该至少两路视频压缩数据对应的错误信息,终端可以根据该错误信息确定该满足异常条件的硬解码结果对应的视频压缩数据,再将该视频压缩数据上传至该多人视频会话对应的服务器中。
在一种可能的实现方式中,该上传条件为该至少两路视频压缩数据分别对应的硬解码结果中,错误硬解码结果对应的视频压缩数据的数量小于第一阈值。
例如,即在将视频压缩数据的解码方式由硬解码切换为软解码,对该至少两路视频压缩数据解码出的硬解码结果进行判定。例如,第一终端在该多人视频会话中,可以同时接收到4路视频压缩数据,并根据该4路视频压缩数据解码出4路硬解码结果,将该硬解码结果对应的视频画面显示与该多人视频会话界面上。此时第一终端中若存在一路视频压缩数据解码出现错误,得到了无法正常显示的错误硬解码结果(即满足异常条件的硬编码结果),其他三路视频压缩数据未发生解码出错,此时很可能是该错误硬解码结果对应的视频压缩数据本身存在问题,即可能是在该视频压缩数据对应的终端产生该视频压缩数据的编码过程中出现了错误,此时第一终端获取该错误硬解码结果对应的视频压缩数据对应的错误信息,并将该错误信息上传至该多人视频会话对应的服务器,以便服务器根据该错误信息发送变更信息,指示该错误信息对应的终端变更编码方式。
在一种可能的实现方式中,当第一终端为包含第一设备和第二设备的个人计算机,且该个人计算机中包含该第一设备与该第二设备时,响应于该至少两路视频压缩数据中,该第一硬解码结果满足异常条件的视频压缩数据满足切换条件,基于该第一设备标识对应的优先级参数与该第二设备标识中的优先级参数,确定第二硬解码设备;基于该第二硬解码设备,通过硬件解码方式对该至少两路视频压缩数据分别进行解码,获得该至少两路视频压缩数据各自的硬解码结果;响应于该至少两路视频压缩数据中,该第二硬解码结果满足异常条件的视频压缩数据满足切换条件,将该多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
当第一终端为PC个人计算机时,当该至少两路视频压缩数据中的硬解码异常的视频压缩数据满足切换条件,即该至少两路视频压缩数据分别对应的硬解码结果中错误较多,满足异常条件的硬解码结果较多时,通过该个人计算机的第一硬解码设备对该至少两路视频压缩数据采取的硬解码操作不成功,由于该第一硬解码设备是该第一设备与第二设备中优先级较高的,此时该第一硬解码设备无法正常采取硬解码时,可以将该第一设备与第二设备中优先级低的设置为第二硬解码设备,并通过第二硬解码设备对该至少两路视频压缩数据进行硬解码。
当该第二硬解码设备可以正常对该至少两路视频压缩数据进行硬解码,且硬解码异常的视频压缩数据不满足切换条件,则说明该第二硬解码设备对该至少两路视频压缩数据进行硬解码得到的第二硬解码结果可以正常播放,此时,继续采用第二硬解码设备对该至少两路视频压缩数据进行硬解码。
当该第二硬解码设备可以正常对该至少两路视频压缩数据进行硬解码,且硬解码异常的视频压缩数据满足切换条件,说明该第二硬解码设备也无法成功对该至少两路视频压缩数据进行硬解码,此时将该多人视频会话对应的解码方式切换为软件解码方式,以保证多人视频会话中至少两路视频压缩数据对应的视频画面的正常播放。
在一种可能的实现方式中,响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件时,通过硬件解码方式与软件解码方式对该至少两路视频压缩数据分别进行解码,获得硬件解码视频数据以及软件解码视频数据;响应于该硬件解码视频数据满足视频异常条件,播放该软件解码视频数据对应的视频画面。
当该至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件时(即通过硬件解码方式对视频压缩数据进行硬解码出现异常时),可以先同时采取硬件解码方式与软件解码方式对该至少两路视频压缩数据分别进行解码,以获得至少两路视频压缩数据对应的硬件解码视频数据以及至少两路视频压缩数据对应的软件解码视频画数据。当该硬件解码视频数据满足视频异常条件(即视频播放出现异常)时,说明该硬件解码视频数据仍然存在问题(即硬件解码方式对视频压缩数据进行硬解码仍然存在异常),此时说明该硬解码异常的视频压缩数据不是由于偶发性的解码错误导致的,因此直接播放软件解码方式对应的软件解码视频数据,并将后续的解码方式切换为软件解码方式,实现了视频流的无缝切换,终端不需要停止播放再切换解码方式,实现了硬件解码对应的视频画面向软件解码对应的视频画面的平稳切换,提高了画面的显示效果。
在一种可能的实现方式中,该视频异常条件为,指定时间段内的硬件解码视频数据中,异常的硬件解码视频数据的数量大于视频异常阈值。
即当指定时间段内的硬件解码视频数据中,异常的硬件解码视频数据的数量大于视频异常阈值时,说明该硬件解码视频数据中,异常的硬件解码视频数据出现的频率可能会影响用户对视频的正常观看,因此将多人视频会话对应的解码方式直接切换为软件解码方式,并直接播放该软件解码视频数据对应的视频画面。
步骤304,响应于接收到第一触发操作,获取该多人视频会话对应的第一视频数据;该第一视频数据是该第一终端的图像采集组件获取的视频数据。
其中,第一触发操作可以是用户对该第一终端中具有视频会话功能的应用程序的操作,当第一终端接收到该第一触发操作后,在该具有视频会话功能的应用程序中展示视频会话界面,此时该第一终端对应的视频会话界面中,同时展示了该多人视频会话中的至少两个会话对端对应的视频画面,该视频画面即为该至少两个会话对端通过该至少两个会话对端的图像采集组件获取的视频数据。
步骤305,响应于该第一终端的设备标识满足第二指定条件,通过硬件编码方式对该第一视频数据进行编码,获得该第一视频数据对应的视频压缩数据。
在一种可能的实现方式中,获取该第一终端对应的设备平台信息;获取该设备平台信息对应的第三标识集合;该第三标识集合用于指示该第一终端对应的设备平台中禁止使用硬编码方式的设备;响应于该第三标识集合中不存在该设备标识,通过硬件编码方式对该第一视频数据分别进行编码,获得该第一视频数据对应的视频压缩数据。
在一种可能的实现方式中,当该设备标识用于指示该第一终端的终端型号时,该第四标识集合用于指示该第一终端对应的设备平台中禁止使用硬编码的终端型号;当该设备标识用于指示该第一终端的配置信息时(即第一终端的内存大小、内存标识、CPU标识、GPU标识中的至少一者),该第四标识集合用于指示该第一终端对应的设备平台中禁止使用硬编码的终端的配置信息。
即可以根据该设备标识与该第四标识集合之间的对应关系,确定该设备标识对应的第一终端是否允许采用硬件编码方式对视频压缩数据进行编码。
在一种可能的实现方式中,获取该第一终端对应的设备平台信息,该设备平台信息用于指示该第一终端对应的设备平台,获取该设备平台信息对应的第四标识集合,该第四标识集合用于指示该第一终端对应的设备平台中允许使用硬编码的设备;响应于该第四标识集合中存在该第一终端的设备标识,将该多人视频会话对应的编码方式确定为硬件编码方式。
即除了获取该第一终端对应的设备平台中禁止使用硬编码的设备名单,通过该设备名单与该第一终端的设备信息进行对比,以确定该第一终端是否可以采用硬编码之外,还可以获取该第一终端对应的设备平台中允许使用硬编码的设备名单,通过该设备名单与该第一终端的设备信息进行对比,当该第一终端对应的设备信息在该第一终端内时,该第一终端可以通过硬件编码方式对视频压缩数据进行编码。
在一种可能的实现方式中,响应于该第一终端的设备标识满足第二指定条件,通过硬件编码方式对该第一视频数据进行编码;响应于编码过程出现异常,将该第一视频数据对应的编码方式切换为软件编码方式。
当该第一终端的设备标识满足第二指定条件时,该第一终端被允许使用硬件编码方式对该第一视频数据进行编码,当该第一终端响应于该编码过程出现异常,即通过硬件编码方式对该第一视频数据进行编码出现错误,第一终端无法正常通过硬件编码方式对该第一视频数据进行编码时,该第一终端将该编码方式切换为软件编码方式,并根据该软件编码方式对该第一视频数据进行编码。
其中,编码出现异常,至少包括以下几种情况:
第一终端无法正常启动该硬件编码器;
第一终端通过硬件编码器对该第一视频数据进行编码的过程中,该硬件编码器由于错误直接停止对该第一视频数据进行编码;
第一终端通过硬件编码器对该第一视频数据进行编码的过程中,该硬件编码器在对该第一视频数据进行编码时,停止在某一编码进度达到预定时间,此时可以认为该硬件编码器卡顿,无法正常对第一视频数据进行编码。
在一种可能的实现方式中,该响应于对第一终端的设备标识满足第二指定条件,通过两个硬件编码器对该第一视频数据进行编码,获得该第一视频数据对应的至少两路视频压缩数据。
其中,该至少两路视频压缩数据,是压缩方式不同的压缩数据;对该两路视频压缩数据进行解码后得到的两路视频图像数据的分辨率不同。
在多人视频会议中,第一终端在对图像采集组件采集到的第一视频数据进行编码的过程中,通常可以通过两个编码器对该第一视频数据分别通过不同的压缩方式进行编码,得到与该第一视频数据对应的两路视频压缩数据并上传至服务器。
此时在该多人视频会话中的与该第一终端对应的任意一个会话对端,可以获取该第一视频数据对应的两路视频压缩数据中的任意一路,并根据该路视频压缩数据进行解码后得到的视频图像数据,展示相应的视频图像画面。且两路视频压缩数据解码后对应的视频图像画面的分辨率不同,也就是说第一终端同时上传了两个分辨率大小的压缩视频数据,且第一终端的会话对端可以选择获取该两个分辨率大小的压缩视频数据中的其中一个,并对该压缩视频数据进行解码后展示。
例如,当第一终端在该多人视频会话中的视频会话界面时,可以对该视频会话界面中的指定区域进行点击,该指定区域可以是该第一终端展示会话对端对应的视频画面的视频展示区域;响应于接收到对该会话对端的视频展示区域的指定操作,第一终端获取该会话对端对应的两个分辨率大小的压缩视频数据中,除正在展示的视频画面对应的压缩视频数据之外的另一个压缩视频数据,并进行解码,以实现切换该会话对端的视频画面的分辨率。
在一种可能的实现方式中,该第一终端为包含第一设备和第二设备的个人计算机;该设备标识包括第三设备标识与第四设备标识;该第三设备标识用于指示硬件编码方式的第一设备;该第四设备标识用于指示支持硬件编码方式的第二设备;响应于该第三设备标识与该第四设备标识均满足第三指定条件,获取该第三设备标识对应的优先级参数与该第四设备标识中的优先级参数;该优先级参数用于指示硬件编码方式的设备的优先级;基于该第三设备标识对应的优先级参数与该第四设备标识中的优先级参数,确定第一硬编码设备;基于该第一硬编码设备,通过硬件编码方式对该第一视频数据进行编码,获得该第一视频数据对应的第一硬编码结果。
当该第一终端为PC个人计算机时,该第一终端可以存在独立显卡与集成显卡,以该第一设备为独立显卡,第二设备为集成显卡为例,获取该第一终端对应的第三设备标识与该第四设备标识,并根据该第三设备标识获取该第一设备(独立显卡)的设备信息,根据该第四设备标识获取该第二设备(集成显卡)的设备信息。
当该第三设备标识与该第四设备标识中存在一者满足该第三指定条件时,即该PC个人计算机可以根据第三设备标识与该第四设备标识中满足该第三指定条件的设备标识对应的设备进行硬件编码。
在一种可能的实现方式中,响应于该第三设备标识与该第四设备标识均满足第三指定条件,将该多人视频会话中第一终端对应的编码方式确定为硬编码。
当该第三设备标识与该第四设备标识均满足第三指定条件时,该第一终端可以通过第一设备对第一视频数据进行硬编码也可以通过第二设备对该第一视频数据进行硬编码。
在一种可能的实现方式中,当该第一终端为移动终端时,当该第一终端对应的SOC满足第三指定条件时,可以将该多人视频会话对应的编码方式确定为硬编码。
即当该第一终端是移动终端时,该CPU与GPU都集成于SOC上,因此可以通过该SOC的设备标识确定该第一终端是否可以通过该SOC中的GPU区域对该视频压缩数据进行硬编码。
在另一种可能的实现方式中,当该第一终端是移动终端时,该第一终端对应的型号通常与该终端的SOC信息是对应的,即同样的终端信号与的SOC信息是相同的,因此可以通过该第一终端对应的终端型号,确定该第一终端是否可以通过SOC中的GPU区域对该视频压缩数据进行硬编码。
步骤306,将该视频压缩数据发送至该多人视频会话对应的服务器,以便服务器将该视频压缩数据发送至该多人视频会话中的至少两个会话对端。
当服务器接收到该第一终端发送的视频压缩数据后,可以将该视频压缩数据发送至与该第一终端对应的多人视频会话中的至少两个会话对端。
在一种可能的实现方式中,该视频压缩数据中还包括该视频压缩数据的端口标识,即该服务器可以根据该端口标识确定该视频压缩数据对应的发送设备与接收设备。
步骤307,响应于接收到服务器下发的变更信息,将该多人视频会话对应的编码方式切换为软件编码方式。
当该终端将该第一视频画面通过硬件编码方式编码后获得的视频压缩数据,发送至该服务器,以便服务器转发至各个该第一终端对应的会话对端。且该第一终端对应的会话对端,接收到该第一视频画面对应的视频压缩数据后,通过硬件解码方式或软件解码方式进行解码,当解码存在异常时,可以向该服务器上传错误信息。此时服务器可以根据该错误信息向第一终端发送变更信息,指示该错误信息对应的该第一终端,将硬件编码方式切换为软件编码方式。
在一种可能的实现方式中,该变更信息是服务器接收到该第一终端对应的指定次数的错误信息后,向该第一终端发送的。
在一种可能的实现方式中,该变更信息是服务器接收到该第一终端对应的指定个数的会话对端上传的错误信息后,向该第一终端发送的。
在一种可能的实现方式中,当该第一终端为包含第一设备和第二设备的个人计算机,且该个人计算机中包含该第一设备与该第二设备时,响应于该第一硬编码设备对第一视频数据进行编码出现异常,基于该第三设备标识对应的优先级参数与该第四设备标识中的优先级参数,确定第二硬编码设备;基于该第二硬编码设备,通过硬件编码方式对第一视频数据进行编码,获得该第一视频数据对应的硬编码结果;响应于该第二硬编码设备对该第一视频数据进行编码出现异常,将多人视频会话的编码方式切换为硬件编码方式。
当第一终端为PC个人计算机时,当通过第一硬编码设备对该第一视频数据进行硬编码出现异常时,即该个人计算机的第一硬编码设备对该第一视频数据采取的硬编码操作不成功,由于该第一硬编码设备是该第一设备与该第二设备中优先级较高的,此时该第一硬编码设备无法正常对该第一视频数据进行硬编码时,可以将该第一设备与该第二设备中优先级低的设置为第二硬编码设备,并通过第二硬编码设备对该第一视频数据进行硬编码。
当该第二硬编码设备可以正常对该第一视频数据进行硬编码时,说明通过该第二硬编码设备可以实现对该第一视频数据的硬编码,此时不需要将编码方式切换为软件编码方式。
当该第二硬编码设备对该第一视频数据进行硬编码时出现异常,说明该第二硬编码设备也无法实现对该第一视频数据的硬编码,此时需要将该多人视频会话对应的编码方式切换为软件编码方式,以保证该第一终端可以正常将该第一视频数据编码后上传至多人视频会话对应的服务器。
请参考图4,其示出了本申请实施例涉及的一种多人视频会议引擎流程框架图。如图4所示,该多人视频会议引擎流程包括:
S401,拉取云端配置。由于硬件与系统对硬编解的支持程度不一致带来的兼容性与稳定性问题,如在某些Android设备上硬编码存在码率不稳定,编码效果模糊、Mac部分旧设备存在H.265编码出来的码流不标准及解码软编码流异常等问题,可以对一些已知不可用的设备与系统收集为硬件黑名单下发,当第一终端需要进行多人视频会议时,可以将该第一终端与该硬件黑名单进行对比,判断该第一终端是否在该硬件黑名单,当该第一终端在该硬件黑名单内,让其进入会议时直接只走软编解,避免这类问题设备走硬件编解码以减少中途切换软编解的过程。
S402,启动平台硬编解器。当第一终端不在配置的黑名单中,则启动使用硬件编解码器。硬解编解码在不同系统平台有不同的实现框架,对于Apple平台系统(iOS/Mac),使用系统提供的VideoToolBox框架API(Application Programming Interface,应用程序接口)来实现H.264/265的编码与解码;在Android平台使用系统提供的MediaCodec架框;在Windows平台,系统没有简单的统一的架构,但GPU芯片厂商有封装实现了应用层的编解码库,对于Intel集成显卡芯片,使用Intel Media SDK封装的libmfx库,Nvdia显卡使用其提供的NVENC编码与NVDEC解码库,AMD芯片使用AMF库实现。
S403,判断平台硬编解码器是否启动成功。硬件编解码器的启动受硬件及系统状态影响有时会启动失败,如有时多个硬编同时启动使用、iOS/Android处于后台状态时会启动不成功,针对启动失败可视需要直接转为启动软编解以确保后续编解码顺利进行;当硬件编解码器的启动成功后,通过该硬件编解码器实现硬编解码流程。
S404,判断是否编解码失败。硬件编解码器具有不稳定性,有时会受系统状态影响执行失败,如某些Mac设备有时会出现编解码耗时过长会造成经常有卡顿现象,有些硬解近回成功但是解码出来的数据大小是异常不合理。针对编解码器启动成功但编解码过程中的失败,统计此类失败次数如越过设定的阀值,如编码出现过10帧的失败或解码超过一个GOP(Group of Pictures,画面组)的失败,可能此次硬件编解码器状态有异常可切为软解以确保视频会议过程的正常,并上报异常的硬件及系统信息;当编解码成功时,第一终端可以发送编码成功的数据,或者根据解码成功的数据进行图像的渲染。
S405,上报以供更新黑名单设置。服务器可以根据各个终端上报的异常的硬件以及系统信息更新完善配置黑名单,即后台可根据上报的信息统计如同类设备多次出现编码过程中失败,可以直接将该设备加入硬件配置黑名单,让其后续直接走软编解,避免这类问题设备走硬件编解码以减少中途切换软编的过程,该方式也能使得在应用过程中也能逐步自动完善配置。
其中,上述多人视频会议引擎也可以应用于双人视频会话场景中,例如,当第一终端与第二终端进行视频会话时,第一终端拉取云端配置,并根据该第一终端对应的设备标识与云端配置的比较结果,确定该第一终端是否可以采用硬件编码与硬件解码。
当该第一终端确定该第一终端不在该云端配置中的硬编解黑名单中时,该第一终端通过可以对该视频会话对应的第二终端传输的压缩视频数据进行硬件解码,同时,该第一终端还可以将该第一终端中的图像采集组件采集到的视频图像信息通过硬件编码的方式进行编码,上传至服务器以便转发至该第二终端。
对于第一终端的编码过程,当该第一终端通过硬解码器对第二终端对应的压缩视频数据进行硬件解码时,由于硬件解码器较不稳定,该硬件解码器可能在启动时就发生错误,此时终端响应于该硬件解码器未正常启动,直接通过软件解码方式对该视频压缩数据进行软件解码。或者,当该硬件解码器对该第二终端对应的压缩视频数据进行硬件解码时,还可能发生该硬件解码器对该压缩视频数据解码出现错误,该硬件解码器无法对该压缩视频数据进行继续压缩,此时第一终端检测到该硬件解码器报错、或者该硬件解码过程终止、或者该硬件解码过程保持在某一进度达到一定时间后,该第一终端判定该硬件解码过程异常,此时该第一终端将该解码方式切换为软件解码方式,对该压缩视频数据进行软件解码,以保证对第二终端发送的压缩视频数据对应的视频内容的正确显示。
对于第一终端的解码过程,当该第一终端通过硬编码器对该第一终端的图像采集组件采集到的视频图像数据进行压缩,以获得向该第二终端发送的压缩视频数据时,由于硬件编码器较不稳定,该硬件编码器可能在启动时就发生错误,此时终端响应于该硬件编码器未正常启动,直接通过软件编码方式对该视频压缩数据进行软件编码。或者当该硬件编码器对该第一终端的图像采集组件采集到的视频图像数据进行硬件编码时,还可能发生该硬件编码器对该视频图像数据编码出现错误,该硬件编码器无法对该视频图像数据进行继续压缩,此时第一终端检测到该硬件编码器报错、或者该硬件编码过程终止、或者该硬件编码过程保持在某一进度达到一定时间后,该第一终端判定该硬件编码过程异常,此时该第一终端将该编码方式切换为软件编码方式,对该视频图像数据进行软件编码,以获得传输至第二终端的视频压缩数据。
综上所述,本申请实施例所示方案中,在多人会话场景中,先采用硬件解码方式实现对至少两路视频压缩数据进行硬解码,此时对CPU的资源占用率较低,当通过硬件解码方式对该至少两路视频压缩数据进行硬解码出现异常,且至少两路视频压缩数据中的异常达到切换条件,再切换为通过CPU对该多人视频会话进行软件解码。通过上述方案,在多人视频会话中,同时考虑了多路视频压缩数据,当多路视频压缩数据中硬解码异常满足切换条件时,才将硬件解码方式切换为软件解码方式,在多人视频会话过程中,在保证视频正常播放的同时,减小了CPU的资源占用率,从而兼顾编解码的准确性和效率,提高多人视频会话效果。
图5是根据一示例性实施例示出的一种多人视频会话中的解码方式切换示意图。如图5所示,第一终端501通过服务器500,与该多人视频会话中第一终端的至少两个会话对端(以第二终端502以及第三终端503为例)构成了多人视频会话。
其中,在第一终端与第二终端以及第三终端开始多人视频会话之前,以第一终端为例,第一终端从该服务器500中获取与该第一终端的终端平台(即IOS、Android与windows中的任意一者)对应的第一标识集合504,并根据该第一终端的设备标识与第一标识集合504的关系,确定该第一终端可以采用硬解码方式对服务器转发的第二终端与第三终端的视频压缩数据进行解码,并得到第二终端的视频压缩数据对应的硬解码结果505,以及第三终端的视频压缩数据对应的硬解码结果506。
当该第二终端的视频压缩数据对应的硬解码结果505以及第三终端的视频压缩数据对应的硬解码结果506都出现异常,且满足切换条件后,第一终端可以将硬件解码方式切换为软件解码方式,将该第一终端的标识信息上传至服务器500,以便服务器根据该第一终端的标识信息更新该第一标识集合504。
图6是根据一示例性实施例示出的一种多人视频会话中的编码方式切换示意图。如图6所示,第一终端601通过服务器600,与该多人视频会话中第一终端的至少两个会话对端(以该至少两个会话对端为第二终端602以及第三终端603为例)构成了多人视频会话。
其中,在第一终端与该第二终端以及第三终端开始多人视频会话之前,以第二终端向第一终端发送的压缩视频数据的视频编码过程为例,在第二终端获取对应的视频压缩数据之前,该第二终端需要向服务器600获取与该第二终端的终端平台对应的第二标识集合604,并根据该第二终端的设备标识与该第二标识集合604的关系,确定该第二终端可以采用硬编码方式对该第二终端采集到的第一视频数据进行编码,以得到该第二终端对应的视频压缩数据。该第二终端将该视频压缩数据上传至该多人视频会话对应的服务器600,以便服务器600将该视频压缩数据转发至第一终端601。
此时第一终端,分别接收到了第二终端与第三终端对应的视频压缩数据,此时第一终端可以通过硬件解码方式或者软件解码方式,对该第二终端对应的视频压缩数据以及第三终端对应的视频压缩数据进行解码。当该第二终端的视频压缩数据对应的解码结果605以及第三终端的视频压缩数据对应的解码结果606中存在一个解码结果出现错误时(即解码异常满足上传条件),此时说明可能是该错误的解码结果对应的编码过程出现错误,第一终端将该错误的解码结果上传至服务器,服务器根据该错误的解码结果下发变更信息。
例如,在第一终端601中,当第二终端602对应的视频压缩数据的解码结果605出现错误,且第三终端对应的视频压缩数据的解码结果606未出现错误,且在第三终端603中,第二终端602对应的视频压缩数据的解码结果也出现错误,服务器响应于接收到多次该第二终端602对应的视频压缩数据的解码错误信息,向该第二终端602下发变更信息,第二终端602根据该变更信息将硬件编码过程切换为软件编码方式。
图7是根据一示例性实施例示出的一种多人视频会话装置的结构方框图。该多人视频会话装置可以实现由图2或图3所示实施例提供的方法中的全部或部分步骤,该多人视频会话装置包括:
压缩数据获取模块701,用于获取至少两路视频压缩数据,所述至少两路视频压缩数据是由所述第一终端在多人视频会话中的至少两个会话对端分别发送的;
数据解码模块702,用于响应于所述第一终端的设备标识满足第一指定条件,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果。
解码切换模块703,用于响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式;所述硬解码异常的视频压缩数据是对应的硬解码结果满足异常条件的视频压缩数据。
在一种可能的实现方式中,所述切换条件包括:
所述至少两路视频压缩数据中,硬解码异常的视频压缩数据的路数大于或等于第一阈值。
在一种可能的实现方式中,所述硬解码结果包含第一硬解码结果;所述第一硬解码结果中包含至少两个画面帧数据;
所述装置还包括:
异常条件确定模块,用于响应于第一硬解码结果中,错误画面帧数据的数量大于画面帧阈值,确定所述第一硬解码结果满足异常条件。
在一种可能的实现方式中,所述异常条件确定模块,用于,
响应于第一硬解码结果中,第一画面帧数据中各个像素点对应的数据信息中,大于数据阈值的数量满足错误条件,将所述第一画面帧数据确定为错误画面帧数据;所述第一画面帧数据是所述第一硬解码结果中的任意一帧画面帧数据。
在一种可能的实现方式中,所述解码切换模块703,包括:
软解码单元,用于响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,通过软件解码方式对所述至少两路压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的软解码结果;
解码切换单元,用于响应于所述至少两路视频压缩数据各自的软解码结果以及所述至少两路视频压缩数据各自的硬解码结果的差异大于差异阈值,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
在一种可能的实现方式中,所述数据解码模块702,还用于,
响应于所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式,将所述第一终端对应的设备标识发送至所述多人视频会话对应的服务器,以便所述服务器更新所述第一指定条件。
在一种可能的实现方式中,所述装置还包括:
第一视频获取模块,用于响应于接收到第一触发操作,获取所述多人视频会话对应的第一视频数据;所述第一视频数据是所述第一终端的图像采集组件获取的视频数据;
第一视频编码模块,用于响应于所述第一终端的设备标识满足第二指定条件,通过硬件编码方式对所述第一视频数据进行编码,获得所述第一视频数据对应的视频压缩数据;
压缩数据发送模块,用于将所述视频压缩数据发送至所述多人视频会话对应的服务器,以便服务器将所述视频压缩数据发送至所述多人视频会话中的至少两个会话对端。
在一种可能的实现方式中,所述装置还包括:
编码切换模块,用于响应于接收到服务器下发的变更信息,将所述多人视频会话对应的编码方式切换为软件编码方式。
在一种可能的实现方式中,所述装置还包括:
错误信息获取模块,用于响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足上传条件,获取所述硬解码异常的视频压缩数据对应的错误信息;
错误信息发送模块,用于将所述错误信息发送至所述多人视频会话对应的服务器,以便服务器基于所述错误信息向所述错误信息对应的会话对端发送所述变更信息。
在一种可能的实现方式中,所述数据解码单元,包括:
设备平台获取子单元,用于获取所述第一终端对应的设备平台信息;所述设备平台信息用于指示所述第一终端对应的设备平台;
第一标识集合获取子单元,用于获取所述设备平台信息对应的第一标识集合;所述第一标识集合用于指示所述第一终端对应的设备平台中禁止使用硬编码方式的设备;
数据解码子单元,用于响应于所述第一标识集合中不存在所述设备标识,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果。
在一种可能的实现方式中,所述第一终端为包含第一设备和第二设备的个人计算机;所述设备标识包括第一设备标识与第二设备标识;所述第一设备标识用于指示支持硬件解码方式的所述第一设备;所述第二设备标识用于指示支持硬件解码方式的所述第二设备;
所述数据解码单元,包括:
优先级参数获取子单元,用于响应于所述第一设备标识与所述第二设备标识均满足第一指定条件,获取所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数;所述优先级参数用于指示支持硬件解码方式的设备的优先级;
第一硬解码设备获取子单元,用于基于所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数,确定第一硬解码设备;
第一硬解码子单元,用于基于所述第一硬解码设备,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的第一硬解码结果。
在一种可能的实现方式中,所述解码切换模块703还用于,
响应于所述至少两路视频压缩数据中,所述第一硬解码结果满足异常条件的视频压缩数据满足切换条件,基于所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数,确定第二硬解码设备;
基于所述第二硬解码设备,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果;
响应于所述至少两路视频压缩数据中,所述第二硬解码结果满足异常条件的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
综上所述,本申请实施例所示方案中,在多人会话场景中,先采用硬件解码方式实现对至少两路视频压缩数据进行硬解码,此时对CPU的资源占用率较低,当通过硬件解码方式对该至少两路视频压缩数据进行硬解码出现异常,且至少两路视频压缩数据中的异常达到切换条件,再切换为通过CPU对该多人视频会话进行软件解码。通过上述方案,在多人视频会话中,同时考虑了多路视频压缩数据,当多路视频压缩数据中硬解码异常满足切换条件时,才将硬件解码方式切换为软件解码方式,在多人视频会话过程中,在保证视频正常播放的同时,减小了CPU的资源占用率,从而兼顾编解码的准确性和效率,提高多人视频会话效果。
图8示出了本申请一个示例性实施例示出的计算机设备800的结构框图。该计算机设备800可以是图1所示系统中的用户终端或者服务器。
通常,计算机设备800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请上述方法实施例中的全部或者部分步骤。
在一些实施例中,计算机设备实现为用户终端时,该计算机设备800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。可选的,外围设备包括:射频电路804、显示屏805、图像采集组件806、音频电路807、定位组件808和电源809中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它计算机设备进行通信。在一些实施例中,射频电路804还可以包括NFC(NearField Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏805用于显示UI(UserInterface,用户界面)。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。
图像采集组件806用于采集图像或视频。在一些实施例中,图像采集组件806还可以包括闪光灯。
音频电路807可以包括麦克风和扬声器。在一些实施例中,音频电路807还可以包括耳机插孔。
定位组件808用于定位计算机设备800的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。
电源809用于为计算机设备800中的各个组件进行供电。
在一些实施例中,计算机设备800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
本领域技术人员可以理解,图8中示出的结构并不构成对计算机设备800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本申请各个实施例所示的方法。例如,所述非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例所示的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种多人视频会话方法,其特征在于,所述方法用于第一终端,所述方法包括:
获取至少两路视频压缩数据,所述至少两路视频压缩数据是由所述第一终端在多人视频会话中的至少两个会话对端分别发送的;
响应于所述第一终端的设备标识满足第一指定条件,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果;
响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式;所述硬解码异常的视频压缩数据是对应的硬解码结果满足异常条件的视频压缩数据。
2.根据权利要求1所述的方法,其特征在于,所述切换条件包括:
所述至少两路视频压缩数据中,硬解码异常的视频压缩数据的路数大于或等于第一阈值。
3.根据权利要求1所述的方法,其特征在于,所述硬解码结果包含第一硬解码结果;所述第一硬解码结果中包含至少两个画面帧数据;
所述响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式之前,还包括:
响应于第一硬解码结果中,错误画面帧数据的数量大于画面帧阈值,确定所述第一硬解码结果满足异常条件;所述错误画面帧数据是无法正常播放的画面帧对应的数据。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于第一硬解码结果中,第一画面帧数据中各个像素点对应的数据信息中,大于数据阈值的数量满足错误条件,将所述第一画面帧数据确定为错误画面帧数据;所述第一画面帧数据是所述第一硬解码结果中的任意一帧画面帧数据。
5.根据权利要求1至3任一所述的方法,其特征在于,所述响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式,包括:
响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,通过软件解码方式对所述至少两路压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的软解码结果;
响应于所述至少两路视频压缩数据各自的软解码结果以及所述至少两路视频压缩数据各自的硬解码结果的差异大于差异阈值,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式,将所述第一终端对应的设备标识发送至所述多人视频会话对应的服务器,以便所述服务器更新所述第一指定条件。
7.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
响应于接收到第一触发操作,获取所述多人视频会话对应的第一视频数据;所述第一视频数据是所述第一终端的图像采集组件获取的视频数据;
响应于所述第一终端的设备标识满足第二指定条件,通过硬件编码方式对所述第一视频数据进行编码,获得所述第一视频数据对应的视频压缩数据;
将所述视频压缩数据发送至所述多人视频会话对应的服务器,以便服务器将所述视频压缩数据发送至所述多人视频会话中的至少两个会话对端。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于接收到服务器下发的变更信息,将所述多人视频会话对应的编码方式切换为软件编码方式。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足上传条件,获取所述硬解码异常的视频压缩数据对应的错误信息;
将所述错误信息发送至所述多人视频会话对应的服务器,以便服务器基于所述错误信息向所述错误信息对应的会话对端发送所述变更信息。
10.根据权利要求1所述的方法,其特征在于,所述响应于所述设备标识满足第一指定条件,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果,包括:
获取所述第一终端对应的设备平台信息;所述设备平台信息用于指示所述第一终端对应的设备平台;
获取所述设备平台信息对应的第一标识集合;所述第一标识集合用于指示所述第一终端对应的设备平台中禁止使用硬编码方式的设备;
响应于所述第一标识集合中不存在所述设备标识,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果。
11.根据权利要求1所述的方法,其特征在于,所述第一终端为包含第一设备和第二设备的个人计算机;所述设备标识包括第一设备标识与第二设备标识;所述第一设备标识用于指示支持硬件解码方式的所述第一设备;所述第二设备标识用于指示支持硬件解码方式的所述第二设备;
所述响应于所述设备标识满足第一指定条件,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果,包括:
响应于所述第一设备标识与所述第二设备标识均满足第一指定条件,获取所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数;所述优先级参数用于指示支持硬件解码方式的设备的优先级;
基于所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数,确定第一硬解码设备;
基于所述第一硬解码设备,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的第一硬解码结果。
12.根据权利要求11所述的方法,其特征在于,所述响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式,包括:
响应于所述至少两路视频压缩数据中,所述第一硬解码结果满足异常条件的视频压缩数据满足切换条件,基于所述第一设备标识对应的优先级参数与所述第二设备标识中的优先级参数,确定第二硬解码设备;
基于所述第二硬解码设备,通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果;
响应于所述至少两路视频压缩数据中,所述第二硬解码结果满足异常条件的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式。
13.一种多人视频会话装置,其特征在于,所述装置用于第一终端,所述装置包括:
压缩数据获取模块,用于获取至少两路视频压缩数据,所述至少两路视频压缩数据是由所述第一终端在多人视频会话中的至少两个会话对端分别发送的;
数据解码模块,用于通过硬件解码方式对所述至少两路视频压缩数据分别进行解码,获得所述至少两路视频压缩数据各自的硬解码结果;
解码切换模块,用于响应于所述至少两路视频压缩数据中,硬解码异常的视频压缩数据满足切换条件,将所述多人视频会话对应的所有视频压缩数据的解码方式切换为软件解码方式;所述硬解码异常的视频压缩数据是对应的硬解码结果满足异常条件的视频压缩数据。
14.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至12任一所述的多人视频会话方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至12任一所述的多人视频会话方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110034187.7A CN114765677A (zh) | 2021-01-12 | 2021-01-12 | 多人视频会话方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110034187.7A CN114765677A (zh) | 2021-01-12 | 2021-01-12 | 多人视频会话方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114765677A true CN114765677A (zh) | 2022-07-19 |
Family
ID=82363619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110034187.7A Pending CN114765677A (zh) | 2021-01-12 | 2021-01-12 | 多人视频会话方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114765677A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130058232A1 (en) * | 2011-09-06 | 2013-03-07 | Karlheinz Wurm | Signal Processing |
US20140146895A1 (en) * | 2012-11-28 | 2014-05-29 | Cisco Technology, Inc. | Fast Switching Hybrid Video Decoder |
CN106231051A (zh) * | 2016-08-01 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 一种视频解码的测试方法及相关设备 |
US20170164041A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for playing videos |
US20190079799A1 (en) * | 2017-09-08 | 2019-03-14 | Apple Inc. | Systems and methods for scheduling virtual memory compressors |
CN110139104A (zh) * | 2018-02-09 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置、计算机设备和存储介质 |
CN110198427A (zh) * | 2018-07-05 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 视频通话方法和装置 |
CN110636370A (zh) * | 2018-06-25 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 一种视频处理方法、装置、电子设备和可读介质 |
CN112087633A (zh) * | 2019-06-12 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置及存储介质 |
-
2021
- 2021-01-12 CN CN202110034187.7A patent/CN114765677A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130058232A1 (en) * | 2011-09-06 | 2013-03-07 | Karlheinz Wurm | Signal Processing |
US20140146895A1 (en) * | 2012-11-28 | 2014-05-29 | Cisco Technology, Inc. | Fast Switching Hybrid Video Decoder |
US20170164041A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for playing videos |
CN106231051A (zh) * | 2016-08-01 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 一种视频解码的测试方法及相关设备 |
US20190079799A1 (en) * | 2017-09-08 | 2019-03-14 | Apple Inc. | Systems and methods for scheduling virtual memory compressors |
CN110139104A (zh) * | 2018-02-09 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置、计算机设备和存储介质 |
CN110636370A (zh) * | 2018-06-25 | 2019-12-31 | 阿里巴巴集团控股有限公司 | 一种视频处理方法、装置、电子设备和可读介质 |
CN110198427A (zh) * | 2018-07-05 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 视频通话方法和装置 |
CN112087633A (zh) * | 2019-06-12 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11336702B2 (en) | Interaction information transmission method and apparatus | |
CN111711833B (zh) | 直播视频流推送控制方法、装置、设备及存储介质 | |
CN110740313B (zh) | 硬件编码能力检测方法及装置 | |
CN111803940A (zh) | 游戏的处理方法、装置、电子设备及计算机可读存储介质 | |
EP2958320A1 (en) | Communication device, communication system, communication control method, and computer-readable recording medium | |
US11985358B2 (en) | Artifact removal method and apparatus based on machine learning, and method and apparatus for training artifact removal model based on machine learning | |
US20220021872A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, storage medium, and electronic device | |
CN113965751A (zh) | 屏幕内容编码方法、装置、设备及存储介质 | |
CN107040498B (zh) | 同屏方法及终端 | |
CN108235111B (zh) | 信息共享方法及智能机顶盒 | |
US11943473B2 (en) | Video decoding method and apparatus, video encoding method and apparatus, storage medium, and electronic device | |
US11849127B2 (en) | Video encoding method, video decoding method, and related apparatuses | |
US20210320810A1 (en) | Volumetric conversational services using network edge | |
CN113038543B (zh) | 一种QoE值的调整方法及其装置 | |
CN114268626A (zh) | 窗口处理系统、方法以及装置 | |
CN113905217B (zh) | 投屏方法、设备及存储介质 | |
CN114765677A (zh) | 多人视频会话方法、装置、计算机设备及存储介质 | |
CN114760309A (zh) | 基于云端服务的终端的业务交互方法、装置、设备和介质 | |
CN114390363A (zh) | 编码器的适配方法、装置、系统和存储介质 | |
CN113596583A (zh) | 视频流子弹时间数据处理方法及装置 | |
CN105812922A (zh) | 多媒体文件数据的处理方法及系统、播放器和客户端 | |
CN114339112B (zh) | 视频通话的方法、电子设备及系统 | |
CN109788233B (zh) | 视频层更新方法、装置、设备及介质 | |
CN113660451B (zh) | 多平台视频会议方法、视频会议装置及可读存储介质 | |
CN115914228B (zh) | 一种数据处理方法、装置、存储介质及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071528 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |