CN109194698A - 一种基于GStreamer框架的实时视频处理系统及方法 - Google Patents
一种基于GStreamer框架的实时视频处理系统及方法 Download PDFInfo
- Publication number
- CN109194698A CN109194698A CN201811296848.8A CN201811296848A CN109194698A CN 109194698 A CN109194698 A CN 109194698A CN 201811296848 A CN201811296848 A CN 201811296848A CN 109194698 A CN109194698 A CN 109194698A
- Authority
- CN
- China
- Prior art keywords
- video
- plug
- audio
- unit
- real
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于GStreamer框架的实时视频处理系统及方法,所述系统基于插件和管道的体系结构,所述管道包括一个实时视频处理算法要运行时的所有处理步骤以及结果输出,所述系统中的功能模块都被实现成可以插拔的组件,本发明基于GStreamer框架实现了实时视频处理的目的,实现了代码重用,可以简化Linux下多媒体应用程序的开发,在GStreamer多媒体框架下开发的系统可以装卸载不同的插件以实现其他功能,具有良好的功能扩展性。
Description
技术领域
本发明涉及视频处理技术领域,特别是涉及一种基于GStreamer框架的实时视频处理系统及方法。
背景技术
实时视频处理算法是通过获取摄像头视频流解码并通过算法对视频帧处理得出结果,所以合理高效的多媒体处理框架对于算法的集成、维护以及扩展非常重要。传统多媒体框架都使用Lives555框架,Lives555框架是一个实现了RTSP协议的开源流媒体框架,包含RTSP服务器端的实现以及RTSP客户端的实现。Lives555框架可以将若干种格式的视频文件或者音频文件转换成视频流或者音频流在网络中通过RTSP协议分发传播,这便是流媒体服务器最核心的功能。但是由于现有技术调度框架采用的是全局单线程事件查询调度,并且在轮循线程中直接对数据进行了处理,所以在处理多路数据或处理数据时间过长带来较严重的性能问题,同时Lives555框架扩展性能差,在开发中带来很大的代码量。
因此,实有必要提出一种技术手段,以解决上述问题
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种基于GStreamer框架的实时视频处理系统及方法,以基于GStreamer框架实现实时视频处理的目的,实现了代码重用,可以简化Linux下多媒体应用程序的开发,在GStreamer多媒体框架下开发的系统可以装卸载不同的插件以实现其他功能,具有良好的功能扩展性。
为达上述及其它目的,本发明提出一种基于GStreamer框架的实时视频处理系统,所述系统基于插件和管道的体系结构,所述管道包括一个实时视频处理算法要运行时的所有处理步骤以及结果输出,所述系统中的功能模块都被实现成可以插拔的组件。
优选地,所述管道包括取流插件、解码插件、n个算法插件以及sink插件,所述取流插件用于获取视频或者音频的流,产生的视频或音频流经过解码插件输出算法插件所需要的数据格式,各算法插件用于对解码后的视频或音频流进行一系列处理,所述sink插件用于将算法插件所处理的结果输出。
优选地,所有插件都通过管道机制进行统一的数据交换
优选地,各算法插件实现了视频或音频处理的一系列函数接口,封装了视频或音频的数据结构,高效地实现了视频音频数据的传输。
优选地,所述算法插件继承所述GStreamer框架的elment元素或者插件以便可以方便的应用于一个管道内,每个算法插件都独立于其应用的管道实现了即插即用。
优选地,各算法插件继承了所述GStreamer框架的类别gstvideofilter或gstaudiofilter,所述类别gstvideofilter或gstaudiofilter实现了视频或音频处理一系列的函数接口,封装了视频或音频buffer数据结构。
优选地,每个管道处理一路视频流,多个管道之间通过信号机制进行通信。
为达到上述目的,本发明还提供一种基于GStreamer框架的实时视频处理方法,所述方法基于插件和管道的体系结构,包括如下步骤:
步骤S1,利用取流插件获取视频或者音频的流;
步骤S2,将产生的视频或音频流经过解码插件输出算法插件所需要的数据格式;
步骤S3,利用n个算法插件对解码后的视频或音频进行一系列的视频或音频处理;
步骤S4,利用sink插件将算法插件所处理的结果输出。
优选地,于步骤S3中,各算法插件实现了视频或音频处理的一系列函数接口,封装了视频或音频的数据结构,高效地实现了视频音频数据的传输。
优选地,各算法插件继承了所述GStreamer框架的类别gstvideofilter或gstaudiofilter,所述类别gstvideofilter或gstaudiofilter实现了视频或音频处理一系列的函数接口,封装了视频或音频buffer数据结构。
与现有技术相比,本发明一种基于GStreamer框架的实时视频处理系统及方法基于GStreamer框架实现了实时视频处理的目的,本发明实现了代码重用,可以简化Linux下多媒体应用程序的开发,在GStreamer多媒体框架下开发的系统可以装卸载不同的插件以实现其他功能,具有良好的功能扩展性。
附图说明
图1为本发明一种基于GStreamer框架的实时视频处理系统的系统结构图;
图2为本发明一种基于GStreamer框架的实时视频处理方法的步骤流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
GStreamer是多媒体开发的应用框架,采用面向对象的设计思想,通过插件和管道形式构建了开发体系结构,GStreamer开发框架最重要的组成部分就是插件,GStreamer提供一个框架,通过插件形式把需要的元件模块、数据输入输出等都可以集成到系统中。GStreamer为应用程序员提供简单的API,就像操作系统内核一样,使得上层应用程序不直接与底层硬件设备驱动打交道,这样有利于上层程序的开发。使用GStreamer开发框架,能够更加快速的开发多媒体应用程序,降低开发难度,GStreamer最主要的就是它的核心库函数以及其他一些动态库。GStreamer核心库特点:允许任意的管道建设,基于面向对象的设计;并且继承Glib2.0对象模型,采用少量插件能够透明的构建多线程管道,开发出来的应用程序拥有良好的服务质量;为开发者提供了完整的系统核心和插件,为插件和应用程序开发者提供了简单方便快捷的API。
Gstvideofilter插件是gstreamer用于视频处理的插件,提供了视频处理有用的处理函数,本发明之实时视频处理系统继承了该类别,相应的Gstaudiofilter是基于音频算法的插件,音频处理可以集成该类别,gstreamer框架的完备性和可扩展性给了音视频算法集成很好的环境。
本发明之实时处理系统基于RK3288嵌入式开发板,主要针对视频算法集成,主要包括视频流的获取,视频解码,图像预处理和算法模块处理以及结果输出,视频处理算法的设计者只需要将算法继承gstreamer的elment元素或者插件(plugin)便可以方便的应用于一个管道内,每个算法模块都独立于其应用的管道实现了“即插即用”的效果。
图1为本发明一种基于GStreamer框架的实时视频处理系统的系统结构图。如图1所示,本发明一种基于GStreamer框架的实时视频处理系统,基于插件(plugin)和管道(pipeline)的体系结构,所述管道包含一个实时视频处理算法要运行时的所有处理步骤以及结果输出,其包括取流(source)插件、解码插件、n个算法插件以及sink插件,其中,取流(source)插件用于获取视频或者音频的流,例如在本发明具体实施例中,视频用rtspsrc,音频用alsasrc;产生的视频或音频流经过解码插件输出算法插件所需要的数据格式,各算法插件实现了视频或音频处理的一系列函数接口,封装了视频或音频buffer数据结构,高效地实现了视频音频数据的传输,在本发明具体实施例中,算法插件还实现了视频自动丢帧机制,为算法开发和集成提供了很大的便利,在本发明具体实施例中,算法插件继承了原有的类别gstvideofilter(视频)或gstaudiofilter(音频),这样保证了各个算法结构的一致性,gstvideofilter或gstaudiofilter实现了视频或音频处理一系列的函数接口,封装了视频或音频buffer数据结构,高效的实现了视频或音频数据的传输;sink插件则用于将算法插件所处理的结果输出,这里的sink插件则是作为数据的“消费者”。
在本发明具体实施例中,该实时视频处理系统采用了基于插件(plugin)和管道(pipeline)的体系结构,系统中所有的功能模块都被实现成可以插拔的组件(component),并且在需要的时候能够很方便地安装到任意一个管道上,由于所有插件都通过管道机制进行统一的数据交换,因此很容易利用已有的各种插件“组装”出一个功能完善的多媒体应用程序。本发明在视频算法集成中一个管道只要输出的数据格式对应上即可以接上任意个算法模块对视频流进行分析。图1中管道包含一个算法要运行时的所有处理步骤以及结果输出,一般每个管道处理一路视频流,多个管道之间可以通过信号机制进行通信。
图2为本发明一种基于GStreamer框架的实时视频处理方法的步骤流程图。如图2所示,本发明一种基于GStreamer框架的实时视频处理方法,所述实时视频处理方法基于插件(plugin)和管道(pipeline)的体系结构,其包括如下步骤:
步骤S1,利用取流(source)插件获取视频或者音频的流,例如在本发明具体实施例中,视频用rtspsrc,音频用alsasrc;
步骤S2,将产生的视频或音频流经过解码插件输出算法插件所需要的数据格式;
步骤S3,利用n个算法插件对解码后的视频或音频进行一系列的视频或音频处理,在本发明具体实施例中,n个算法插件实现了视频或音频处理的一系列函数接口,封装了视频或音频buffer数据结构,高效地实现了视频音频数据的传输,在本发明具体实施例中,算法插件还实现了视频自动丢帧机制,为算法开发和集成提供了很大的便利,在本发明具体实施例中,算法插件继承了原有的类别gstvideofilter(视频)或gstaudiofilter(音频),这样保证了各个算法结构的一致性,gstvideofilter或gstaudiofilter实现了视频或音频处理一系列的函数接口,封装了视频或音频buffer数据结构,高效的实现了视频或音频数据的传输;
步骤S4,利用sink插件将算法插件所处理的结果输出,在本发明具体实施例中,sink插件则是作为数据的“消费者”。
综上所述,本发明一种基于GStreamer框架的实时视频处理系统及方法基于GStreamer框架实现了实时视频处理的目的,本发明实现了代码重用,可以简化Linux下多媒体应用程序的开发,在GStreamer多媒体框架下开发的系统可以装卸载不同的插件以实现其他功能,具有良好的功能扩展性。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种基于GStreamer框架的实时视频处理系统,其特征在于:所述系统基于插件和管道的体系结构,所述管道包括一个实时视频处理算法要运行时的所有处理步骤以及结果输出,所述系统中的功能模块都被实现成可以插拔的组件。
2.如权利要求1所述的一种基于GStreamer框架的实时视频处理系统,其特征在于:所述管道包括取流插件、解码插件、n个算法插件以及sink插件,所述取流插件用于获取视频或者音频的流,产生的视频或音频流经过解码插件输出算法插件所需要的数据格式,各算法插件用于对解码后的视频或音频流进行一系列处理,所述sink插件用于将算法插件所处理的结果输出。
3.如权利要求2所述的一种基于GStreamer框架的实时视频处理系统,其特征在于:所有插件都通过管道机制进行统一的数据交换。
4.如权利要求3所述的一种基于GStreamer框架的实时视频处理系统,其特征在于:各算法插件实现了视频或音频处理的一系列函数接口,封装了视频或音频的数据结构,高效地实现了视频音频数据的传输。
5.如权利要求4所述的一种基于GStreamer框架的实时视频处理系统,其特征在于:所述算法插件继承所述GStreamer框架的elment元素或者插件以便可以方便的应用于一个管道内,每个算法插件都独立于其应用的管道实现了即插即用。
6.如权利要求5所述的一种基于GStreamer框架的实时视频处理系统,其特征在于:各算法插件继承了所述GStreamer框架的类别gstvideofilter或gstaudiofilter,所述类别gstvideofilter或gstaudiofilter实现了视频或音频处理一系列的函数接口,封装了视频或音频buffer数据结构。
7.如权利要求1所述的一种基于GStreamer框架的实时视频处理系统,其特征在于:每个管道处理一路视频流,多个管道之间通过信号机制进行通信。
8.一种基于GStreamer框架的实时视频处理方法,所述方法基于插件和管道的体系结构,包括如下步骤:
步骤S1,利用取流插件获取视频或者音频的流;
步骤S2,将产生的视频或音频流经过解码插件输出算法插件所需要的数据格式;
步骤S3,利用n个算法插件对解码后的视频或音频进行一系列的视频或音频处理;
步骤S4,利用sink插件将算法插件所处理的结果输出。
9.如权利要求8所述的一种基于GStreamer框架的实时视频处理方法,其特征在于,于步骤S3中,各算法插件实现了视频或音频处理的一系列函数接口,封装了视频或音频的数据结构,高效地实现了视频音频数据的传输。
10.如权利要求9所述的一种基于GStreamer框架的实时视频处理方法,其特征在于:各算法插件继承了所述GStreamer框架的类别gstvideofilter或gstaudiofilter,所述类别gstvideofilter或gstaudiofilter实现了视频或音频处理一系列的函数接口,封装了视频或音频buffer数据结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811296848.8A CN109194698A (zh) | 2018-11-01 | 2018-11-01 | 一种基于GStreamer框架的实时视频处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811296848.8A CN109194698A (zh) | 2018-11-01 | 2018-11-01 | 一种基于GStreamer框架的实时视频处理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109194698A true CN109194698A (zh) | 2019-01-11 |
Family
ID=64941532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811296848.8A Pending CN109194698A (zh) | 2018-11-01 | 2018-11-01 | 一种基于GStreamer框架的实时视频处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194698A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493626A (zh) * | 2019-09-10 | 2019-11-22 | 海信集团有限公司 | 视频数据处理方法及装置 |
CN110536173A (zh) * | 2019-08-27 | 2019-12-03 | 海信集团有限公司 | 数据流链路中的元件连接的方法及装置 |
CN113709525A (zh) * | 2021-08-26 | 2021-11-26 | 程艳华 | 一种多元通信方法及通信系统 |
CN113990354A (zh) * | 2021-12-29 | 2022-01-28 | 北京鲸鲮信息系统技术有限公司 | 基于Linux的音频控制方法、装置、设备和存储介质 |
CN114302202A (zh) * | 2021-12-22 | 2022-04-08 | 深圳创维-Rgb电子有限公司 | 音视频投屏方法、装置、设备、系统及存储介质 |
CN114727070A (zh) * | 2022-05-10 | 2022-07-08 | 中科院广州电子技术有限公司 | 一种摄像头实时视频数据处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763938A (zh) * | 2014-12-15 | 2016-07-13 | 深圳Tcl数字技术有限公司 | GStreamer解密加密数据的方法及装置 |
CN107333179A (zh) * | 2017-06-27 | 2017-11-07 | 青岛海信电器股份有限公司 | 一种开机视频的播放方法及装置 |
CN107517411A (zh) * | 2017-09-04 | 2017-12-26 | 青岛海信电器股份有限公司 | 一种基于GStreamer框架的视频播放方法 |
CN107704231A (zh) * | 2017-09-25 | 2018-02-16 | 青岛海信电器股份有限公司 | 多音频选择播放方法及装置 |
CN108259998A (zh) * | 2018-03-01 | 2018-07-06 | 青岛海信电器股份有限公司 | 播放器及播放控制方法、装置、电子设备及播放系统 |
-
2018
- 2018-11-01 CN CN201811296848.8A patent/CN109194698A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105763938A (zh) * | 2014-12-15 | 2016-07-13 | 深圳Tcl数字技术有限公司 | GStreamer解密加密数据的方法及装置 |
CN107333179A (zh) * | 2017-06-27 | 2017-11-07 | 青岛海信电器股份有限公司 | 一种开机视频的播放方法及装置 |
CN107517411A (zh) * | 2017-09-04 | 2017-12-26 | 青岛海信电器股份有限公司 | 一种基于GStreamer框架的视频播放方法 |
CN107704231A (zh) * | 2017-09-25 | 2018-02-16 | 青岛海信电器股份有限公司 | 多音频选择播放方法及装置 |
CN108259998A (zh) * | 2018-03-01 | 2018-07-06 | 青岛海信电器股份有限公司 | 播放器及播放控制方法、装置、电子设备及播放系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110536173A (zh) * | 2019-08-27 | 2019-12-03 | 海信集团有限公司 | 数据流链路中的元件连接的方法及装置 |
CN110493626A (zh) * | 2019-09-10 | 2019-11-22 | 海信集团有限公司 | 视频数据处理方法及装置 |
CN110493626B (zh) * | 2019-09-10 | 2020-12-01 | 海信集团有限公司 | 视频数据处理方法及装置 |
CN113709525A (zh) * | 2021-08-26 | 2021-11-26 | 程艳华 | 一种多元通信方法及通信系统 |
CN114302202A (zh) * | 2021-12-22 | 2022-04-08 | 深圳创维-Rgb电子有限公司 | 音视频投屏方法、装置、设备、系统及存储介质 |
CN114302202B (zh) * | 2021-12-22 | 2023-03-14 | 深圳创维-Rgb电子有限公司 | 音视频投屏方法、装置、设备、系统及存储介质 |
CN113990354A (zh) * | 2021-12-29 | 2022-01-28 | 北京鲸鲮信息系统技术有限公司 | 基于Linux的音频控制方法、装置、设备和存储介质 |
CN114727070A (zh) * | 2022-05-10 | 2022-07-08 | 中科院广州电子技术有限公司 | 一种摄像头实时视频数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194698A (zh) | 一种基于GStreamer框架的实时视频处理系统及方法 | |
US11922564B2 (en) | Generative content system that supports location-based services and methods therefor | |
US20200004598A1 (en) | Server kit and methods therefor | |
US20200007615A1 (en) | Server kit configured to execute custom workflows and methods therefor | |
US20200007556A1 (en) | Server kit configured to marshal resource calls and methods therefor | |
CN109002362A (zh) | 一种服务方法、装置、系统以及电子设备 | |
JP7392136B2 (ja) | ビデオコンテンツを表示するための方法、コンピュータシステム、およびコンピュータプログラム | |
US20030156108A1 (en) | Consistent digital item adaptation | |
Riliskis et al. | Ravel: Programming iot applications as distributed models, views, and controllers | |
CN102377985A (zh) | 移动视频监控系统的媒体模块 | |
Boutellier et al. | PRUNE: Dynamic and decidable dataflow for signal processing on heterogeneous platforms | |
Lohrmann et al. | Massively-parallel stream processing under qos constraints with nephele | |
Lucarz et al. | Reconfigurable media coding: A new specification model for multimedia coders | |
CN104243274A (zh) | 一种消息处理方法及消息中心系统 | |
CN109117282A (zh) | 一种数据传输方法、通讯组件、装置及系统 | |
CN105718429B (zh) | 巡检报告生成的方法及装置 | |
US9325758B2 (en) | Runtime tuple attribute compression | |
US9026983B2 (en) | Flexible and scalable software system architecture for implementing multimedia applications | |
CN113312394B (zh) | 数据获取系统的构建方法及装置 | |
WO2022261810A1 (zh) | 数据获取系统的构建方法及装置 | |
Garcia et al. | NUBOMEDIA: an elastic PaaS enabling the convergence of real-time and big data multimedia | |
Sun et al. | Design of a Media Resource Management System for Colleges Based on Cloud Service | |
CN116636225A (zh) | 信息处理装置和方法 | |
Mitchell | Dynamic configuration of distributed multimedia components | |
Li | Construction of landscape architecture art design based on streaming media data processing |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190111 |