ubuntu下構建GStreamer開發環境

GStreamer 是 GNOME 桌面環境下用來構建流媒體應用的多媒體框架(framework),其目標是要簡化音/視頻應用程序的開發。GStreamer是一個開源的多媒體架構庫。利用它,可以構建一系列的媒體處理模塊,包括從簡單的ogg播放功能到複雜的音頻(混音)和視頻的處理。

一、安裝gstreamer

安裝gstreamer基礎庫

apt-get install libgstreamer0.10-dev gstreamer-tools gstreamer0.10-tools gstreamer0.10-doc                 //具體的安裝位置爲/user/share/doc/

apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse                                       //具體的安裝位置爲/user/share/doc/和/user/lib

安裝ffmpeg支持插件

apt-get install gstreamer0.10-ffmpeg                                                     //具體的安裝位置爲/user/share/doc/

 

二、編寫測試樣例

測試樣例:

#include<gst/gst.h>
int main (int    argc,char*argv[])
{
    
const gchar*
nano_str;
     guint major, minor, micro, nano;
     gst_init (
&argc,&
argv);
     gst_version (
&major,&minor,&micro,&
nano);
    
if (nano==1
)
         nano_str
="(CVS)"
;
    
else if (nano ==2
)
         nano_str
="(Prerelease)"
;
    
else

         nano_str
="";
     printf (
"This program is linked against GStreamer %d.%d.%d %s/n"
,
           major, minor, micro, nano_str);
    
return 0
;
}

 

編譯:

我看到有些文章寫的編譯指令是gcc-Wall $(pkg-config--cflags--libs gstreamer-0.10) hello.c-o hello,但是我使用這個指令就是編譯不過,提示錯誤是:Undefined reference to gst_init。因爲找得到頭文件,但是頭文件裏聲明的函數沒有定義,我以爲是庫找不到的問題,所以,試圖在系統環境變量中顯式的添加,但是沒有效果。我查了一下用指令

#pkg-config--cflags--libs gstreamer-0.10

可以查看gstreamer-0.10模塊相應的頭文件和包括的庫.確認包含了該包含的頭文件和庫文件。後來,我看了一些相關的文章,我試圖改了一下:

gcc-Wallhello.c-o hello $(pkg-config--cflags--libs gstreamer-0.10
就可以正常編譯了。

我到現在也不知道爲什麼,希望有高手看到了我的blog,幫我解答一下。先在此謝過啦!


運行:

。/hello

 

運行結果:

This program is linked against GStreamer  0.10.36

 

 三、gstreamer常用工具

1、gst-inspect-1.0         

       該工具可以用來查詢插件的參數

 

2、gst-launch-1.0

     該工具構建gstreamer的pipleline

 

3、gstreamer-properties

    在GNOME中,該工具可以列舉音頻輸出模塊。

 

四、gstreamer使用

1、gstreamer插件的參數查詢

      $ gst-inspect-1.0 fakesrc                                   //查詢element of fakesrc

      如果沒有這個元件,將會打印出"no such element or plugin"。

 

2、可以查看系統中有多少插件

     $ gst-inspect-1.0

 

3、以指定插件的方式處理多媒體文件

     gst-launch-1.0 filesrc location=thesong.mp3 ! mad ! pulsesink          //播放一個mp3文件

 

4、系統自動檢測安插正確的插件

     $gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin ! pulsesink
     $gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin ! videoconvert ! xvimagesink

     $gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin name=decoder

                decoder. ! videoconvert ! xvimagesink

                decoder. ! audioconvert ! pulsesink

     $gst-launch-1.0 playbin uri=file:///home/joe/my-random-media-file.mpeg

 


 

 

發佈了40 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章