GStreamer跨平臺多媒體框架

wujianming_110117發表於2020-12-29

GStreamer跨平臺多媒體框架
Gstreamer基本概念
GStreamer是用於構造媒體處理元件圖的庫。它支援的應用程式範圍從簡單的Ogg / Vorbis回放,音訊/視訊流到複雜的音訊(混合)和視訊(非線性編輯)處理。
應用程式可以透明地利用編解碼器和過濾器技術的優勢。可以通過編寫帶有通用介面的簡單外掛來新增新的編解碼器和過濾器。
• 播放DVB流時的MPEG-TS時間戳迴歸
• 合成器:某些輸入縮放/轉換情況下的偽影,並確保實際支援輸出格式,以及重新協商
• 通過giosrc改進decodebin / playbin中的sftp:// URI播放
• 自適應demux / dashdemux / hlsdemux
• rtsp伺服器
• android媒體:編碼AVC
• 各種單元測試
• 錯誤和記憶體洩漏改進
• 各種穩定性,效能和可靠性方面的改進
• gi註釋改進
• 構建編譯

多平臺
GStreamer可在所有主要作業系統上執行,例如Linux,Android,Windows,Max OS X,iOS,以及大多數BSD,商業Unix,Solaris和Symbian。它已被移植到各種作業系統,處理器和編譯器。它可以在32位和64位以及Little Endian或Big Endian的所有主要硬體體系結構上執行,包括x86,ARM,MIPS,SPARC和PowerPC。
GStreamer可以橋接到其他多媒體框架,以便重用現有元件(例如編解碼器)並使用平臺輸入/輸出機制:
• Linux / Unix:OpenMAX-IL(通過gst-omx)
• Windows:DirectShow
• Mac OS X:QuickTime
綜合核心庫
• 基於圖的結構允許任意管道構建
• 基於 GLib 2.0物件模型的物件導向設計和繼承
• 小於500KB的緊湊型核心庫,大約65K行程式碼
• 多執行緒管道構造
• 面向外掛和應用程式,簡單且穩定的 API
• 極輕量的資料傳遞意味著非常高的效能/低延遲
• 面向核心和外掛/應用開發完整 除錯系統
• 時鐘以確保全域性流間同步(A / V同步)
• 服務質量(qos),以確保在高CPU負載下可能的最佳質量
智慧外掛架構
• 動態載入的 外掛提供了元素和媒體型別,這些元素和媒體型別是通過登錄檔快取按需載入的,類似於ld.so.cache
• 元素介面 處理所有已知型別的源,過濾器和接收器
• 功能系統 允許使用MIME型別和特定於媒體的屬性來驗證元素相容性
• 自動插入使用功能系統自動完成複雜路徑
• 通過將管道轉儲到.dot檔案並從中建立PNG影像,可以使其視覺化
• 資源友好的外掛不會浪費記憶體
多媒體技術的廣泛覆蓋
可以通過新外掛擴充套件GStreamers功能。下面列出的功能只是一個粗略的概述,可以使用GStreamers自己的外掛獲得,不包括任何第三方提供的功能。
• 容器格式:asf,avi,3gp / mp4 / mov,flv,mpeg-ps / ts,mkv / webm,mxf,ogg
• 流式傳輸:http,mms,rtsp
• 編解碼器:FFmpeg,各種編解碼器庫,第三方編解碼器包
• 後設資料:原生容器格式,它們之間具有通用對映
• 視訊:各種色彩空間,支援逐行和隔行視訊
• 音訊:各種位深度和多通道配置中的整數和浮點音訊
廣泛的開發工具
• gst-launch命令列工具,用於快速進行原型製作和測試,類似於ecasound
• 很多 文件,包括部分完成的 手冊和 外掛編寫者指南
• 每個模組中都有大量的測試程式和示例程式碼可供選擇
• 使用各種程式語言訪問GStreamer API

相關文章