CN117742863A - 一种基于Qt和GStreamer结合的多媒体处理方法、系统 - Google Patents
一种基于Qt和GStreamer结合的多媒体处理方法、系统 Download PDFInfo
- Publication number
- CN117742863A CN117742863A CN202311760868.7A CN202311760868A CN117742863A CN 117742863 A CN117742863 A CN 117742863A CN 202311760868 A CN202311760868 A CN 202311760868A CN 117742863 A CN117742863 A CN 117742863A
- Authority
- CN
- China
- Prior art keywords
- video image
- drm
- unit
- video
- image
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000009877 rendering Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 3
- 238000000034 method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本发明公开了一种基于Qt和GStreamer结合的多媒体处理方法、系统。本发明通过设置图像缓存区分配单元用于存放DRM文件描述符,能够实现自适应DRM资源的分配,使得DRM资源可以共享给Qt和GStreamer两者同时使用,使得kmssink可以将视频图像进行显示以及使得Qt的组件显示控制单元可以同时对视频图像的显示进行控制,达到对视频图像的实时控制效果,通过本发明可以方便地将GStreamer多媒体处理功能与Qt界面控件相结合,实现图形界面和视频图像的并行渲染,支持视频buffer的零拷贝显示,减轻CPU负担,系统延迟性低,显示效率高。
Description
技术领域
本发明涉及多媒体处理技术领域,具体为一种基于Qt和GStreamer结合的多媒体处理方法、系统。
背景技术
GStreamer是一个功能强大的多媒体处理软件框架,GStreamer在运行时都会在系统内存中创建元素和连接元素之间的管道,这些元素包括源元素、过滤器元素和输出元素等,它们共同构成了多媒体数据流的处理流程;每个元素本身会占用内存数量,且管道的复杂度越高,元素数量越多,系统内存占用也会相应增加。
现有技术中,Qt程序采用GStreamer的kmssink插件处理视频图像等多媒体数据的显示时,能利用kmssink硬件加速功能高效地渲染视频,其中kmssink是GStreamer其中一个显示插件,kmssink为基于Linux DRM框架实现;然而,在进行视频图像时kmssink独占了DRM资源,导致Qt无法享有DRM资源以对视频图像的显示进行控制。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种基于Qt和GStreamer结合的多媒体处理方法、系统,能够解决上述技术问题。
(二)技术方案
为解决上述技术问题,本发明提供如下一技术方案:一种基于Qt和GStreamer结合的多媒体处理方法,包括以下步骤:
S1:配置单元对DRM资源进行配置初始化,以生成DRM文件描述符;
S2:将DRM文件描述符上传至图像缓存区分配单元;
S3:GStreamer的视频图像采集单元从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源进行视频图像的采集;
S4:在完成视频图像的采集之后,视频图像采集单元将DRM文件描述符回传至图像缓存区分配单元;
S5:GStreamer的kmssink从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源将视频图像在Qt的图形界面进行显示;同时,Qt的组件显示控制单元从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源对视频图像在图形界面的显示进行控制。
优选的,在步骤S3中,视频图像采集单元具体从摄像头进行视频图像的采集。
优选的,在步骤S3中,视频图像采集单元具体从视频文件进行视频图像的采集。
优选的,图形界面设有视频图像区域;在步骤S5中,kmssink为将视频图像在视频图像区域进行显示。
优选的,视频图像区域的位置为可调整的。
优选的,在步骤S5中,组件显示控制单元对视频图像的显示进行控制具体包括:对视频图像进行缩放显示。
优选的,基于Qt和GStreamer结合的多媒体处理方法还包括:对图形界面进行初始化。
为解决上述技术问题,本发明提供如下一技术方案:一种基于Qt和GStreamer结合的多媒体处理系统,包括:Qt、GStreamer、图像缓存区分配单元以及配置单元,GStreamer包括视频图像采集单元以及kmssink,Qt包括组件显示控制单元,Qt设有图形界面;
配置单元用于对DRM资源进行配置初始化,以生成DRM文件描述符;
图像缓存区分配单元用于存放DRM文件描述符;
视频图像采集单元用于从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源进行视频图像的采集;
视频图像采集单元还用于:在完成视频图像的采集之后,将DRM文件描述符回传至图像缓存区分配单元;
kmssink用于从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源将视频图像在图形界面进行显示;
组件显示控制单元用于从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源对视频图像在图形界面的显示进行控制。
优选的,视频图像采集单元具体从摄像头进行视频图像的采集。
优选的,视频图像采集单元具体从视频文件进行视频图像的采集。
(三)有益效果
与现有技术相比,本发明提供了一种基于Qt和GStreamer结合的多媒体处理方法、系统,具备以下有益效果:通过设置图像缓存区分配单元用于存放DRM文件描述符,能够实现自适应DRM资源的分配,使得DRM资源可以共享给Qt和GStreamer两者同时使用,使得kmssink可以将视频图像进行显示以及使得Qt的组件显示控制单元可以同时对视频图像的显示进行控制,达到对视频图像的实时控制效果,通过本发明可以方便地将GStreamer多媒体处理功能与Qt界面控件相结合,实现图形界面和视频图像的并行渲染;另外,在完成视频图像的采集之后,通过将DRM文件描述符进行回传,以更好地回收利用空闲的DRM资源。
附图说明
图1为本发明一种基于Qt和GStreamer结合的多媒体处理方法的步骤流程图;
图2为本发明一种基于Qt和GStreamer结合的多媒体处理系统的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种基于Qt和GStreamer结合的多媒体处理方法,包括以下步骤:
S1:配置单元对DRM资源进行配置初始化,以生成DRM文件描述符。
DRM(Direct Rendering Manager,直接渲染管理器)主要是为实现图形的直接渲染架构(Direct Rendering Infrastructure,DRI)硬件加速而服务的一套标准的显卡驱动框架。
DRM资源由GPU(图形处理器)等DRM设备所提供。在上述步骤S1中所进行的配置初始化具体可包括:使用Linux系统的IO函数打开DRM设备文件,以配置DRM资源的控制参数、配置显示模式、以及分配和管理图形缓冲区等对DRM资源进行初始化,生成DRM文件描述符。DRM文件描述符描述了DRM设备以及多个渲染节点和控制节点的访问入口,DRM文件描述符使得可以通过系统应用层调用来访问DRM资源(GPU图形资源),以完成图形计算、渲染任务等。
S2:将DRM文件描述符上传至图像缓存区分配单元。
图像缓存区分配单元为提供一个环形缓存区队列存放DRM文件描述符,以实现自适应DRM资源的分配,使得DRM资源可以共享给Qt和GStreamer两者同时使用。
S3:GStreamer的视频图像采集单元从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源进行视频图像的采集。
GStreamer是用来构建流媒体应用的开源多媒体框架(framework),其目标是要简化音/视频应用程序的开发,已经能够被用来处理像MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime等多种格式的多媒体数据。GStreamer是一个功能强大的多媒体处理软件框架,GStreamer在运行时都会在系统内存中创建元素和连接元素之间的管道,这些元素包括源元素、过滤器元素和输出元素等,它们共同构成了多媒体数据流的处理流程。每个元素本身会占用内存数量,且管道的复杂度越高,元素数量越多,系统内存占用也会相应增加。因此,当程序创建多个管道时,需要考虑到每个管道的内存占用,特别是嵌入式系统或系统资源受限的环境,内存是有限的资源,优化管道的配置,最大程度地减少内存使用显得尤为重要。
在步骤S3中,视频图像采集单元具体可从摄像头进行视频图像的采集。此外,在步骤S3中,视频图像采集单元具体也可从视频文件进行视频图像的采集。当然,视频图像采集单元也可从其他视频源进行视频图像的采集,此处不作过多限制。
S4:在完成视频图像的采集之后,视频图像采集单元将DRM文件描述符回传至图像缓存区分配单元。
S5:GStreamer的kmssink从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源将视频图像在Qt的图形界面进行显示;同时,Qt的组件显示控制单元从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源对视频图像在图形界面的显示进行控制。
kmssink是GStreamer其中一个显示插件,kmssink为基于Linux DRM框架实现。Qt是一个由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。
具体的,上述步骤S1所生成的DRM文件描述符为多个,即对应有多个DRM资源;在上述步骤S3中,视频图像采集单元为从图像缓存区分配单元获取某个DRM文件描述符,以利用该DRM文件描述符对应的DRM资源进行视频图像的采集;进一步的,在上述步骤S4中,视频图像采集单元将其在步骤S3所获取的那一个DRM文件描述符回传至图像缓存区分配单元,以释放对应的DRM资源;在上述步骤S5中,kmssink从图像缓存区分配单元获取某个DRM文件描述符(既可为步骤S4回传的DRM文件描述符,也可为存放于图像缓存区分配单元中除了步骤S4回传之外的其他DRM文件描述符),使得kmssink可以相应利用空闲的DRM资源将视频图像进行显示;此外,在上述步骤S5中,组件显示控制单元从图像缓存区分配单元获取某个DRM文件描述符(既可为步骤S4回传的DRM文件描述符,也可为存放于图像缓存区分配单元中除了步骤S4回传之外的其他DRM文件描述符),使得组件显示控制单元可以相应利用空闲的DRM资源对视频图像的显示进行控制。
具体的,图形界面设有视频图像区域;在步骤S5中,kmssink为将视频图像在视频图像区域进行显示。进一步的,视频图像区域的位置为可调整的,以使得视频图像可在图形界面的不同位置处进行显示。
优选的,在步骤S5中,组件显示控制单元对视频图像的显示进行控制具体包括:对视频图像进行缩放显示。
此外,本发明的基于Qt和GStreamer结合的多媒体处理方法还可包括:对上述图形界面进行初始化。
本发明还提供一种基于Qt和GStreamer结合的多媒体处理系统,包括:Qt 11、GStreamer 12、图像缓存区分配单元13以及配置单元14,GStreamer包括视频图像采集单元以及kmssink,Qt包括组件显示控制单元,Qt设有图形界面。
配置单元14用于对DRM资源进行配置初始化,以生成DRM文件描述符。
图像缓存区分配单元13用于存放DRM文件描述符。
视频图像采集单元用于从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源进行视频图像的采集。具体的,视频图像采集单元可从摄像头或者视频文件进行视频图像的采集。
视频图像采集单元还用于:在完成视频图像的采集之后,将DRM文件描述符回传至图像缓存区分配单元。
kmssink用于从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源将视频图像在图形界面进行显示。
组件显示控制单元用于从图像缓存区分配单元获取DRM文件描述符,以利用DRM资源对视频图像在图形界面的显示进行控制。
与现有技术相比,本发明提供了一种基于Qt和GStreamer结合的多媒体处理方法、系统,具备以下有益效果:通过设置图像缓存区分配单元用于存放DRM文件描述符,能够实现自适应DRM资源的分配,使得DRM资源可以共享给Qt和GStreamer两者同时使用,使得kmssink可以将视频图像进行显示以及使得Qt的组件显示控制单元可以同时对视频图像的显示进行控制,达到对视频图像的实时控制效果,通过本发明可以方便地将GStreamer多媒体处理功能与Qt界面控件相结合,实现图形界面和视频图像的并行渲染,本发明支持视频buffer(缓存区)的零拷贝显示,减轻CPU负担,系统延迟性低,显示效率高;另外,在完成视频图像的采集之后,通过将DRM文件描述符进行回传,以更好地回收利用空闲的DRM资源。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种基于Qt和GStreamer结合的多媒体处理方法,其特征在于,包括以下步骤:
S1:配置单元对DRM资源进行配置初始化,以生成DRM文件描述符;
S2:将所述DRM文件描述符上传至图像缓存区分配单元;
S3:GStreamer的视频图像采集单元从所述图像缓存区分配单元获取所述DRM文件描述符,以利用所述DRM资源进行视频图像的采集;
S4:在完成所述视频图像的采集之后,所述视频图像采集单元将所述DRM文件描述符回传至所述图像缓存区分配单元;
S5:所述GStreamer的kmssink从所述图像缓存区分配单元获取所述DRM文件描述符,以利用所述DRM资源将所述视频图像在Qt的图形界面进行显示;同时,Qt的组件显示控制单元从所述图像缓存区分配单元获取所述DRM文件描述符,以利用所述DRM资源对所述视频图像在所述图形界面的显示进行控制。
2.根据权利要求1所述的基于Qt和GStreamer结合的多媒体处理方法,其特征在于:在所述步骤S3中,所述视频图像采集单元具体从摄像头进行所述视频图像的采集。
3.根据权利要求1所述的基于Qt和GStreamer结合的多媒体处理方法,其特征在于:在所述步骤S3中,所述视频图像采集单元具体从视频文件进行所述视频图像的采集。
4.根据权利要求1所述的基于Qt和GStreamer结合的多媒体处理方法,其特征在于:所述图形界面设有视频图像区域;在所述步骤S5中,所述kmssink为将所述视频图像在所述视频图像区域进行显示。
5.根据权利要求4所述的基于Qt和GStreamer结合的多媒体处理方法,其特征在于:所述视频图像区域的位置为可调整的。
6.根据权利要求1所述的基于Qt和GStreamer结合的多媒体处理方法,其特征在于:在所述步骤S5中,所述组件显示控制单元对所述视频图像的显示进行控制具体包括:对所述视频图像进行缩放显示。
7.根据权利要求1所述的基于Qt和GStreamer结合的多媒体处理方法,其特征在于,还包括:对所述图形界面进行初始化。
8.一种基于Qt和GStreamer结合的多媒体处理系统,其特征在于,包括:Qt、GStreamer、图像缓存区分配单元以及配置单元,所述GStreamer包括视频图像采集单元以及kmssink,所述Qt包括组件显示控制单元,所述Qt设有图形界面;
所述配置单元用于对DRM资源进行配置初始化,以生成DRM文件描述符;
所述图像缓存区分配单元用于存放所述DRM文件描述符;
所述视频图像采集单元用于从所述图像缓存区分配单元获取所述DRM文件描述符,以利用所述DRM资源进行视频图像的采集;
所述视频图像采集单元还用于:在完成所述视频图像的采集之后,将所述DRM文件描述符回传至所述图像缓存区分配单元;
所述kmssink用于从所述图像缓存区分配单元获取所述DRM文件描述符,以利用所述DRM资源将所述视频图像在所述图形界面进行显示;
所述组件显示控制单元用于从所述图像缓存区分配单元获取所述DRM文件描述符,以利用所述DRM资源对所述视频图像在所述图形界面的显示进行控制。
9.根据权利要求8所述的基于Qt和GStreamer结合的多媒体处理系统,其特征在于:所述视频图像采集单元具体从摄像头进行所述视频图像的采集。
10.根据权利要求8所述的基于Qt和GStreamer结合的多媒体处理系统,其特征在于:所述视频图像采集单元具体从视频文件进行所述视频图像的采集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311760868.7A CN117742863A (zh) | 2023-12-19 | 2023-12-19 | 一种基于Qt和GStreamer结合的多媒体处理方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311760868.7A CN117742863A (zh) | 2023-12-19 | 2023-12-19 | 一种基于Qt和GStreamer结合的多媒体处理方法、系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742863A true CN117742863A (zh) | 2024-03-22 |
Family
ID=90254118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311760868.7A Pending CN117742863A (zh) | 2023-12-19 | 2023-12-19 | 一种基于Qt和GStreamer结合的多媒体处理方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742863A (zh) |
-
2023
- 2023-12-19 CN CN202311760868.7A patent/CN117742863A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101563098B1 (ko) | 커맨드 프로세서를 갖는 그래픽 프로세싱 유닛 | |
WO2022048097A1 (zh) | 一种基于多显卡的单帧画面实时渲染方法 | |
CN108052395A (zh) | 通用处理器和图形处理器之间的负载均衡 | |
TW201216200A (en) | Multi-shader system and processing method thereof | |
KR20100103704A (ko) | 그래픽스 처리 시스템의 오프-스크린 표면을 위한 멀티-버퍼 지원 | |
US11288765B2 (en) | System and method for efficient multi-GPU execution of kernels by region based dependencies | |
TW201926239A (zh) | 以微磚為基礎之低解析度深度儲存 | |
JP2023540872A (ja) | 病理組織スライドの改善された可視化及びレンダリングを提供するために電子画像を処理するシステム及び方法 | |
CN112835730A (zh) | 图像存储、内存分配、图像合成方法、装置、设备及介质 | |
CN114567784B (zh) | 一种用于飞腾显卡的vpu视频解码输出方法及系统 | |
WO2016167876A1 (en) | Supporting multi-level nesting of command buffers in graphics command streams at computing devices | |
WO2018119712A1 (zh) | 视频显示方法、装置、电子设备和计算机程序产品 | |
CN109672931B (zh) | 用于处理视频帧的方法和装置 | |
US20220417382A1 (en) | Buffer management for plug-in architectures in computation graph structures | |
US20080211820A1 (en) | Information Processing Device, Graphic Processor, Control Processor, and Information Processing Method | |
CN117742863A (zh) | 一种基于Qt和GStreamer结合的多媒体处理方法、系统 | |
CN106547505B (zh) | 用于实时滑动显示扫描图像的方法及系统 | |
US10678553B2 (en) | Pro-active GPU hardware bootup | |
WO2023245494A1 (zh) | 从渲染引擎中获取纹理数据的方法及装置、电子设备 | |
US9232156B1 (en) | Video processing device and method | |
US8587599B1 (en) | Asset server for shared hardware graphic data | |
US11605364B2 (en) | Line-based rendering for graphics rendering systems, methods, and devices | |
Longobardi et al. | Efficient augmented reality on low-power embedded systems | |
Kim et al. | Multiscreen-based gaming services using multi-view rendering with different resolutions | |
CN115134658A (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 |