CN115914745A - 视频的解码方法、装置、电子设备及计算机可读介质 - Google Patents
视频的解码方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN115914745A CN115914745A CN202211617028.0A CN202211617028A CN115914745A CN 115914745 A CN115914745 A CN 115914745A CN 202211617028 A CN202211617028 A CN 202211617028A CN 115914745 A CN115914745 A CN 115914745A
- Authority
- CN
- China
- Prior art keywords
- decoding
- video
- frame
- hardware
- target
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及一种视频的解码方法、装置、电子设备及计算机可读介质,属于视频编解码技术领域。该方法包括:接收服务器端传输的视频网络数据包,并获取所述视频网络数据包中待解码的视频帧;通过所述客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架;在所述客户端的图形处理器中,通过所述目标硬件解码框架对所述视频帧进行硬件加速解码,得到解码后的目标视频帧。本公开通过调用即时通讯接口库中的目标硬件解码框架对视频帧进行硬件加速解码,可以提升解码性能,增加解码帧率,使实时通讯的链路延迟降低。
Description
技术领域
本公开涉及视频编解码技术领域,具体而言,涉及一种视频的解码方法、视频的解码装置、电子设备及计算机可读介质。
背景技术
在以云计算为基础的场景,例如云游戏等场景中,所有游戏都在服务器端运行,渲染完毕后的游戏画面进行压缩后通过网络传送给用户,因此,要求实时通讯的视频流的延迟尽可能的低。
在上述场景中,需要使用WebRTC(Web Real-Time Communication,网络即时通讯)技术将服务器端的画面编码后传输到客户端进行解码和渲染,其中,解码是一个比较关键的步骤,解码的性能会直接影响到画面传输的时延,影响到整个云游戏的操作延迟,解码的方式会影响到客户端电脑上的CPU(Central Processing Unit,核心处理器)及GPU(Graphics Processing Unit,图像处理器)的占用情况。
视频解码可以分为软件解码(CPU解码)和硬件解码(GPU解码)方式,CPU解码一般耗费时间长,占用资源多,会影响到进程其他逻辑的运行,而GPU解码方式,速度较快,并且可以直接运用于渲染。因此,整体而言,使用GPU进行解码优于使用CPU进行解码。而WebRTC默认的实现中不具备在客户端硬件解码的支持。
鉴于此,本领域亟需一种视频的解码方法,通过硬件解码的方式提升解码性能,增加解码帧率,使实时通讯的链路延迟降低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种视频的解码方法、视频的解码装置、电子设备及计算机可读介质,进而至少在一定程度上可以提升解码性能,增加解码帧率,使实时通讯的链路延迟降低。
根据本公开的第一个方面,提供一种视频的解码方法,包括:
接收服务器端传输的视频网络数据包,并获取所述视频网络数据包中待解码的视频帧;
通过所述客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架;
在所述客户端的图形处理器中,通过所述目标硬件解码框架对所述视频帧进行硬件加速解码,得到解码后的目标视频帧。
在本公开的一种示例性实施例中,所述通过所述客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架,包括:
根据所述客户端的硬件配置信息,从所述即时通讯接口库中的多个硬件解码框架中确定一目标硬件解码框架;
通过所述客户端中的视频处理工具调用所述即时通讯接口库中的所述目标硬件解码框架。
在本公开的一种示例性实施例中,所述根据所述客户端的硬件配置信息,从所述即时通讯接口库中的多个硬件解码框架中确定一目标硬件解码框架,包括:
从所述即时通讯接口库中的多个硬件解码框架中,选择与所述客户端的硬件配置信息相匹配的硬件解码框架,作为所述目标硬件解码框架;
若所述即时通讯接口库中不存在与所述客户端的硬件配置信息相匹配的硬件解码框架,则将所述即时通讯接口库中的通用硬件解码框架作为所述目标硬件解码框架。
在本公开的一种示例性实施例中,所述方法还包括:
若所述客户端无法支持任何一个所述硬件解码框架,则通过所述视频处理工具对所述视频帧进行软件解码,得到解码后的所述目标视频帧。
在本公开的一种示例性实施例中,所述通过所述目标硬件解码框架对所述视频帧进行硬件加速解码,包括:
根据解码需求以及所述目标硬件解码框架的类型,调整所述目标硬件解码框架的解码配置信息,并根据调整后的所述解码配置信息对所述视频帧进行硬件加速解码。
在本公开的一种示例性实施例中,所述方法还包括:
得到解码后的所述目标视频帧之后,在所述图形处理器中渲染所述目标视频帧,得到对应的视频画面。
在本公开的一种示例性实施例中,所述方法还包括:
得到解码后的所述目标视频帧之后,将所述目标视频帧缓存到所述客户端的视频帧缓冲区内进行帧率稳定处理;
在所述图形处理器中,对帧率稳定处理之后的所述目标视频帧进行渲染,得到对应的视频画面。
根据本公开的第二方面,提供一种视频的解码装置,包括:
视频帧获取模块,用于接收服务器端传输的视频网络数据包,并获取所述视频网络数据包中待解码的视频帧;
解码框架确定模块,用于通过所述客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架;
硬件加速解码模块,用于在所述客户端的图形处理器中,通过所述目标硬件解码框架对所述视频帧进行硬件加速解码,得到解码后的目标视频帧。
根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的视频的解码方法。
根据本公开的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的视频的解码方法。
本公开示例性实施例可以具有以下有益效果:
本公开示例实施方式的视频的解码方法中,通过获取待解码的视频帧,并通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架,然后在客户端的图形处理器中,通过目标硬件解码框架对视频帧进行硬件加速解码,得到解码后的目标视频帧。本公开示例实施方式中的视频的解码方法,通过视频处理工具调用即时通讯接口库中的硬件解码框架,对视频帧进行硬件加速解码,可以充分利用GPU资源,提升解码性能,增加解码帧率,并节省CPU内存拷贝视频帧到GPU内存的时间,使实时通讯的链路延迟降低,同时降低CPU占用率,提高CPU性能瓶颈。通过将本公开示例实施方式中的视频的解码方法应用于云游戏等场景中,可以提升云游戏用户的体验,并提升在低配机器上运行云游戏的可玩性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本公开的一个相关实施例中视频的解码和渲染方法的流程示意图;
图2示出了本公开示例实施方式的视频的解码方法的流程示意图;
图3示出了本公开示例实施方式的调用目标硬件解码框架的流程示意图;
图4示出了本公开示例实施方式的确定目标硬件解码框架的流程示意图;
图5示出了根据本公开的一个具体实施方式中视频的解码和渲染方法的流程示意图;
图6示出了本公开示例实施方式的视频的解码装置的框图;
图7示出了适于用来实现本公开实施方式的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在一些相关的实施例中,WebRTC库的实现,是在客户端侧负责接收音视频流,然后对音视频帧组帧,解码音视频帧,渲染视频帧及播放音频帧。其中解码视频帧时一般是用CPU进行软件解码,所以解码出来的视频帧存在内存中,渲染时需要将视频帧从内存拷贝到GPU显存中再渲染。视频的解码和渲染的具体步骤如图1所示。
步骤S110.接收视频网络数据包。
步骤S120.获取视频流组帧。
步骤S130.FFmpeg软件解码视频帧。
其中,FFmpeg(Fast Forward Mpeg)是一种多媒体视频处理工具,用于录制、转换和流式传输音频和视频的开源库,并包含多种音视频的解码器函式库。
步骤S140.从CPU内存中拷贝视频帧到GPU内存。
步骤S150.GPU渲染视频帧。
上述相关实施例中的技术方案存在以下几个缺点:
1、CPU占用率增高,影响其他进程的运行,遇到CPU性能比较低的机器,可能造成性能瓶颈,把CPU占用满。
2、CPU解码时间较长,以及从CPU内存拷贝视频帧到GPU内存也会耗费一定的时间,导致整个链路的延迟增加,在性能比较低的机器上,该延迟增长更大。
3、部分机器的GPU是提供了解码模块的,如果没有利用上会浪费机器性能,也无法达到最好的体验。
基于上述问题,本示例实施方式首先提供了一种视频的解码方法。参考图2所示,上述视频的解码方法可以包括以下步骤:
步骤S210.接收服务器端传输的视频网络数据包,并获取视频网络数据包中待解码的视频帧。
步骤S220.通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架。
步骤S230.在客户端的图形处理器中,通过目标硬件解码框架对视频帧进行硬件加速解码,得到解码后的目标视频帧。
本公开示例实施方式的视频的解码方法中,通过获取待解码的视频帧,并通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架,然后在客户端的图形处理器中,通过目标硬件解码框架对视频帧进行硬件加速解码,得到解码后的目标视频帧。本公开示例实施方式中的视频的解码方法,通过视频处理工具调用即时通讯接口库中的硬件解码框架,对视频帧进行硬件加速解码,可以充分利用GPU资源,提升解码性能,增加解码帧率,并节省CPU内存拷贝视频帧到GPU内存的时间,使实时通讯的链路延迟降低,同时降低CPU占用率,提高CPU性能瓶颈。通过将本公开示例实施方式中的视频的解码方法应用于云游戏等场景中,可以提升云游戏用户的体验,并提升在低配机器上运行云游戏的可玩性。
下面,结合图3至图5对本示例实施方式的上述步骤进行更加详细的说明。
在步骤S210中,接收服务器端传输的视频网络数据包,并获取视频网络数据包中待解码的视频帧。
本示例实施方式中,服务器端的视频画面在进行编码后会传输到客户端进行解码和渲染。客户端接收服务器端传输的视频网络数据包,从视频网络数据包中获取待解码的视频帧。视频网络数据包指的是网络上信息传输的基本单位,在互联网或分组交换网络内从原点流向目标地址,即从发送方到接收方。
在步骤S220中,通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架。
本示例实施方式中,网页即时通讯WebRTC是一个支持网页浏览器进行实时语音对话或视频对话的API(Application Programming Interface,应用程序接口)库,由于其开源性,现也可以用于Windows、Android、ios等各个不同的平台。视频处理工具指的是FFmpeg多媒体视频处理工具,是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,其功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
本示例实施方式中,如图3所示,通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架,具体可以包括以下几个步骤:
步骤S310.根据客户端的硬件配置信息,从即时通讯接口库中的多个硬件解码框架中确定一目标硬件解码框架。
本示例实施方式中,如图4所示,根据客户端的硬件配置信息,从即时通讯接口库中的多个硬件解码框架中确定一目标硬件解码框架,具体可以包括以下几个步骤:
步骤S410.从即时通讯接口库中的多个硬件解码框架中,选择与客户端的硬件配置信息相匹配的硬件解码框架,作为目标硬件解码框架。
本示例实施方式中,要将硬件解码技术集成到WebRTC库中,需要找到WebRTC的解码实现,选择与客户端的硬件配置信息相匹配的目标硬件解码框架,对于客户端机器的不同GPU使用不同的硬件解码方式进行解码。
举例而言,如果客户端使用的是NVIDIA(英伟达)显卡,则支持NVDEC(英伟达视频解码器引擎)硬件解码,NVDEC调用NVIDIA显卡的CUDA(Compute Unified DeviceArchitecture,统一计算设备架构)框架,进行加速解码。又例如,客户端使用的是Intel(英特尔)核心显卡,则支持QSV(Quick Sync Video,英特尔快速视频同步技术)硬件解码,QSV调用Intel核心显卡的解码框架,进行加速解码。
步骤S420.若即时通讯接口库中不存在与客户端的硬件配置信息相匹配的硬件解码框架,则将即时通讯接口库中的通用硬件解码框架作为目标硬件解码框架。
若即时通讯接口库中不存在与客户端的硬件配置信息相匹配的硬件解码框架,还可以支持D3D11VA/DXVA2(DirectX Video Acceleration,视频硬件加速)硬件解码,调用通用硬件解码框架DirectX视频加速框架,进行硬件加速解码和渲染。
本示例实施方式中,若客户端无法支持任何一个硬件解码框架,则通过视频处理工具对视频帧进行软件解码,得到解码后的目标视频帧。
对于任何一个硬件解码框架都不支持的机器,再采用软件解码的方式进行解码,并对解码帧进行WebRTC解码后相同的处理。
步骤S320.通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架。
确定与客户端的硬件配置信息相匹配的目标硬件解码框架之后,通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架。
继续参考图2所示,在步骤S230中,在客户端的图形处理器中,通过目标硬件解码框架对视频帧进行硬件加速解码,得到解码后的目标视频帧。
本示例实施方式中,可以根据解码需求以及目标硬件解码框架的类型,调整目标硬件解码框架的解码配置信息,并根据调整后的解码配置信息对视频帧进行硬件加速解码。
硬件解码的实现可以通过FFmpeg的解码API,增加或修改部分解码配置,包括一些可配置项和源码,使FFmpeg支持快速的硬件解码。例如FFmpeg调用CUDA解码的方式,为了尽可能利用显卡的性能,在默认的配置中是将好几个视频帧一起进行硬件解码,但是在实时通讯的场景下,这种处理方式会造成这几帧图像的延迟。因此,可以通过调整解码配置信息,使每一帧都直接进行解码,以满足实时通讯的解码需求。
本示例实施方式中,得到解码后的目标视频帧之后,可以在图形处理器中渲染目标视频帧,得到对应的视频画面。
本示例实施方式中,在客户端的GPU中解码得到目标视频帧之后,可以直接在GPU中渲染目标视频帧,得到对应的视频画面,绕过从CPU内存拷贝视频帧到GPU内存的环节,提升解码性能,降低链路延迟。
本示例实施方式中,得到解码后的目标视频帧之后,还可以先将目标视频帧缓存到客户端的视频帧缓冲区内进行帧率稳定处理,然后在图形处理器中,对帧率稳定处理之后的目标视频帧进行渲染,得到对应的视频画面。
如图5所示是本公开的一个具体实施方式中的完整流程图,是对本示例实施方式中的上述步骤的举例说明,该流程图的具体步骤如下:
步骤S510.接收视频网络数据包。
步骤S520.获取视频流组帧。
步骤S530.FFmpeg调用硬件解码框架解码视频帧。
FFmpeg调用NVDEC/QSV/D3D11VA/DXVA2等解码框架解码视频帧。
步骤S540.GPU渲染视频帧。
本示例实施方式提供的视频的解码方法,是在Webrtc中使用FFmpeg硬件解码的技术实现。通过在WebRTC中支持硬件解码,加入FFmpeg硬件解码的技术实现,可以降低链路的延迟并提高CPU性能瓶颈,在云游戏等场景中,可以提升云游戏用户的体验,并提升在低配机器上运行云游戏的可玩性。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本公开还提供了一种视频的解码装置。参考图6所示,该视频的解码装置可以包括视频帧获取模块610、解码框架确定模块620以及硬件加速解码模块630。其中:
视频帧获取模块610可以用于接收服务器端传输的视频网络数据包,并获取视频网络数据包中待解码的视频帧;
解码框架确定模块620可以用于通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架;
硬件加速解码模块630可以用于在客户端的图形处理器中,通过目标硬件解码框架对视频帧进行硬件加速解码,得到解码后的目标视频帧。
在本公开的一些示例性实施例中,解码框架确定模块620可以包括目标硬件解码框架确定单元以及目标硬件解码框架调用单元。其中:
目标硬件解码框架确定单元可以用于根据客户端的硬件配置信息,从即时通讯接口库中的多个硬件解码框架中确定一目标硬件解码框架;
目标硬件解码框架调用单元可以用于通过客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架。
在本公开的一些示例性实施例中,目标硬件解码框架确定单元可以包括硬件配置信息匹配单元以及通用硬件解码框架确定单元。其中:
硬件配置信息匹配单元可以用于从即时通讯接口库中的多个硬件解码框架中,选择与客户端的硬件配置信息相匹配的硬件解码框架,作为目标硬件解码框架;
通用硬件解码框架确定单元可以用于若即时通讯接口库中不存在与客户端的硬件配置信息相匹配的硬件解码框架,则将即时通讯接口库中的通用硬件解码框架作为目标硬件解码框架。
在本公开的一些示例性实施例中,本公开提供的一种视频的解码装置还可以包括软件解码模块,可以用于若客户端无法支持任何一个硬件解码框架,则通过视频处理工具对视频帧进行软件解码,得到解码后的目标视频帧。
在本公开的一些示例性实施例中,硬件加速解码模块630可以包括解码配置信息调整单元,可以用于根据解码需求以及目标硬件解码框架的类型,调整目标硬件解码框架的解码配置信息,并根据调整后的解码配置信息对视频帧进行硬件加速解码。
在本公开的一些示例性实施例中,本公开提供的一种视频的解码装置还可以包括目标视频帧渲染模块,可以用于得到解码后的目标视频帧之后,在图形处理器中渲染目标视频帧,得到对应的视频画面。
在本公开的一些示例性实施例中,本公开提供的一种视频的解码装置还可以包括帧率稳定处理模块以及目标视频帧渲染模块。其中:
帧率稳定处理模块可以用于得到解码后的目标视频帧之后,将目标视频帧缓存到客户端的视频帧缓冲区内进行帧率稳定处理;
目标视频帧渲染模块可以用于在图形处理器中,对帧率稳定处理之后的目标视频帧进行渲染,得到对应的视频画面。
上述视频的解码装置中各模块/单元的具体细节在相应的方法实施例部分已有详细的说明,此处不再赘述。
图7示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图7示出的电子设备的计算机系统700仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统操作所需的各种程序和数据。CPU701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种视频的解码方法,应用于客户端,其特征在于,包括:
接收服务器端传输的视频网络数据包,并获取所述视频网络数据包中待解码的视频帧;
通过所述客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架;
在所述客户端的图形处理器中,通过所述目标硬件解码框架对所述视频帧进行硬件加速解码,得到解码后的目标视频帧。
2.根据权利要求1所述的视频的解码方法,其特征在于,所述通过所述客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架,包括:
根据所述客户端的硬件配置信息,从所述即时通讯接口库中的多个硬件解码框架中确定一目标硬件解码框架;
通过所述客户端中的视频处理工具调用所述即时通讯接口库中的所述目标硬件解码框架。
3.根据权利要求2所述的视频的解码方法,其特征在于,所述根据所述客户端的硬件配置信息,从所述即时通讯接口库中的多个硬件解码框架中确定一目标硬件解码框架,包括:
从所述即时通讯接口库中的多个硬件解码框架中,选择与所述客户端的硬件配置信息相匹配的硬件解码框架,作为所述目标硬件解码框架;
若所述即时通讯接口库中不存在与所述客户端的硬件配置信息相匹配的硬件解码框架,则将所述即时通讯接口库中的通用硬件解码框架作为所述目标硬件解码框架。
4.根据权利要求1所述的视频的解码方法,其特征在于,所述方法还包括:
若所述客户端无法支持任何一个硬件解码框架,则通过所述视频处理工具对所述视频帧进行软件解码,得到解码后的所述目标视频帧。
5.根据权利要求1所述的视频的解码方法,其特征在于,所述通过所述目标硬件解码框架对所述视频帧进行硬件加速解码,包括:
根据解码需求以及所述目标硬件解码框架的类型,调整所述目标硬件解码框架的解码配置信息,并根据调整后的所述解码配置信息对所述视频帧进行硬件加速解码。
6.根据权利要求1所述的视频的解码方法,其特征在于,所述方法还包括:
得到解码后的所述目标视频帧之后,在所述图形处理器中渲染所述目标视频帧,得到对应的视频画面。
7.根据权利要求1所述的视频的解码方法,其特征在于,所述方法还包括:
得到解码后的所述目标视频帧之后,将所述目标视频帧缓存到所述客户端的视频帧缓冲区内进行帧率稳定处理;
在所述图形处理器中,对帧率稳定处理之后的所述目标视频帧进行渲染,得到对应的视频画面。
8.一种视频的解码装置,其特征在于,包括:
视频帧获取模块,用于接收服务器端传输的视频网络数据包,并获取所述视频网络数据包中待解码的视频帧;
解码框架确定模块,用于通过所述客户端中的视频处理工具调用即时通讯接口库中的目标硬件解码框架;
硬件加速解码模块,用于在所述客户端的图形处理器中,通过所述目标硬件解码框架对所述视频帧进行硬件加速解码,得到解码后的目标视频帧。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如权利要求1至7中任一项所述的视频的解码方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的视频的解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211617028.0A CN115914745A (zh) | 2022-12-15 | 2022-12-15 | 视频的解码方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211617028.0A CN115914745A (zh) | 2022-12-15 | 2022-12-15 | 视频的解码方法、装置、电子设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914745A true CN115914745A (zh) | 2023-04-04 |
Family
ID=86489645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211617028.0A Pending CN115914745A (zh) | 2022-12-15 | 2022-12-15 | 视频的解码方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115914745A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176962A (zh) * | 2023-11-02 | 2023-12-05 | 中国铁塔股份有限公司 | 一种视频编解码方法、装置及相关设备 |
-
2022
- 2022-12-15 CN CN202211617028.0A patent/CN115914745A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176962A (zh) * | 2023-11-02 | 2023-12-05 | 中国铁塔股份有限公司 | 一种视频编解码方法、装置及相关设备 |
CN117176962B (zh) * | 2023-11-02 | 2024-01-30 | 中国铁塔股份有限公司 | 一种视频编解码方法、装置及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111355976B (zh) | 一种基于hevc标准的视频直播方法及系统 | |
CN110290398B (zh) | 视频下发方法、装置、存储介质及电子设备 | |
CN106817613B (zh) | 实现音视频内容播放的方法和装置 | |
CN113676769B (zh) | 视频解码方法、设备及存储介质 | |
CN113938470B (zh) | 一种浏览器播放rtsp数据源的方法、装置以及流媒体服务器 | |
US20230050596A1 (en) | Playback mode determining method and apparatus | |
CN115767181A (zh) | 直播视频流渲染方法、装置、设备、存储介质及产品 | |
CN115914745A (zh) | 视频的解码方法、装置、电子设备及计算机可读介质 | |
CN114302176B (zh) | 视频播放方法及装置 | |
CN111343503A (zh) | 视频的转码方法、装置、电子设备及存储介质 | |
CN109587561B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN115225615B (zh) | 虚幻引擎像素流送方法及装置 | |
CN113411660A (zh) | 视频数据的处理方法、装置和电子设备 | |
CN113923507B (zh) | Android端的低延迟视频渲染方法及装置 | |
CN115767149A (zh) | 一种视频数据的传输方法和装置 | |
CN115225902A (zh) | 基于分散编码的高分辨率vr云游戏解决方法及计算机设备 | |
WO2021223577A1 (zh) | 一种视频处理的方法、相关装置、存储介质及程序产品 | |
CN112887742B (zh) | 直播流处理方法、装置、设备及存储介质 | |
EP3229478B1 (en) | Cloud streaming service system, image cloud streaming service method using application code, and device therefor | |
CN105812922A (zh) | 多媒体文件数据的处理方法及系统、播放器和客户端 | |
CN115278366B (zh) | 虚拟机视频流的数据处理方法、装置以及电子设备 | |
CN111435995B (zh) | 用于生成动态图片的方法、装置和系统 | |
CN114205646B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112887758B (zh) | 视频处理方法和装置 | |
CN115801878A (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 |