CN115580735B - 视频编解码处理与系统、编解码服务器与插件模块 - Google Patents

视频编解码处理与系统、编解码服务器与插件模块 Download PDF

Info

Publication number
CN115580735B
CN115580735B CN202211570429.5A CN202211570429A CN115580735B CN 115580735 B CN115580735 B CN 115580735B CN 202211570429 A CN202211570429 A CN 202211570429A CN 115580735 B CN115580735 B CN 115580735B
Authority
CN
China
Prior art keywords
decoding
module
encoding
memory area
shared memory
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
Application number
CN202211570429.5A
Other languages
English (en)
Other versions
CN115580735A (zh
Inventor
温健
董龙江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Haima Cloud Technology Co ltd
Original Assignee
Anhui Haima Cloud Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anhui Haima Cloud Technology Co ltd filed Critical Anhui Haima Cloud Technology Co ltd
Priority to CN202211570429.5A priority Critical patent/CN115580735B/zh
Publication of CN115580735A publication Critical patent/CN115580735A/zh
Application granted granted Critical
Publication of CN115580735B publication Critical patent/CN115580735B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例提供一种视频编解码处理与系统、编解码服务器模块、安卓编解码插件模块、电子设备及计算机可读存储介质,方法包括:接收安卓编解码插件模块发送的编码请求或解码请求;基于编码请求或解码请求从预先创建的共享内存区域读取安卓编解码插件模块存放的待处理视频源数据;通过预先创建的英伟达编码器或英伟达解码器对待处理视频源数据进行编码或解码,生成目标视频数据;将目标视频数据存放入所述共享内存区域,向安卓编解码插件模块发送通知消息,以使安卓编解码插件模块基于通知消息从共享内存区域读取目标视频数据,并将其返回安卓操作系统,能提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案。

Description

视频编解码处理与系统、编解码服务器与插件模块
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种视频编解码处理与系统、编解码服务器模块、安卓编解码插件模块、电子设备及计算机可读存储介质。
背景技术
现有技术条件下,云应用(比如云游戏)领域中,一种常见的架构是基于ARM(Advanced RISC Machines,先进精简指令集机器)服务器并外挂PCI(PeripheralComponent Interconnect,外设部件互连标准)显卡,运行Linux操作系统比如乌班图ubuntu、社区企业操作系统centos等,Linux上运行docker(一个开源的应用容器引擎)服务,将安卓容器化。安卓图形系统使用PCI显卡进行渲染,渲染后的结果通过硬件编码器编码成视频流,通过网络推送到用户端。关于硬件编码器,成熟的产品有netint公司的T4XX系列视频加速卡、涌现科技Seirios系列视频加速卡等。这些专业的视频加速卡要么不支持色彩空间RGBA转YUV,要么对安卓的支持不友好。
因此,如何提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案是目前业界亟待解决的课题。
发明内容
针对现有技术中的缺陷,本发明实施例提供一种视频编解码处理与系统、编解码服务器模块、安卓编解码插件模块、电子设备及计算机可读存储介质。
第一方面,本发明实施例提供一种视频编解码处理方法,该方法运行于Linux操作系统,包括:
接收安卓编解码插件模块发送的编码请求或解码请求;
基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据;
通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据;
将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,其中,所述Linux操作系统所在的宿主机中使用docker服务运行所述安卓操作系统,所述宿主机外挂N卡。
第二方面,本发明实施例提供一种视频编解码处理方法,该方法运行于宿主机中使用docker服务运行的安卓操作系统,包括:
将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求,其中,所述共享内存区域由所述编解码服务器模块预先创建,所述编解码服务器模块运行于所述宿主机使用的Linux操作系统,所述宿主机外挂N卡;
接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,其中,所述目标视频数据由所述编解码服务器模块通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码生成。
第三方面,本发明实施例提供一种编解码服务器模块,该模块运行于Linux操作系统,包括:
接收子模块,用于接收安卓编解码插件模块发送的编码请求或解码请求;
第一读取子模块,用于基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据;
生成子模块,用于通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据;
第一发送子模块,用于将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,其中,所述Linux操作系统所在的宿主机中使用docker服务运行所述安卓操作系统,所述宿主机外挂N卡。
第四方面,本发明实施例提供一种安卓编解码插件模块,该模块运行于宿主机中使用docker服务运行的安卓操作系统,包括:
第二发送子模块,用于将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求,其中,所述共享内存区域由所述编解码服务器模块预先创建,所述编解码服务器模块运行于所述宿主机使用的Linux操作系统,所述宿主机外挂N卡;
第二读取子模块,用于接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,其中,所述目标视频数据由所述编解码服务器模块通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码生成。
第五方面,本发明实施例提供一种视频编解码处理系统,包括:
安卓编解码插件模块和编解码服务器模块,其中;
所述安卓编解码插件模块,运行于宿主机中使用docker服务运行的安卓操作系统,用于将待处理视频源数据存放入所述编解码服务器模块预先创建的共享内存区域并发送编码请求或解码请求给所述编解码服务器模块,其中,所述宿主机外挂N卡;
所述编解码服务器模块,运行于所述宿主机使用的Linux操作系统,用于接收所述安卓编解码插件模块发送的编码请求或解码请求,基于所述编码请求或解码请求从所述共享内存区域读取所述待处理视频源数据,通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据,将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息;
所述安卓编解码插件模块,还用于接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回所述安卓操作系统。
第六方面,本发明实施例提供一种电子设备,包括处理器、存储器和总线,其中:
所述处理器和存储器通过总线完成相互间的通信;
所述处理器可以调用存储器中的计算机程序,以执行上述第一方面或第二方面所述方法的步骤。
第七方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面或第二方面所述方法的步骤。
本发明实施例提供的视频编解码处理与系统、编解码服务器模块、安卓编解码插件模块、电子设备及计算机可读存储介质,借助于运行于外挂N卡的宿主机中使用docker服务运行的安卓操作系统的安卓编解码插件模块和运行于所述宿主机使用的Linux操作系统的编解码服务器模块,设计所述安卓编解码插件模块将待处理视频源数据存放入所述编解码服务器模块预先创建的共享内存区域并发送编码请求或解码请求给所述编解码服务器模块;设计所述编解码服务器模块接收所述安卓编解码插件模块发送的编码请求或解码请求,基于所述编码请求或解码请求从所述共享内存区域读取所述待处理视频源数据,通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据,将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息;还设计所述安卓编解码插件模块接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回所述安卓操作系统,整个编解码方案中通过英伟达编码器或英伟达解码器调用N卡的编解码功能实现需要使用的英伟达专用视频编解码软件包套件,而N卡不但可以用来图形显示,而且具有极强的视频编解码能力,且支持RGBA转YUV功能,因此能够提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频编解码处理方法的流程示意图;
图2为本发明实施例提供的另一种视频编解码处理方法的流程示意图;
图3为本发明实施例提供的一种编解码服务器模块的结构示意图;
图4为本发明实施例提供的一种安卓编解码插件模块的结构示意图;
图5为本发明实施例提供的一种视频编解码处理系统的结构示意图;
图6为本发明实施例提供的另一种视频编解码处理系统的结构示意图;
图7为本发明实施例提供的又一种视频编解码处理方法的流程示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
鉴于英伟达显卡不但可以用来图形显示,而且具有极强的视频编解码能力,且支持RGBA转YUV功能,是一款理想的视频卡。但是,N卡的编解码功能使用英伟达专用视频编解码软件包套件实现,该套件只支持普通Linux,不支持安卓。因此,本申请提出一种外挂N卡,使用N卡作为容器安卓硬件编解码的服务架构及相应的编解码方案。
如图1所示,本实施例提供一种视频编解码处理方法,该方法运行于Linux操作系统(比如ubuntu、centos等),包括:
S10、接收安卓编解码插件模块发送的编码请求或解码请求;
S11、基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据(比如云应用渲染视频);
S12、通过预先创建的英伟达编码器或英伟达解码器(英伟达编码器或英伟达解码器可以通过编解码器FFmpeg创建)对所述待处理视频源数据进行编码或解码,生成目标视频数据;
S13、将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,其中,所述Linux操作系统所在的宿主机(可以是ARM服务器,也可以是其它架构的服务器,此处不再赘述)中使用docker服务运行所述安卓操作系统,所述宿主机外挂N卡。
本实施例中,需要说明的是,如果是视频编码过程,则接收的是安卓编解码插件模块发送的编码请求,基于所述编码请求读取待处理视频源数据,并通过预先创建的英伟达编码器对所述待处理视频源数据进行编码;而如果是视频解码过程,则接收的是安卓编解码插件模块发送的解码请求,基于所述解码请求读取待处理视频源数据,并通过预先创建的英伟达解码器对所述待处理视频源数据进行解码。
本发明实施例提供的视频编解码处理方法,接收安卓编解码插件模块发送的编码请求或解码请求;基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据;通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据;将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,整个编解码方案中通过英伟达编码器或英伟达解码器调用N卡的编解码功能实现需要使用的英伟达专用视频编解码软件包套件,而N卡不但可以用来图形显示,而且具有极强的视频编解码能力,且支持RGBA转YUV功能,因此能够提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案。
在上述实施例的基础上,所述方法还可以包括:
初始化预设网络命名管道,并通过所述网络命名管道获取所述安卓编解码插件模块发送的参数信息,其中,所述参数信息包括编码参数信息或解码参数信息;
根据所述参数信息创建所述英伟达编码器或英伟达解码器,创建所述共享内存区域,并将所述共享内存区域对应的标识符发送至所述安卓编解码插件模块,以使所述安卓编解码插件模块基于所述标识符将所述待处理视频源数据存放至所述共享内存区域。
本实施例中,需要说明的是,如果是对视频进行编码,则获取的是编码参数信息,根据编码参数信息创建英伟达编码器;如果是对视频进行解码,则获取的是解码参数信息,根据解码参数信息创建英伟达解码器。
如图2所示,本实施例提供一种视频编解码处理方法,该方法运行于宿主机中使用docker服务运行的安卓操作系统,包括:
S20、将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求,其中,所述共享内存区域由所述编解码服务器模块预先创建,所述编解码服务器模块运行于所述宿主机使用的Linux操作系统,所述宿主机外挂N卡;
S21、接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,其中,所述目标视频数据由所述编解码服务器模块通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码生成。
本发明实施例提供的视频编解码处理方法,将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求;接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,整个编解码方案中通过英伟达编码器或英伟达解码器调用N卡的编解码功能实现需要使用的英伟达专用视频编解码软件包套件,而N卡不但可以用来图形显示,而且具有极强的视频编解码能力,且支持RGBA转YUV功能,因此能够提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案。
在上述实施例的基础上,所述方法还可以包括:
通过预设网络命名管道向所述编解码服务器模块发送参数信息,其中,所述网络命名管道由所述编解码服务器模块初始化,所述参数信息包括编码参数信息或解码参数信息;
接收所述编解码服务器模块发送的所述共享内存区域对应的标识符,基于所述标识符将所述待处理视频源数据存放至所述共享内存区域。
本实施例中,需要说明的是,在步骤S20执行之前,需要通过预设网络命名管道向编解码服务器模块发送参数信息,编解码服务器模块接收到参数信息后,如果参数信息是编码参数信息则会根据编码参数信息创建英伟达编码器,或者如果参数信息是解码参数信息则会根据解码参数信息创建英伟达解码器,而且编解码服务器模块会创建共享内存区域,并通过网络命名管道反馈共享内存区域的标识符。在接收到编解码服务器模块发送的共享内存区域对应的标识符后,会执行步骤S20,之后编解码服务器模块会利用创建的英伟达编码器对待处理视频源数据进行编码生成目标视频数据或利用创建的英伟达解码器对待处理视频源数据进行解码生成目标视频数据,将目标视频数据存放入共享内存区域并进行通知。之后会执行步骤S21。
如图3所示,本发明实施例提供一种编解码服务器模块,该模块运行于Linux操作系统,包括:
接收子模块30,用于接收安卓编解码插件模块发送的编码请求或解码请求;
第一读取子模块31,用于基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据;
生成子模块32,用于通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据;
第一发送子模块33,用于将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,其中,所述Linux操作系统所在的宿主机中使用docker服务运行所述安卓操作系统,所述宿主机外挂N卡。
本发明实施例提供的编解码服务器模块,借助于接收子模块30接收安卓编解码插件模块发送的编码请求或解码请求;借助于第一读取子模块31基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据;借助于生成子模块32通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据;借助于第一发送子模块33将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,整个编解码方案中通过英伟达编码器或英伟达解码器调用N卡的编解码功能实现需要使用的英伟达专用视频编解码软件包套件,而N卡不但可以用来图形显示,而且具有极强的视频编解码能力,且支持RGBA转YUV功能,因此能够提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案。
本申请实施例提供的编解码服务器模块,其实现过程与本申请实施例提供的视频编解码处理方法一致,所能达到的效果也与本申请实施例提供的视频编解码处理方法相同,在此不再赘述。
如图4所示,本发明实施例提供一种安卓编解码插件模块,该模块运行于宿主机中使用docker服务运行的安卓操作系统,包括:
第二发送子模块40,用于将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求,其中,所述共享内存区域由所述编解码服务器模块预先创建,所述编解码服务器模块运行于所述宿主机使用的Linux操作系统,所述宿主机外挂N卡;
第二读取子模块41,用于接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,其中,所述目标视频数据由所述编解码服务器模块通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码生成。
本发明实施例提供的安卓编解码插件模块,借助于第二发送子模块40将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求;借助于第二读取子模块41接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,整个编解码方案中通过英伟达编码器或英伟达解码器调用N卡的编解码功能实现需要使用的英伟达专用视频编解码软件包套件,而N卡不但可以用来图形显示,而且具有极强的视频编解码能力,且支持RGBA转YUV功能,因此能够提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案。
本申请实施例提供的安卓编解码插件模块,其实现过程与本申请实施例提供的视频编解码处理方法一致,所能达到的效果也与本申请实施例提供的视频编解码处理方法相同,在此不再赘述。
如图5所示,本发明实施例提供一种视频编解码处理系统,包括:
安卓编解码插件模块50和编解码服务器模块51,其中;
所述安卓编解码插件模块50,运行于宿主机中使用docker服务运行的安卓操作系统,用于将待处理视频源数据存放入所述编解码服务器模块51预先创建的共享内存区域并发送编码请求或解码请求给所述编解码服务器模块51,其中,所述宿主机外挂N卡;
所述编解码服务器模块51,运行于所述宿主机使用的Linux操作系统,用于接收所述安卓编解码插件模块50发送的编码请求或解码请求,基于所述编码请求或解码请求从所述共享内存区域读取所述待处理视频源数据,通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据,将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块50发送通知消息;
所述安卓编解码插件模块50,还用于接收所述编解码服务器模块51发送的通知消息,基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回所述安卓操作系统。
本发明实施例提供的视频编解码处理系统,借助于运行于外挂N卡的宿主机中使用docker服务运行的安卓操作系统的安卓编解码插件模块50和运行于所述宿主机使用的Linux操作系统的编解码服务器模块51,设计所述安卓编解码插件模块50将待处理视频源数据存放入所述编解码服务器模块51预先创建的共享内存区域并发送编码请求或解码请求给所述编解码服务器模块51;设计所述编解码服务器模块51接收所述安卓编解码插件模块50发送的编码请求或解码请求,基于所述编码请求或解码请求从所述共享内存区域读取所述待处理视频源数据,通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据,将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块50发送通知消息;还设计所述安卓编解码插件模块50接收所述编解码服务器模块51发送的通知消息,基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回所述安卓操作系统,整个编解码方案中通过英伟达编码器或英伟达解码器调用N卡的编解码功能实现需要使用的英伟达专用视频编解码软件包套件,而N卡不但可以用来图形显示,而且具有极强的视频编解码能力,且支持RGBA转YUV功能,因此能够提供一种可以支持RGBA转YUV且对安卓支持友好的视频编解码方案。
下面以视频编码过程为例对本申请中视频编解码处理方法进行说明。图6为本发明实施例提供的另一种视频编解码处理系统的结构示意图,图7为本发明实施例提供的又一种视频编解码处理方法的流程示意图,图6中宿主机的操作系统使用ARM版ubuntu,在ubuntu上使用docker服务运行Android,在ubuntu上运行编解码服务器模块codec server,Android内实现视频编解码插件模块encoder/decoder plugin,该插件模块encoder/decoder plugin通过Android的libstagefrighthw模块和网络命名管道Pipe跟ubuntu上的编解码服务器模块codec server通信。图6示出的架构涉及的视频编码处理过程如图7所示。图7中,编解码服务器模块初始化Linux网络命名管道,并监听该管道,通过docker容器将网络命名管道传到容器安卓。之后安卓编解码插件模块打开网络命名管道,将编码器类型、视频长、宽、编码率等编码参数信息通过网络命名管道传递到编解码服务器模块。编解码服务器模块收到编码参数信息后,通过编解码器FFmpeg创建对应的英伟达编码器(比如图6中的英伟达h264编码器h264_nvenc),并创建一个共享内存区域SHM,将共享内存区域SHM的标识符(比如句柄handle)传递回安卓编解码插件模块。安卓编解码插件模块收到共享内存区域SHM的标识符后,会将要编码的RGBA数据放在共享内存区域SHM,并通知编解码服务器模块进行编码。之后编解码服务器模块会将共享内存区域SHM的数据进行编码(安卓编解码插件模块每次请求编码一帧图像数据,而编解码服务器模块根据安卓编解码插件模块的请求每次编码一帧图像数据)。编码完成后,编解码服务器模块会将编码后的数据放在共享内存区域SHM,并通知安卓编解码插件编码完毕,安卓编解码插件收到通知后,会将编码后的数据返回给安卓编码框架。
视频解码过程与视频编码过程一致,所不同的是解码过程涉及的参数为解码参数信息,且编解码服务器模块收到解码参数信息后,通过编解码器FFmpeg创建的是对应的英伟达解码器(比如图6中的英伟达h264解码器nvdec_h264),具体过程此处不再赘述。
图8为本发明实施例电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)80、存储器(memory)81和总线82,其中,处理器80和存储器81通过总线82完成相互间的通信。处理器80可以调用存储器81中的计算机程序,以执行前述任一实施例所述的视频编解码处理方法。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行前述任一实施例所述的视频编解码处理方法。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,该程序被处理器执行时实现前述任一实施例所述的视频编解码处理方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种视频编解码处理方法,其特征在于,该方法运行于Linux操作系统,包括:
接收安卓编解码插件模块发送的编码请求或解码请求;
基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据;
通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据;
将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,其中,所述Linux操作系统所在的宿主机中使用docker服务运行所述安卓操作系统,所述宿主机外挂N卡。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
初始化预设网络命名管道,并通过所述网络命名管道获取所述安卓编解码插件模块发送的参数信息,其中,所述参数信息包括编码参数信息或解码参数信息;
根据所述参数信息创建所述英伟达编码器或英伟达解码器,创建所述共享内存区域,并将所述共享内存区域对应的标识符发送至所述安卓编解码插件模块,以使所述安卓编解码插件模块基于所述标识符将所述待处理视频源数据存放至所述共享内存区域。
3.一种视频编解码处理方法,其特征在于,该方法运行于宿主机中使用docker服务运行的安卓操作系统,包括:
将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求,其中,所述共享内存区域由所述编解码服务器模块预先创建,所述编解码服务器模块运行于所述宿主机使用的Linux操作系统,所述宿主机外挂N卡;
接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,其中,所述目标视频数据由所述编解码服务器模块通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码生成。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过预设网络命名管道向所述编解码服务器模块发送参数信息,其中,所述网络命名管道由所述编解码服务器模块初始化,所述参数信息包括编码参数信息或解码参数信息;
接收所述编解码服务器模块发送的所述共享内存区域对应的标识符,基于所述标识符将所述待处理视频源数据存放至所述共享内存区域。
5.一种编解码服务器模块,其特征在于,该模块运行于Linux操作系统,包括:
接收子模块,用于接收安卓编解码插件模块发送的编码请求或解码请求;
第一读取子模块,用于基于所述编码请求或解码请求从预先创建的共享内存区域读取所述安卓编解码插件模块存放的待处理视频源数据;
生成子模块,用于通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据;
第一发送子模块,用于将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息,以使所述安卓编解码插件模块基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回安卓操作系统,其中,所述Linux操作系统所在的宿主机中使用docker服务运行所述安卓操作系统,所述宿主机外挂N卡。
6.一种安卓编解码插件模块,其特征在于,该模块运行于宿主机中使用docker服务运行的安卓操作系统,包括:
第二发送子模块,用于将待处理视频源数据存放入共享内存区域,向编解码服务器模块发送编码请求或解码请求,其中,所述共享内存区域由所述编解码服务器模块预先创建,所述编解码服务器模块运行于所述宿主机使用的Linux操作系统,所述宿主机外挂N卡;
第二读取子模块,用于接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取目标视频数据,并将其返回所述安卓操作系统,其中,所述目标视频数据由所述编解码服务器模块通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码生成。
7.一种视频编解码处理系统,其特征在于,包括:
安卓编解码插件模块和编解码服务器模块,其中;
所述安卓编解码插件模块,运行于宿主机中使用docker服务运行的安卓操作系统,用于将待处理视频源数据存放入所述编解码服务器模块预先创建的共享内存区域并发送编码请求或解码请求给所述编解码服务器模块,其中,所述宿主机外挂N卡;
所述编解码服务器模块,运行于所述宿主机使用的Linux操作系统,用于接收所述安卓编解码插件模块发送的编码请求或解码请求,基于所述编码请求或解码请求从所述共享内存区域读取所述待处理视频源数据,通过预先创建的英伟达编码器或英伟达解码器对所述待处理视频源数据进行编码或解码,生成目标视频数据,将所述目标视频数据存放入所述共享内存区域,并向所述安卓编解码插件模块发送通知消息;
所述安卓编解码插件模块,还用于接收所述编解码服务器模块发送的通知消息,基于所述通知消息从所述共享内存区域读取所述目标视频数据,并将其返回所述安卓操作系统。
8.一种电子设备,其特征在于,包括处理器、存储器和总线,其中:
所述处理器和存储器通过所述总线完成相互间的通信;
所述处理器可以调用所述存储器中的计算机程序,以执行如权利要求1-2任意一项所述的方法或3-4任意一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-2任意一项所述的方法或3-4任意一项所述的方法的步骤。
CN202211570429.5A 2022-12-08 2022-12-08 视频编解码处理与系统、编解码服务器与插件模块 Active CN115580735B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211570429.5A CN115580735B (zh) 2022-12-08 2022-12-08 视频编解码处理与系统、编解码服务器与插件模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211570429.5A CN115580735B (zh) 2022-12-08 2022-12-08 视频编解码处理与系统、编解码服务器与插件模块

Publications (2)

Publication Number Publication Date
CN115580735A CN115580735A (zh) 2023-01-06
CN115580735B true CN115580735B (zh) 2023-05-02

Family

ID=84590086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211570429.5A Active CN115580735B (zh) 2022-12-08 2022-12-08 视频编解码处理与系统、编解码服务器与插件模块

Country Status (1)

Country Link
CN (1) CN115580735B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107211161A (zh) * 2015-03-10 2017-09-26 苹果公司 包括最后阶段处理的扩展空间的视频编码优化
CN113099238A (zh) * 2021-06-09 2021-07-09 广州易方信息科技股份有限公司 一种用于判断安卓手机播放视频的解码方法
CN114125558A (zh) * 2022-01-26 2022-03-01 麒麟软件有限公司 基于Linux桌面显卡的安卓视频解码硬件加速方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11089343B2 (en) * 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
US20130279877A1 (en) * 2012-04-19 2013-10-24 Qnx Software Systems Limited System and Method Of Video Decoder Resource Sharing
CN104023200A (zh) * 2013-02-28 2014-09-03 北京国通创安报警网络技术有限公司 一种嵌入式报警服务集成设备及报警方法
CN104918116B (zh) * 2015-05-28 2018-10-23 北京视博数字电视科技有限公司 用于智能终端的资源播放方法及系统
CN105430408B (zh) * 2015-12-04 2018-07-06 武汉斗鱼网络科技有限公司 一种基于Intel、AMD和Nvidia三平台的H264硬件解码系统
CN109862357A (zh) * 2019-01-09 2019-06-07 深圳威尔视觉传媒有限公司 低延迟的云游戏图像编码方法、装置、设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107211161A (zh) * 2015-03-10 2017-09-26 苹果公司 包括最后阶段处理的扩展空间的视频编码优化
CN113099238A (zh) * 2021-06-09 2021-07-09 广州易方信息科技股份有限公司 一种用于判断安卓手机播放视频的解码方法
CN114125558A (zh) * 2022-01-26 2022-03-01 麒麟软件有限公司 基于Linux桌面显卡的安卓视频解码硬件加速方法

Also Published As

Publication number Publication date
CN115580735A (zh) 2023-01-06

Similar Documents

Publication Publication Date Title
US20200260117A1 (en) Methods and Apparatuses for Coding and Decoding Depth Map
US10674159B2 (en) Effective intra encoding for screen data
RU2630750C1 (ru) Устройство и способ для кодирования и декодирования исходных данных
CN108200482B (zh) 一种跨平台高清音视频播放方法、系统及客户端
CN108650460B (zh) 服务器、全景视频的存储和传输方法和计算机存储介质
CN112954457A (zh) 视频播放显示方法、装置和系统
CN115695857A (zh) 云应用的视频编码方法及装置
CN115580735B (zh) 视频编解码处理与系统、编解码服务器与插件模块
CN116450149B (zh) 一种硬件解码方法、设备及存储介质
CN110730364A (zh) 一种云手机数据传输方法、装置及存储介质
CN116668741A (zh) 云桌面的显示方法、图像显示方法、设备和存储介质
CN115225615B (zh) 虚幻引擎像素流送方法及装置
CN116456149A (zh) 基于ue引擎分布式渲染视频同步系统和方法
US20220217399A1 (en) Prediction method for current block and electronic device
CN115543083A (zh) 图像显示方法、装置及电子设备
CN113395523A (zh) 基于并行线程的图像解码方法、装置、设备及存储介质
CN113521729A (zh) 云游戏延迟检测方法、服务器、客户端、系统及介质
CN105450504A (zh) 一种图片链接的处理方法及系统
CN112764705B (zh) 一种用户界面共享方法及电子设备
CN110022480B (zh) 一种基于amd显卡的h265硬件编码方法及直播平台
CN113032062A (zh) 一种图像数据传输方法、装置、电子设备及存储介质
CN111447453B (zh) 图像处理方法及装置
CN115866248B (zh) 视频转码方法、装置、计算机设备、存储介质
CN111435995B (zh) 用于生成动态图片的方法、装置和系统
CN115604531A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 230031 Room 672, 6/F, Building A3A4, Zhong'an Chuanggu Science Park, No. 900, Wangjiang West Road, High-tech Zone, Hefei, Anhui

Applicant after: Anhui Haima Cloud Technology Co.,Ltd.

Address before: 100015 rooms 304 and 305, 3 / F, 201 / F, yard 10, Jiuxianqiao North Road, Chaoyang District, Beijing

Applicant before: BEIJING HAIYUDONGXIANG TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant