摘要: 摘要 在上一篇文章中,我们介绍了如何将多个element连接起来构造一个pipline,进行数据传输。那么GStreamer是通过何种方式保证element之间能正常的进行数据传输?今天就将介绍GStreamer是如何利用Pad来控制数据的传输。 Pad 我们知道,pad是element之间的数据的 阅读全文
posted @ 2019-07-01 12:54 John.Leng 阅读(16196) 评论(2) 推荐(5) 编辑
摘要: 摘要 在 Gstreamer基础教程01 - Hello World中,我们介绍了如何快速的通过一个字符串创建一个简单的pipeline。为了能够更好的控制pipline中的element,我们需要单独创建element,然后再构造pipeline,下面将介绍GStreamer的一些基本概念并展示p 阅读全文
posted @ 2019-06-17 15:23 John.Leng 阅读(14731) 评论(0) 推荐(6) 编辑
摘要: 摘要 在面对一个新的软件库时,第一步通常实现一个“hello world”程序,来了解库的用法。对于GStreamer,我们可以实现一个极简的播放器,来了解GStreamer的使用。 环境配置 为了快速掌握Gstreamer相关的知识,我们优先选择Ubuntu作为我们的开发环境,其他平台的开发会在后 阅读全文
posted @ 2019-06-12 11:04 John.Leng 阅读(22378) 评论(1) 推荐(4) 编辑
摘要: 什么是Gstreamer? Gstreamer是一个支持Windows,Linux,Android, iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(pl 阅读全文
posted @ 2019-05-30 12:07 John.Leng 阅读(60550) 评论(16) 推荐(10) 编辑
摘要: 安装 Meson是基于python3实现,至少需要python3.5才能运行,默认采用ninja作为后端。在Ubuntu下最简单的是通过pip3安装 也可以只将meson安装到当前用户目录下 这种方式会将meson安装到~/.local/bin目录下,因此需要将这个目录增加到PATH中。 在较老的系 阅读全文
posted @ 2019-04-30 14:50 John.Leng 阅读(20127) 评论(0) 推荐(0) 编辑
摘要: 最近在分析Gstreamer的代码时,发现GstPipeline中有如下代码: 但搜索当前文件并没有发现有对parent_class变量的定义,查询后发现这是GObject在相应宏展开时所定义的一个静态变量,当使用G_DEFINE_TYPE宏定义一个GObject对象时,宏会自动展开生成相应的代码, 阅读全文
posted @ 2019-04-25 11:10 John.Leng 阅读(1701) 评论(0) 推荐(0) 编辑