Gstreamer開發

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

得到如下結果:

wKioL1OINbKBqcI7AAKrRuAkq7w551.jpg

       可以看出v4l2src插件處於gst-plugins-good插件包

Step2:獲取插件包的安裝文件deb信息:

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

     在dpkg.lst 查詢關鍵字“plugins-good”, 將得到以下信息:

wKiom1OINe3RKF1yAAErJmsosYg717.jpg

    可以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

wKiom1OINgDRUytBAAYa8vDNMNU196.jpg

3、編譯v4l2插件

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

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

 

下圖示意了編譯過程:

wKioL1OINeXjOSA3AAIQGQf56_M308.jpg

4、安裝插件

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

下圖示意了安裝過程,可以看出gst-plugins-good插件包安裝於/usr/lib/gstreamer-0.10

 

wKiom1OINiXSVoTZAALSh7Q0XSI570.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章