什么是GStreamer?

什么是GStreamer?

GStreamer是用于创建流媒体应用程序的框架。基本设计来自俄勒冈大学研究生院的视频管道以及DirectShow的一些想法。

GStreamer的开发框架使编写任何类型的流多媒体应用程序成为可能。GStreamer框架旨在简化编写处理音频或视频或两者的应用程序的过程。它不仅限于音频和视频,而且可以处理任何类型的数据流。流水线设计的开销要比应用的滤波器引起的开销小。这使GStreamer成为设计甚至对延迟有高要求的高端音频应用程序的良好框架。

GStreamer最明显的用途之一就是使用它来构建媒体播放器。GStreamer已经包括用于构建媒体播放器的组件,该媒体播放器可以支持多种格式,包括MP3,Ogg / Vorbis,MPEG-1 / 2,AVI,Quicktime,mod等。但是,GStreamer不仅仅是另一个媒体播放器。它的主要优点是可以将可插拔组件混合并匹配到任意管道中,从而可以编写完整的视频或音频编辑应用程序。

该框架基于将提供各种编解码器和其他功能的插件。插件可以链接并安排在管道中。该管道定义了数据流。管道也可以使用GUI编辑器进行编辑,并另存为XML,这样就可以以最小的努力来制作管道库。

GStreamer的核心功能是为插件,数据流和媒体类型处理/协商提供框架。它还提供了使用各种插件编写应用程序的API。

具体来说,GStreamer提供

  • 多媒体应用程序的API
  • 插件架构
  • 管道架构
  • 媒体类型处理/协商的机制
  • 同步机制
  • 超过250个插件提供了1000多个元素
  • 一套工具

GStreamer插件可以分为

  • 协议处理
  • 来源:用于音频和视频(涉及协议插件)
  • 格式:解析器,格式化程序,多路复用器,多路分解器,元数据,字幕
  • 编解码器:编码器和解码器
  • 滤镜:转换器,混音器,效果器,...
  • 接收器:用于音频和视频(涉及协议插件)

 

GStreamer打包成

  • gstreamer:核心软件包
  • gst-plugins-base:基本的示例性元素集
  • gst-plugins-good:LGPL下的一组高质量插件
  • gst-plugins-ugly:一组高质量的插件,可能会带来发行问题
  • gst-plugins-bad:一组需要更高质量的插件
  • gst-libav:一组包装libav以进行解码和编码的插件
  • 其他一些包

 

posted @ 2020-12-29 06:38  吴建明wujianming  阅读(1175)  评论(0编辑  收藏  举报