1. 程式人生 > >gstreamer外掛簡介(1)--gstreamer框架

gstreamer外掛簡介(1)--gstreamer框架

應用程式可以透明的利用解碼過濾技術。開發者可以使用簡潔通用的介面來編寫一個簡單的外掛來新增新的解碼器或濾鏡。目前,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加速。