CN109194698A - 一种基于GStreamer框架的实时视频处理系统及方法 - Google Patents

一种基于GStreamer框架的实时视频处理系统及方法 Download PDF

Info

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
Application number
CN201811296848.8A
Other languages
English (en)
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.)
POLYTRON TECHNOLOGIES Inc
Haoyun Technologies Co Ltd
Original Assignee
POLYTRON TECHNOLOGIES Inc
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 POLYTRON TECHNOLOGIES Inc filed Critical POLYTRON TECHNOLOGIES Inc
Priority to CN201811296848.8A priority Critical patent/CN109194698A/zh
Publication of CN109194698A publication Critical patent/CN109194698A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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框架的实时视频处理系统及方法
技术领域
本发明涉及视频处理技术领域,特别是涉及一种基于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数据结构。
CN201811296848.8A 2018-11-01 2018-11-01 一种基于GStreamer框架的实时视频处理系统及方法 Pending CN109194698A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 青岛海信电器股份有限公司 播放器及播放控制方法、装置、电子设备及播放系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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