美文网首页流媒体
【转】Gstreamer基础知识介绍

【转】Gstreamer基础知识介绍

作者: 爱玩保龄球 | 来源:发表于2020-03-30 16:38 被阅读0次

    由于deepstream是基于gstreamer的,所以要想在deepstream上做拓展,需要对gstreamer有一定的认识。以下主要介绍Gstreamer整体框架和Gstreamer基础概念。

    一、Gstreamer整体框架
    gstreamer是一个用于开发流式多媒体应用的开源框架。本身这个框架是为了更好的处理音视频而设计开发的,但gstreamer不限于处理音视频,只要是有明显的数据流特征的应用,gstreamer都能很好的应用。

    gstreamer的整体功能核心是pipeline框架以及用于扩展功能的插件:

    1、pipeline用于安排数据流图,明确数据流处理过程。通过gstreamer多媒体数据协商机制和同步机制,pipeline能够很好的地处理流式数据。

    2、插件用于扩展功能,开发者可以灵活利用已有插件,而且还可以自定义特定功能插件。

    20180807172514578.png

    二、Gstreamer基础概念
    Gstreamer的基础概念有如下四个,了解这四个概念是我们将Gstreamer玩起来的前提

    1、Elements

    Elements是一个pipeline中的基本组成功能实体,通过将不同功能的elements连起来,就可以实现一个数据流处理功能。如图所示,通过将source filer sink三种element连起来,可以实现对pipeline中传输数据格式的过滤。

    element主要有三种:

    (1) source element,主要是作为一个pipeline中的source节点,是数据源。source element只有src pad,即只有输出口。


    image.png

    (2) sink element ,作为pipline的end节点 。sink element 只有sink pad,即只有输入口。

    image.png

    (3) common element,作为pipline中的中间数据处理单元,既有sink pad,也有src pad,通常有:Filters, convertors, demuxers, muxers and codecs等


    image.png

    2、pad

    pad是element的输入和输出,作为协商链接和数据传输用,链接只能是两个pad之间的,每个Pad都可以限定支持的数据格式。当两个不同Pad之间的格式匹配,两个Pad就可以进行链接,并传输数据。

    3、bin和Pipeline

    bin是element的一个集合,bin中的element理应互联,从而使bin也能提供某种功能,由于bin是element的子类,所以所有的element的操作,bin几乎都继承了。

    pipeline是一个完整的流式数据处理流程,可以看成一个顶级的bin。pipeline如下图所示

    image.png

    4、通信

    Gstreamer为应用提供了几种通信机制:

    (1)buffer 用于element之间数据传递,buffer中包含的是媒体数据,buffer的传输方向永远是从src pad 到sink pad的,即向下传输。

    (2) event element之间或者application到element的信息传输,包含的是控制数据。event既可以向下也可以向上传输。

    (3)message 由element向application传输,用于传输 errors,tags,state changes, buffering state, redirects等信息。

    (4)queries 通常由application向pipeline发送,用于请求一些持续时间和播放点等信息。queries的应答是同步的。element也可以使用queries来向相邻element请求相应的信息

    image.png

    这边只做简单的介绍,详细的可以查阅Gstreamer 官方用户手册

    https://gstreamer.freedesktop.org/documentation/index.html
    

    ————————————————
    原文来自:

    版权声明:本文为CSDN博主「代码不好读啊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u011337602/article/details/81485246

    相关文章

      网友评论

        本文标题:【转】Gstreamer基础知识介绍

        本文链接:https://www.haomeiwen.com/subject/iavvuhtx.html