gstreamer应用笔记】的更多相关文章

gstreamer官网 https://gstreamer.freedesktop.org/ 应用手册 https://gstreamer.freedesktop.org/documentation/index.html 一.getreamer安装(ubuntu) gstreamer0.10和gstreamer1.0两个版本容易混淆 sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get i…
1)概述 管道的数据流由一组缓冲区和事件组成,缓冲区包括实际的管道数据,事件包括控制信息,如寻找信息和流的终止信号.所有这些数据流在运行的时候自动的流过管道. 2) 缓冲区(Buffers) 缓冲区包含了你创建的管道里的数据流.通常一个source element会创建一个新的缓冲区,同时element还将会把缓冲区的数据传递给下一个element.当使用GStreamer底层构造来创建一个媒体管道的时候,你不需要自己来处理缓冲区,element将会为你处理这些缓冲区. 一个缓冲区主要由以下一个…
一:概述 如我们在Elements一章中看到的那样,Pads是element对外的接口.数据流从一个element的source pad到另一个element的sink pad.pads的功能(capabilities)决定了一个element所能处理的媒体类型. 一个pad的类型由2个特性决定:它的数据导向(direction)以及它的时效性(availability).正如我们先前提到 的,Gstreamer定义了2种pads的数据导向:source pad以及sink pad.pads的数…
1)概述 BUS(总线) 是一个简单的系统,它采用自己的线程机制将一个管道线程的消息分发到一个应用程序当中.总线的优势是:当使用GStreamer的时候,应用程序不需要线程识别,即便GStreamer已经被加载了多个线程. 每一个管道默认包含一个总线,所以应用程序不需要再创建总线.应用程序只需要在总线上设置一个类似于对象的信号处理器的消息处理器.当主循环运行的时候,总线将会轮询这个消息处理器是否有新的消息,当消息被采集到后,总线将呼叫相应的回调函数来完成任务. 2)如何使用一个总线(Bus) 使…
1)概述 Bins是一种容器element.你可以往Bins中添加element.由于Bins本身也是一种element,所以你可以像普通element一样 操作Bins.因此,先前关element的内容同样可以应用于Bins. Bins允许你将一组有链接的element组合成一个大的逻辑element.你不再需要对单个element进行操作,而仅仅操作Bins.当你在构建一个复杂的管道时,你会发现Bins的巨大优势,因为它允许你将复杂的管道分解成一些小块. Bins同样可以对包含在其中的ele…
在前面的部分,我们简要介绍过 GstElementFactory 可以用来创建一个element的实例,但是GstElementFactory不仅仅只能做这件事,GstElementFactory作为在 GStreamer 注册系统中的一个基本类型,它可以描述所有的插件(plugins)以及由GStreamer创建的element.这意味着GstElementFactory可以应用于一些自动element实例, 像自动插件(autopluggers); 或者创建一个可用element列表,像管道…
对程序员来说,GStreamer 中最重要的一个概念就是 GstElement 对象.该对象是构建一个媒体管道的基本块.所有上层(high-level)部件都源自GstElement对象.任何一个解码器编码器.分离器.视频/音频输出部件实际上都是一个 GstElement对象. 对程序员来说,element就像一个黑盒子.你element的一端输入数据,element对数据进行一些处理,然后数据从element的另一端输出.拿一个解码element来说,你输入一 些有特定编码的数据,elemen…
GStreamer 是一个非常强大而且通用的流媒体应用程序框架. GStreamer所具备的很多优点来源于其框架的模块化: GStreamer能够无缝的合并新的插件. 但是, 由于追求模块化和高效率, 使得GStreamer在整个框架上变的复杂, 也同时因为复杂度的提高, 使得开发一个新的应用程序显得不是那么的简单. 由于工作需求,因此笔者开启了gstreamer构建音频播放器之路! 首先openwrt下面make menuconfig 要选择gstreamer必要的插件库,由于openwrt下…
Gstreamer学习笔记----Gstreamer架构设计思想 http://blog.csdn.net/tx3344/article/details/7497434 Gstreamer到底是个啥? GStreamer 是一个 基于pipeline的多媒体框架,基于GObject,以C语言写成. 应用GStreamer这个这个多媒体框架,你可以写出任意一种流媒体的应用来如:meidaplayer.音视频编辑器.VOIP.流媒体服务器.音视频编码等等. pipeline是啥? pipeline是…
第3章. 基础概念介绍 本章将介绍GStreamer的基本概念. 理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念. 3.1. 元件(Elements) 元件(element)是GStreamer中最重要的概念. 你可以通过创建一系列的元件(Elements),并把它们连接起来,从而让数据流在这个被连接的各个元件(Elements)之间传输. 每个元件(Elements)都有一个特殊的函数接口,对于有些元件(Elements)的函数接口它们是用于能够读取…