gstreamer插件简介(1)--gstreamer框架

1. 简介
        GStreamer是一个开源的 多媒体框架库。利用它,可以构建一系列的媒体处理模块,包括从简单的ogg播放功能到复杂的音频(混音)和视频( 非线性编辑)的处理。
应用程序可以透明的利用 解码和 过滤技术。开发者可以使用简洁通用的接口来编写一个简单的 插件来添加新的解码器或 滤镜。目前,gstreamer已经可以应用在Linux、windows、macos、android、unix等多个平台上了,而且有全世界的开源工程师们在使用和维护。基于gstreamer的易用性,gstreamer得到了极大的推广。

2. 本文主讲内容
        本文主要讲述目前应用在常用的linux桌面系统上的gstreamer插件,gstreamer目前在桌面系统上提供0.10和1.0两个版本,本文讲解0.10版本和1.0。
       其中,0.10版本插件有以下几个:
        1) gstreamer-0.10,这个是基本框架,目前系统中都提供了gstreamer-1.0,而且0.10版本目前已经不再更新维护了,但是稳定可靠,包含pipeline、bin等最基础的pipeline。
        2) gstreamer-plugins-base-0.10,这个是基础插件库,包含用于编写元素的辅助库、基类、视频和音频解码器、编码器和过滤器,例如enc、mux和demux。
        3) gstreamer-plugins-bad-0.10,主要提供了一些测试组件。
        4) gstreamer-plugins-good-0.10,提供了常用组件,例如去隔行的deinterlace。
        5) gstreamer-plugins-ugly-0.10,最牛的是提供的x264编解码器。
        6) gstreamer-ffmpeg-0.10,基于ffmpeg提供的gstreamer支持库,非常的丰富,各种编解码器,混合器,最常用ffmpegcolorspace。

        1.0版本插件跟0.10版本插件基本一致,但是内部框架已经大大不同。0.10版本的gstreamer插件目前已经不再更新了,所以以后重心需要转移到gstreamer1.0上。

3. gstreamer常用命令和组件
        gstreamer提供几个最常用命令,gst-inspect、gst-launch
        1) gst-inspect:gstreamer组件探测命令,由于gstreamer是注册形式的,当新安装了gstreamer插件后,可以使用gst-inspect命令来探测新加入的pipeline。gst-inspect后面加上pipeline组件名,可以查看该组件详细信息,例如:gst-inspect filesink
        2) gst-launch:gstreamer管道建立命令,使用该命令可以组件若干个pipeline形成一条数据流,完成指定的工作。
        gstreamer常用的几个pipeline
        1) filesrc、filesink:文件组件,可以用于读取文件进行输入或输出。
        2) videotestsrc、ximagesink:测试视频输入,视频显示。
        3)appsrc、appsink:用于编程的app组件,可以通过app组件从外部取数据,或者导出数据给用户编辑。
        。。。。

4. 用到gstreamer插件的嵌入式板卡
       下面举例几个非常熟悉的平台。
        1) imx6全系,都提供了gst-fsl-plugins插件,给gstreamer来使用,并且0.10版本和1.0版本都提供,但是根据本人测试,0.10版本存在很多bug,还是用1.0版本较好。
        2) omap3xxx系列,提供gstreamer插件。
        3) ti8168系列,提供gstreamer插件。
        4) hantro g1,芯源编解码芯片,提供gstreamer插件,但是非官方的,本人维护一部分,国内下载不来。
        5) interl、nvidia显卡,支持gstreamer加速。

你可能感兴趣的:(嵌入式开发)