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
得到如下结果:
可以看出v4l2src插件处于gst-plugins-good插件包
Step2:获取插件包的安装文件deb信息:
media@ubuntu:~$ dpkg �Cl > dpkg.lst
在dpkg.lst 查询关键字“plugins-good”, 将得到以下信息:
可以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
2 执行configure
media@ubuntu:~/gst-plugins-good$: ./configure�Cprefix=/usr
configure命令用于生成gst-plugins-good所含插件的Makefile。
3、编译v4l2插件
media@ubuntu:~/gst-plugins-good$cd sys/v4l2
media@ubuntu:~/gst-plugins-good/sys/v4l2$make
下图示意了编译过程:
4、安装插件
media@ubuntu:~/gst-plugins-good/sys/v4l2$ sudo make intall
下图示意了安装过程,可以看出gst-plugins-good插件包安装于/usr/lib/gstreamer-0.10