close

 

Gstreamer是一個多媒體開發的平台,主要的目的當然是方便開發者開發多媒體的應用程式

 

結構上以pipeline為基礎,在pipeline裡面將每個行為都定義為element,透過這些element 去處理多媒體資料

 

當然也提供plugin 文件讓開發者根據自己的需求寫成plugin

gstreamer-overview  

 

下面的這一張圖為gstrmeaer的pipeline

GStreamer pipeline for a simple ogg player

從圖中可以知道

file-source->ogg-demuxer->vorbis-decoder->audio-sink

                                      ->theroa-decoder->video-sink

這裡的每個框都是一個element, pipeline是由眾多的element組合而成

每個element都會有接口,在這裡我們稱為sink跟src, sink代表著接收,src代表著發送

由圖中可以看出,像管線般一樣資料從file-source讀取,在經過ogg-demuxer分流給vorbis-decoder跟theroa-decoder作為audio跟video的解碼,再透過audio跟video的輸出裝置顯現.

提到Pad每個sink跟src都存在著pad,我們可以把他想成是參數,因數,或是屬性

以filesrc的Pad來說

 

Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
ANY

代表它可以發送的format是沒有限定的

以Oggdemuxer的pad來說

 

Pad Templates:
SINK template: 'sink'
Availability: Always
Capabilities:
application/ogg
application/x-annodex

 

SRC template: 'src_%d'
Availability: Sometimes
Capabilities:
ANY

 

代表它可以接收來自前面為application/ogg或者application/x-annodex的資料流

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 stephenwei 的頭像
    stephenwei

    stephenwei的部落格

    stephenwei 發表在 痞客邦 留言(0) 人氣()