Gstreamer开发    

    一个完整的gstreamer命令会包含若干插件,以硬件编码命令为例:

    sudogst-launch v4l2src device=/dev/video3 framerate=30 ! video/x-raw-yuv,         width=1280height=720 framerate=30/1 ! queue ! ducatih264enc ! queue! filesinklocation=./cam1280.mp4

    它包含了v4l2src, video/x-raw-yuv, queue,ducatih264enc, filesink 这几个插件。它们在命令中以 ! 分割,带等号的表达式是插件的参数,比如device=/dev/video0 插件v4l2src的参数,表示从系统的/dev/video0获取图像数据。

       下面以v4l2src插件为例,说明如何获取该插件的源码:

Step1:查询插件属于哪个插件包

    Gstreamer的插件一般与其他插件一起组成一个插件包,插件包有gst-plugins-base,gst-plugins-good, gst-plugins-bad,gst-plugins-ugly等,使用如下命令查询插件属于哪个插件包。              

     media@ubuntu:~$  gst-inspect v4l2src

得到如下结果:

Gstreamer开发_ gstreamer

       可以看出v4l2src插件处于gst-plugins-good插件包

Step2:获取插件包的安装文件deb信息:

    media@ubuntu:~$  dpkg –l > dpkg.lst

     在dpkg.lst 查询关键字“plugins-good”, 将得到以下信息:

Gstreamer开发_omap_02

    可以deb文件文件为gstreamer0.10-plugins-good, 其版本信息0.10.31-1ubuntu1.2+ti1.6.7.1+1,

Step3:TI OMAP 官方网站下载源码

    TI 有一个发布OMAP ubuntu软件包的网站:

    http://ppa.launchpad.net/tiomap-dev/omap-trunk/ubuntu/

    其中gstreamer软件包位于地址:

    http://ppa.launchpad.net/tiomap-dev/omap-trunk/ubuntu/pool/main/g/

     我们可以在子目录gst-plugins-good0.10找到如下四个文件:

gstreamer0.10-plugins-good0.10.31-1ubuntu1.2+ti1.6.7.1+1 armhf.deb

gstreamer0.10-plugins-good0.10.31-1ubuntu1.2+ti1.6.7.1+1.debian.tar.gz

gst-plugins-good0.10 0.10.31.orig.tar.gz

gst-plugins-good0.100.10.31-1ubuntu1.2+ti1.6.7.1+1.dsc

     把这四个文件下载到PCubuntu系统的某个位置,假设为home目录,执行如下命令:

    pc@ubuntu:~$: dpkg-source-x gst-plugins-good0.10  0.10.31-1ubuntu1.2+ti1.6.7.1+1.dsc

     该命令将在当前目录下生成目录:gst-plugins-good0.10-0.10.31,该目录包含了插件包gst-plugins-good的源代码。

    用户可以参照上述方法获取其他插件的源代码,下个表格给出了几个编解码常用的插件所在的插件包的信息。为了方便用户,我们已将TI OMAP官方的gstreamer代码放置于光盘中。

 

插件名称

所属的插件包

Videoparse

Gst-plugins-bad

Ffmpegcolorspace

Gst-plugins-base

X264enc

Gst-plugins-ugly

Ducatih264enc

Gst-ducati

Step4:从源代码编译插件

       从源代码编译出插件是修改插件的必要条件。在很多情况下,我们要修改插件源代码,以适应流媒体的各种输入方式、处理流程以及输出方式。编译Gstreamer插件是在Pandaboard上进行的,是本地编译方式。下面以V4L2插件编译为例,说明从源代码编译插件的过程。

1. 进入到gst-plugins-good插件包源代码所在目录:

       media@ubuntu:~$:cd gst-plugins-good

执行configure

       media@ubuntu:~/gst-plugins-good$: ./configure–prefix=/usr

       configure命令用于生成gst-plugins-good所含插件的Makefile

Gstreamer开发_omap_03

3、编译v4l2插件

       media@ubuntu:~/gst-plugins-good$cd sys/v4l2

       media@ubuntu:~/gst-plugins-good/sys/v4l2$make

 

下图示意了编译过程:

Gstreamer开发_ gstreamer_04

4、安装插件

       media@ubuntu:~/gst-plugins-good/sys/v4l2$  sudo make intall

下图示意了安装过程,可以看出gst-plugins-good插件包安装于/usr/lib/gstreamer-0.10

 

Gstreamer开发_omap_05