Gstreamer 学习笔记
树叶-梨花
挺好
展开
-
GObject:自定义类创建实例(继承、重载)
本文旨在介绍GObject如何自定义新类,GObject的一些基础概念(类、对象、实例)等可以自行查阅资料了解。GObject提供了丰富的宏定义,使用G_DEFINE_TYPE 宏定义可以帮助我们快速的定义一个新的类。当然如果不想借助这个宏定义,也可以自己实现XXX_get_type()函数,在该行内调用g_type_register_static() 注册新的类。我们在使用g_object_n...原创 2019-07-24 17:35:33 · 1203 阅读 · 0 评论 -
Gstreamer管道命令记录
概述本文作为笔者使用Gstreamer的笔记,会长期维护,不断丰富使用场景。Mp4转Avi【平台通用】gst-launch-1.0 filesrc location=SampleVideo_1280x720_5mb.mp4 ! qtdemux name=demux ! queue ! avdec_h264 ! video/x-raw ! avimux name=mux ! filesink...原创 2019-08-25 15:35:24 · 6681 阅读 · 1 评论 -
Gstreamer 搭建RTSP服务器
摘要基于Gstreamer搭建Rtsp Server并不是基于gst-launch方式,而是额外提供了一个工程。工程git地址:git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server 这是因为gst-rtsp-server不是以plugin的形式存在,如果您需要基于Gstreamer构建Rtsp Server,则需要同步...原创 2019-08-12 17:08:18 · 15191 阅读 · 4 评论 -
Gstreamer Debug:生成Pipeline 内部元素拓扑结构图
概述Gstreamer提供方便的playbin、decodebin等非常方便使用的组件,虽然使用方便,但这些bin均犹如一个黑盒子,有时我们需要获取到这些bin内部元素的拓扑结构作为参考。读完本文则可以轻易获取完整的gst pipeline的元素拓扑结构。GST_DEBUG_DUMP_DOT_DIR宏定义Gstreamer提供了GST_DEBUG_DUMP_DOT_DIR宏定义,该宏定义用于...原创 2019-08-22 08:55:24 · 1443 阅读 · 0 评论 -
Gstreamer从管道命令转为代码的注意事项
概述gstreamer提供了gst-launch工具,使用该工具我们可以很方便的搭建各种管道,比如gst-launc-1.0 videotestsrc ! autovideosink输入上述命令,我们就能测试视频通路是否OK。但有些场景需要我们提供代码形式,而在gst-launch的管道转换为代码时,经常会遇到管道间连接失败的问题。本文主要总结gst元素不同pad类型间如何连接。Always ...原创 2019-08-29 15:30:49 · 1690 阅读 · 5 评论 -
Gstreamer 设计理念 —— 【初探】
概述接触Gstreamer有一段时间了,看完了官网的教程,可能由于对英文单词释义理解不当,导致对Gstreamer中的很多概念并不是很清楚。感觉都是懵懵懂懂的知道点,但真要说,又说不出所以然。于是笔者想不再仅停留在gst-launch阶段,是时候去阅读Gstreamer的源码了,毕竟源码就是最好的文档。愿景我希望能写一套完整的教程。详细记录自己一点点啃Gstreamer源码的过程。但我也不清...原创 2019-09-10 20:25:09 · 438 阅读 · 0 评论 -
Filesrc源码分析
概述根据上一篇博客的介绍,我们知道对于filesrc类我们只需完成其静态方法即可,调用逻辑则由pipeline/bin来完成。这里额外要提的是filesrc是集成basesrc的,basesrc是所有src类型element的一个模板,其接口完成了状态切换管理、Pad协商、内存分配器协商等等一系列逻辑。filesrc仅仅重载了basesrc的部分接口,如果不想使用basesrc的默认提供的逻辑,...原创 2019-09-11 10:26:47 · 995 阅读 · 2 评论 -
GObject 对象-类-实例概念介绍
GObject 对象、类、实例关于GObject中对象、类、实例概念,笔者搜了下相关资料,多数的介绍是对象是声明的变量,类是就是类型,实例是变量存储的内容看了上述描述,笔者仍很含糊,后面通过阅读代码,关于这三个概念笔者的总结如下图,如果有误还请评论区给予指正。...原创 2019-09-27 11:31:37 · 757 阅读 · 0 评论 -
Basesrc源码分析(一)
概述通过Gstreamer官方文档,我们可以知道很多src类型的element都是Basesrc类的子类,因此对Basesrc源码的了解,有助于我们知pipeline数据源头是如何触发数据产生的。本文承接上文,以Filesrc element作为示例进行解说。管道命令如下:gst-launch-1.0 --gst-debug=filesrc:5,basesrc:5 filesrc locati...原创 2019-10-09 19:46:16 · 1287 阅读 · 1 评论