一、bin,這些bin在內部包含了element,但是在外部還是把它看做一個element。
1、playbin:它會處理播放器從source經過解複用、解碼到顯示的過程,同時它也非常靈活,有很多的設置項。
2、uridecodebin:從一個uri獲取數據,然後解碼成原始數據。
二、文件輸入和輸出
1、filesrc:讀取一個本地文件然後用caps輸出媒體數據
2、filesink:這個element把所有收到的媒體數據存成文件,用location來指定文件名
gst-launch-1.0 audiotestsrc ! vorbisenc ! oggmux ! filesink location=test.ogg
三、network
1、souphttpsrc:這個element作爲客戶端,使用soup庫經由http來接受數據
C:\Users\lenovo>gst-launch-1.0 souphttpsrc location=http://192.168.31.254/vod/ts/E6FBEADEEFA1F64C30DA5AE2FA98CF89.ts ! decodebin ! autovideosink
四、測試element,這些element在測試pipeline是否工作時非常有用,可以取代數據源。
1、videotestsrc:生成固定的video輸出,用於測試視頻pipeline
gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink
2、audiotestsrc:生成固定的audio信號,用於測試音頻pipeline
gst-launch-1.0 audiotestsrc ! audioconvert ! autoaudiosink
五、視頻適配
1、videoconvert:會把一個色彩空間轉換爲另一個比如RGB轉換爲YUV,也可以轉換不同的RGB和不同的YUV。
2、videorate:
這個element接受帶時間戳的視頻數據轉換成匹配source pad幀率的流。通過丟棄或者複製幀來執行改正,而不是通過古怪的算法。
這個在連接不同幀率的element時很有用。正如其他的適配插件,如果不需要的話會直通過去(上下游element能匹配上)。
如果實際幀率未知的情況下,爲了以防萬一,使用這個element是個不錯的主意。
gst-launch-1.0 videotestsrc ! video/x-raw,framerate=30/1 ! videorate ! video/x-raw,framerate=1/1 ! videoconvert ! autovideosink
3、videoscale:
這個element可以修改視頻幀的尺寸。這個element會先檢查不修改視頻尺寸是否可行,如果可行,就不在進行尺寸的轉換。所以在pipeline中加入這個element是安全的,可以提高魯棒性。
六、音頻適配
1、audioconvert:轉換原始不同音頻格式之間的緩衝,支持浮點數/整數以及聲道轉換。
2、audiorasample:可以解決採樣率問題。
3、audiorate:這個element接受帶時間戳的音頻幀,然後通過增加或者降低採樣來獲得一個標準流。它不能修改採樣率,只能通過移除重疊部分和填充空白部分來獲得連續“乾淨”的輸出。
七、多線程
1、queue:
一個queue執行兩個任務:
(1)把數據放到隊列裏,知道滿爲止,此時任何想要推送數據的線程將會被阻塞直到有新的空間。
(2)給source pad創建一個新的線程,這樣就能分離對sink和source pads的處理。
在queue滿或者空的時候會出發信號,可以丟棄一些緩衝數據,必滿阻塞
2、queue2:queue2不是queue的進化版,他們有着同樣的設計目標,只是實現方法不一樣。
當涉及到網絡緩衝的時候,使用queue2而不是queue
3、multiqueue:這個element可以對多個流同時提供queue,並且簡化對流的管理。此外,它可以同步不同的流,確保任何一個流都不會運行的特別快。 這是一個先進的element。decodebin2裏面包含着這個element,你在一個通常的播放應用裏面很少會直接使用。
4、tee:把數據分成多份,比如可以同時在屏幕上播放圖像並且把文件保存到本地。
八、capabilities
1、capsfilter:實現caps過濾,這個element不會修改數據,但會修改數據的類型。
2、typefind:這個element包含了流的類型。
九、debugging
1、fakesink:這個sink element僅僅簡單的拋棄所有輸入的數據。
2、identify: 這是一個啞巴element僅僅把輸入數據不加修改的傳過來。它也有一些有用的調試函數,例如偏移量和時間戳檢測,或者丟棄緩衝。