什么是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以进行解码和编码的插件
- 其他一些包
人工智能芯片与自动驾驶