fbpx
维基百科

GStreamer

GStreamer 是一个基于管道多媒体框架,基于GObject,以C语言写成。

GStreamer
開發者GStreamer团队
首次发布2001年1月11日 (2001-01-11)[1]
目前版本
  • 1.22.2 (2023年4月11日;維護版本)[2]
源代码库
  • gitlab.freedesktop.org/gstreamer/gstreamer.git
编程语言C语言[3]
操作系统跨平台
类型多媒体框架
许可协议GNU宽通用公共许可证
网站gstreamer.freedesktop.org

凭借GStreamer,程序员可以很容易地创建各种多媒体功能组件,包括简单的音频回放,音频和视频播放,录音流媒体和音频编辑。基于流水线设计,可以创建诸如视频编辑器、流媒体广播和媒体播放器等等的很多多媒体应用。

發展歷史

1999年Erik Walthinsen建立了GStreamer,2001年1月11日發表了第一個主要版本是0.1。沒過多久,GStreamer出現了第一個商業版本,由RidgeRun公司發行,這是一家嵌入式Linux 公司。RidgeRun後來遇到了財務困難,工作人員大多離去,包括Walthinsen。 GStreamer的進展並未受影響。2001年7月發表了0.2.0的版本,2002年9月,發表了0.4.0,2004年3月又發表了0.8.0。

2004年,新公司Fluendo成立,並使用GStreamer編寫一個流媒體伺服器Flumotion, 並提供多媒體解決方案。2005年12月發表了0.10.0版本。日後GStreamer漸漸普及,2006年,Totem , Rhythmbox 和 Banshee等媒體巨頭都使用 GStreamer。

GStreamer日後在商業上取得巨大成功有許多不同的公司採用(諾基亞、摩托羅拉、德州儀器、 飛思卡爾、英特爾等等),並已成為一個非常強大的跨平台多媒體框架。

跨平台设计,使其能够在Linux(包括x86PowerPCARM架构),Solaris(Intel和SPARC)以及OpenSolarisFreeBSDOpenBSDNetBSDMac OS XMicrosoft Windows和OS/400上运行。GStreame也有针对其他语言的绑定PythonValaC++PerlGNU GuileRuby。GStreamer依据GNU宽通用公共许可证授权。[4]

技術概述

 

GStreamer的程序通過連接數字媒體處理的元素注入管道(pipeline)。每個元素是由一個插件提供 。 元素可组合為箱(bins),箱可以進一步聚合,從而形成架構圖。右圖是一個例子一個過濾器圖表 。

元素溝通是透過墊(pads)。來源墊(source pad)上一個元素可以被連接到一個接收墊(sink pad)在另一個。當管道是在播放狀態,數據緩衝流(data buffers flow)從來源墊(source pad)流向接收墊(sink pad)。

該圖可以體現出如何使用GStreamer播放MP3文件。該文件的源讀取 MP3文件從一台計算機的硬碟驅動程式,並將其發送到MP3解碼器。解碼器解碼該MP3數據,並轉換成PCM,然後傳遞到ALSA聲音驅動。ALSA的聲卡驅動程序發送 PCM聲音樣本,最後從電腦的揚聲器播放。

Plug-ins

GStreamer FFmpeg plug-in
開發者GStreamer Team
首次发布2004年2月26日 (2004-02-26)[5]
目前版本
  • 1.22.2 (2023年4月11日;維護版本)[2]
 
源代码库
  • gitlab.freedesktop.org/gstreamer/gstreamer.git
 
编程语言C
操作系统跨平台
系統平台GStreamer
类型多媒体框架插件
许可协议GNU通用公共许可证
网站gstreamer.freedesktop.org/modules/gst-ffmpeg.html

GStreamer採用基於插件(plugin)和管道(pipeline)的體系結構,框架中的所有的功能模塊都被實現成可以插拔的組件(component),能夠很方便地安裝到任意管道上。GStreamer使用插件架構並造就了大量的GStreamer的共享庫[7]GStreamer基本功能包括登錄與載入,新的組件可以透過基礎類別來取得這些屬性。Gstreamer的基礎類別之一是GObject。以Gobject的實作思想而言,可通过2個struct,一個相當于C++ 成員變數,一个相當C++中的成员函数。GStreamer框架中的大部分函數都會涉及到對GstElement對象的操作,GstElement又被區分成Source Element、Filter Element、Sink Element。写gstreamer element的时候,不能使用全局变量,要把这些变量全部放到该element的class中。

Plug-ins 如果有需要的話, 可以半自動的載入。GStreamer並沒有嚴格規定輸入端和輸出端的數目,事實上它們都可以是一個或者多個。所有的元件都從NULL狀態開始,依次經歷NULL、READY、PAUSED、PLAYING等狀態間的轉換。正處於播放狀態的管道能夠隨時切換到PAUSED狀態。

0.9版以後的插件可被區分成三種類 (來自電影黄金三镖客"The Good, the Bad and the Ugly"的名字)

插件集合的名稱 描述
Good 此一類的GStreamer插件來自於“優秀”"組,具有高品質的LGPL認證,[8]或依照GStreamer的 "contains a set of well-supported plug-ins under our preferred license"認證。[9]
Bad GStreamer所謂的“不良”插件是指未經 up-to-par 的處理。這類插件已經很接近高品質,但還缺乏一些認證事誼:程式碼審核、需要文件說明、大量測試、真正的維修人員,或大量的使用群[10]
Ugly GStreamer所謂的“醜惡”插件可能是品質良好,但是出現佈署(distribution)上的問題[11]

参阅

  1. ^ GStreamer "Slipstream" 0.1.0 released. [11 January 2001]. (原始内容存档于2013-07-21). 
  2. ^ 2.0 2.1 "GStreamer 1.22.2 stable bug fix release"; 作者姓名字符串: Tim-Philipp Müller; 作品或名稱的語言: 英語; 出版日期: 2023年4月11日; 检索日期: 2023年4月11日.
  3. ^ Ohloh Analysis Summary – GStreamer. Ohloh. [2010-07-22]. (原始内容于2014-06-26). 
  4. ^ . gstreamer.freedesktop.org. [22 July 2010]. (原始内容存档于2014-06-15). 
  5. ^ GStreamer: news. [2011-06-17]. (原始内容于2012-10-05). 
  6. ^ Release notes for GStreamer FFmpeg Plug-ins 0.10.11. [3 November 2010]. (原始内容于2020-09-16). 
  7. ^ GStreamer – Overview of the modules. [6 November 2010]. (原始内容于2020-09-17). 
  8. ^ gstreamer0.10-plugins-good package description (Ubuntu 10.04)
  9. ^ Release notes for GStreamer Base Plug-ins 0.10.0. [3 November 2010]. (原始内容于2020-09-16). 
  10. ^ gstreamer0.10-plugins-bad package description (Ubuntu 10.04)
  11. ^ gstreamer0.10-plugins-ugly package description (Ubuntu 10.04)

另见

外部链接

gstreamer, 是一个基于管道的多媒体框架, 基于gobject, 以c语言写成, 開發者团队首次发布2001年1月11日, 2001, 目前版本1, 2023年4月11日, 維護版本, 源代码库gitlab, freedesktop, gstreamer, gstreamer, git编程语言c语言, 操作系统跨平台类型多媒体框架许可协议gnu宽通用公共许可证网站gstreamer, freedesktop, org凭借, 程序员可以很容易地创建各种多媒体功能组件, 包括简单的音频回放, 音频和视频播放, . GStreamer 是一个基于管道的多媒体框架 基于GObject 以C语言写成 GStreamer開發者GStreamer团队首次发布2001年1月11日 2001 01 11 1 目前版本1 22 2 2023年4月11日 維護版本 2 源代码库gitlab wbr freedesktop wbr org wbr gstreamer wbr gstreamer wbr git编程语言C语言 3 操作系统跨平台类型多媒体框架许可协议GNU宽通用公共许可证网站gstreamer freedesktop org凭借GStreamer 程序员可以很容易地创建各种多媒体功能组件 包括简单的音频回放 音频和视频播放 录音 流媒体和音频编辑 基于流水线设计 可以创建诸如视频编辑器 流媒体广播和媒体播放器等等的很多多媒体应用 目录 1 發展歷史 2 技術概述 2 1 Plug ins 3 参阅 4 另见 5 外部链接發展歷史 编辑1999年Erik Walthinsen建立了GStreamer 2001年1月11日發表了第一個主要版本是0 1 沒過多久 GStreamer出現了第一個商業版本 由RidgeRun公司發行 這是一家嵌入式Linux 公司 RidgeRun後來遇到了財務困難 工作人員大多離去 包括Walthinsen GStreamer的進展並未受影響 2001年7月發表了0 2 0的版本 2002年9月 發表了0 4 0 2004年3月又發表了0 8 0 2004年 新公司Fluendo成立 並使用GStreamer編寫一個流媒體伺服器Flumotion 並提供多媒體解決方案 2005年12月發表了0 10 0版本 日後GStreamer漸漸普及 2006年 Totem Rhythmbox 和 Banshee等媒體巨頭都使用 GStreamer GStreamer日後在商業上取得巨大成功有許多不同的公司採用 諾基亞 摩托羅拉 德州儀器 飛思卡爾 英特爾等等 並已成為一個非常強大的跨平台多媒體框架 其跨平台设计 使其能够在Linux 包括x86 PowerPC和ARM架构 Solaris Intel和SPARC 以及OpenSolaris FreeBSD OpenBSD NetBSD Mac OS X Microsoft Windows和OS 400上运行 GStreame也有针对其他语言的绑定如Python Vala C Perl GNU Guile和Ruby GStreamer依据GNU宽通用公共许可证授权 4 技術概述 编辑 GStreamer的程序通過連接數字媒體處理的元素注入管道 pipeline 每個元素是由一個插件提供 元素可组合為箱 bins 箱可以進一步聚合 從而形成架構圖 右圖是一個例子一個過濾器圖表 元素溝通是透過墊 pads 來源墊 source pad 上一個元素可以被連接到一個接收墊 sink pad 在另一個 當管道是在播放狀態 數據緩衝流 data buffers flow 從來源墊 source pad 流向接收墊 sink pad 該圖可以體現出如何使用GStreamer播放MP3文件 該文件的源讀取 MP3文件從一台計算機的硬碟驅動程式 並將其發送到MP3解碼器 解碼器解碼該MP3數據 並轉換成PCM 然後傳遞到ALSA聲音驅動 ALSA的聲卡驅動程序發送 PCM聲音樣本 最後從電腦的揚聲器播放 Plug ins 编辑 GStreamer FFmpeg plug in開發者GStreamer Team首次发布2004年2月26日 2004 02 26 5 目前版本1 22 2 2023年4月11日 維護版本 2 源代码库gitlab wbr freedesktop wbr org wbr gstreamer wbr gstreamer wbr git 编程语言C操作系统跨平台系統平台GStreamer类型多媒体框架插件许可协议GNU通用公共许可证网站gstreamer freedesktop org modules gst ffmpeg htmlGStreamer採用基於插件 plugin 和管道 pipeline 的體系結構 框架中的所有的功能模塊都被實現成可以插拔的組件 component 能夠很方便地安裝到任意管道上 GStreamer使用插件架構並造就了大量的GStreamer的共享庫 7 GStreamer基本功能包括登錄與載入 新的組件可以透過基礎類別來取得這些屬性 Gstreamer的基礎類別之一是GObject 以Gobject的實作思想而言 可通过2個struct 一個相當于C 成員變數 一个相當C 中的成员函数 GStreamer框架中的大部分函數都會涉及到對GstElement對象的操作 GstElement又被區分成Source Element Filter Element Sink Element 写gstreamer element的时候 不能使用全局变量 要把这些变量全部放到该element的class中 Plug ins 如果有需要的話 可以半自動的載入 GStreamer並沒有嚴格規定輸入端和輸出端的數目 事實上它們都可以是一個或者多個 所有的元件都從NULL狀態開始 依次經歷NULL READY PAUSED PLAYING等狀態間的轉換 正處於播放狀態的管道能夠隨時切換到PAUSED狀態 0 9版以後的插件可被區分成三種類 來自電影黄金三镖客 The Good the Bad and the Ugly 的名字 插件集合的名稱 描述Good 此一類的GStreamer插件來自於 優秀 組 具有高品質的LGPL認證 8 或依照GStreamer的 contains a set of well supported plug ins under our preferred license 認證 9 Bad GStreamer所謂的 不良 插件是指未經 up to par 的處理 這類插件已經很接近高品質 但還缺乏一些認證事誼 程式碼審核 需要文件說明 大量測試 真正的維修人員 或大量的使用群 10 Ugly GStreamer所謂的 醜惡 插件可能是品質良好 但是出現佈署 distribution 上的問題 11 参阅 编辑 GStreamer Slipstream 0 1 0 released 11 January 2001 原始内容存档于2013 07 21 请检查 access date 中的日期值 帮助 2 0 2 1 GStreamer 1 22 2 stable bug fix release 作者姓名字符串 Tim Philipp Muller 作品或名稱的語言 英語 出版日期 2023年4月11日 检索日期 2023年4月11日 Ohloh Analysis Summary GStreamer Ohloh 2010 07 22 原始内容存档于2014 06 26 Licensing your applications and plugins for use with GStreamer gstreamer freedesktop org 22 July 2010 原始内容存档于2014 06 15 GStreamer news 2011 06 17 原始内容存档于2012 10 05 Release notes for GStreamer FFmpeg Plug ins 0 10 11 3 November 2010 原始内容存档于2020 09 16 GStreamer Overview of the modules 6 November 2010 原始内容存档于2020 09 17 gstreamer0 10 plugins good package description Ubuntu 10 04 Release notes for GStreamer Base Plug ins 0 10 0 3 November 2010 原始内容存档于2020 09 16 gstreamer0 10 plugins bad package description Ubuntu 10 04 gstreamer0 10 plugins ugly package description Ubuntu 10 04 另见 编辑Phonon VLC Xine MPlayer外部链接 编辑GStreamer主页 页面存档备份 存于互联网档案馆 GStreamer介绍 页面存档备份 存于互联网档案馆 英文 GStreamer 页面存档备份 存于互联网档案馆 在Ohloh网站 gstreamer 永久失效連結 在freenode的讨论组 GStreamer 页面存档备份 存于互联网档案馆 的FFmpeg插件网站 Windows 二进制安装包 页面存档备份 存于互联网档案馆 Mac OS X 二进制安装包 取自 https zh wikipedia org w index php title GStreamer amp oldid 74063227, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。