GStreamer跨平台多媒体框架
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
總結
以上是生活随笔為你收集整理的GStreamer跨平台多媒体框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CUDA Pro:通过向量化内存访问提高
- 下一篇: gst-crypto GStreamer