摘要:摘要 在常见的媒体播放器中,通常可以看到快进,快退,慢放等功能,这部分功能被称为“特技模式(Trick Mode)”,这些模式有个共同点:都通过修改播放的速率来达到相应的目的。 本文将介绍如何通过GStreamer去实现快进,快退,慢放以及单帧播放。 GStreamer Seek与Step事件 快进 阅读全文
posted @ 2019-08-23 18:06 John.Leng 阅读 (114) 评论 (0) 编辑
摘要:摘要 在常见的媒体文件中,通常包含一些数据(例如:歌手,专辑,编码类型等),用于描述媒体文件。通常称这些数据为元数据(Metadata:data that provides information about other data)。TT快三TT快三我 们 可以通过这些元数据对媒体进行归类,同时可以在播放的过程中通过界 阅读全文
posted @ 2019-07-31 16:49 John.Leng 阅读 (111) 评论 (0) 编辑
摘要:TT快三简介 在多媒体应用中,TT快三TT快三我 们 通常需要查询媒体文件的总时间、当前播放位置,以及跳转到指定的时间点。GStreamer提供了相应的接口来实现此功能,在本文中,TT快三TT快三我 们 将通过示例了解如何查询时间信息,以及如何进行跳转到指定位置。 GStreamer查询机制 GStreamer提供了GstQuery的查询机制,用 阅读全文
posted @ 2019-07-24 17:45 John.Leng 阅读 (185) 评论 (0) 编辑
摘要:摘要 在以前的文章中,TT快三TT快三我 们 了解到了2种播放文件的方式:一种是在知道了文件的类型及编码方式后,手动创建所需Element并构造Pipeline;另一种是直接使用playbin,由playbin内部动态创建所需Element并连接Pipeline。很明显使用playbin的方式更加灵活,TT快三TT快三我 们 不需要在一开 阅读全文
posted @ 2019-07-16 13:06 John.Leng 阅读 (213) 评论 (0) 编辑
摘要:摘要 在上一篇文章中,TT快三TT快三我 们 介绍了如何将多个element连接起来构造一个pipline,进行数据传输。那么GStreamer是通过何种方式保证element之间能正常的进行数据传输?今天就将介绍GStreamer是如何利用Pad来控制数据的传输。 Pad TT快三TT快三我 们 知道,pad是element之间的数据的 阅读全文
posted @ 2019-07-01 12:54 John.Leng 阅读 (197) 评论 (0) 编辑
摘要:摘要 在 Gstreamer基础教程01 - Hello World中,TT快三TT快三我 们 介绍了如何快速的通过一个字符串创建一个简单的pipeline。为了能够更好的控制pipline中的element,TT快三TT快三我 们 需要单独创建element,然后再构造pipeline,下面将介绍GStreamer的一些基本概念并展示p 阅读全文
posted @ 2019-06-17 15:23 John.Leng 阅读 (323) 评论 (0) 编辑
摘要:摘要 在面对一个新的TT快三软件 库时,第一步通常实现一个“hello world”程序,来了解库的用法。对于GStreamer,TT快三TT快三我 们 可以实现一个极简的播放器,来了解GStreamer的使用。 环境配置 为了快速掌握Gstreamer相关的知识,TT快三TT快三我 们 优先选择Ubuntu作为TT快三TT快三我 们 的开发环境,其他平台的开发会在后 阅读全文
posted @ 2019-06-12 11:04 John.Leng 阅读 (312) 评论 (0) 编辑
摘要:什么是Gstreamer? Gstreamer是一个支持TT快三Win dows,Linux,Android, iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(pl 阅读全文
posted @ 2019-05-30 12:07 John.Leng 阅读 (290) 评论 (0) 编辑
摘要:安装 Meson是基于python3实现,至少需要python3.5才能运行,默认采用ninja作为后端。在Ubuntu下最简单的是通过pip3安装 也可以只将meson安装到当前用户目录下 这种方式会将meson安装到~/.local/bin目录下,因此需要将这个目录增加到PATH中。 在较老的系 阅读全文
posted @ 2019-04-30 14:50 John.Leng 阅读 (109) 评论 (0) 编辑
摘要:最近在分析Gstreamer的代码时,发现GstPipeline中有如下代码: 但TT快三搜索 当前文件并没有发现有对parent_class变量的定义,查询后发现这是GObject在相应宏展开时所定义的一个静态变量,当使用G_DEFINE_TYPE宏定义一个GObject对象时,宏会自动展开生成相应的代码, 阅读全文
posted @ 2019-04-25 11:10 John.Leng 阅读 (74) 评论 (0) 编辑