Gstreamer
xyh01215
这个作者很懒,什么都没留下…
展开
-
Gstreamer的音视频同步 .
一 概述 Gstreamer的音频视频同步,概括起来是一个比较大的问题,因为在网上可以看到很多音视频同步的办法。这里我们只看最普通的一种。以音频时钟做为参考时钟(要求参考时钟上的时间是线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据上的时间戳,同时参考当前参考时钟上的时间来安排播放(如果数据块上的时间大于参考时钟转载 2013-11-20 12:31:34 · 2770 阅读 · 0 评论 -
Gstreamer的同步机制
本文编译自gstreamer源代码中的文档,原文的路径是gstreamer/docs/design/part-synchronisation.txt。本文描述了Gstreamer的同步机制,Gstreamer中实现同步的组件如下:GstClock,是全局的,用于pipeline中的所有elements。 GstBuffer的timestamps。 buffers之前的NEW_S转载 2013-11-27 18:34:40 · 1791 阅读 · 0 评论 -
ffdemux_mpegts中时间戳的处理问题
ffdemux_mpegts是gstreamer的demux plugin,基于ffmpeg,在使用的时候发现处理实时流存在问题。先来描述一下问题,采用gst-launch命令启动转码,命令如下:gst-launch-0.10 udpsrc multicast-group=239.1.80.80 port=49500 ! queue ! ffdemux_mpegts name=de转载 2013-11-27 18:33:43 · 1180 阅读 · 0 评论 -
gstreamer应用程序调试
大型应用程序需要完善的debug及log,用于出错调试以及运行时的日志。gstreamer提供了灵活的调试和日志工具 - Gstreamer调试和日志子系统GstInfo。Gstreamer的调试和日志子系统是获取应用程序运行状况的途径。只有在Gstreamer程序初始化以后调试子系统才开始运行,比如调用gst_init()进行初始化。Gstreamer调试和日志子系统在应用程序运转载 2013-11-27 18:30:50 · 1755 阅读 · 0 评论 -
gstreamer核心源码走读typefind原理和对象关系浅析(三)
mark>待完善 如需转载,请注明出处:本博客链接http://blog.csdn.net/acs713/article/details/7742976转载 2013-11-20 19:03:31 · 1127 阅读 · 0 评论 -
相见恨晚之gstreamer衬垫的激活
1.衬垫的激活 当一个bin(箱柜)的状态发生变化时,它里面的元件的状态是按照sink到source的顺序变化的,即先设置sink元件的新状态,再设置source元件的新状态。当状态变化是从ready变到pause时,元件的衬垫开始激活,为数据在元件之间的流动做准备。有些pad,还会启动一个任务(task),来驱动数据流。 对某个元件来说,它通常先激活它的sourc转载 2013-11-20 18:54:01 · 1134 阅读 · 0 评论 -
gstreamer插件工作原理与流程分析 .
gstreamer plugins的工作同所有的基于插件的程序的工作原理类似,本质上都是通过读取动态库实现的,只需要每个动态库都实现某一个特定的接口就可以了,比如XX_init等,gstreamer统一使用plugin_init。里面会有个像注册表一样的数据结构会存储所有的插件的信息。 (1)在应用程序启动时,会调用gst_init--->gst_init_check。gst_init转载 2013-11-20 19:04:58 · 1651 阅读 · 0 评论 -
gstreamer核心源码走读typefind原理浅析(二) .
在我的上一篇文章里,谈到: 8)Filesrc最终会调用open函数打开文件。接着src组件状态也发生切换,创建一个task,最后把文件信息推送给typefind; 9) typefind会从src读取一部分数据然后送出typefind_callback,在callback里面创建合适的plugin。合适的plugin. 本文将从源码分析的角度,重点将这2步分析清楚。可以说,理解了转载 2013-11-20 19:01:20 · 1441 阅读 · 0 评论 -
gstreamer 核心源码source创建和识别typefind原理浅析(一) .
一般情况下,用户打开一个多媒体文件,gstreamer首先需要知道文件的类型,然后创建相应的解码器来解析这个文件,最终实现播放这个文件。 一个实现流程实例如下: (1) app程序通知gstreamer会根据uri、文件路径,创建相应类型的src组件,一般为filesrc组件(element)) (2) 接着根据插件名创建type_find组件 (3)转载 2013-11-20 19:00:26 · 949 阅读 · 0 评论 -
深入浅出gstreamer的调度模式 .
gstreamer的官方文档里,调度的英文是schedule. 什么是schedule? 它的英文解释为" to plan that something will happen at a particular time “.在gstreamer里,调度的意义跟它基本差不多。在gstreamer里,调度的目的主要有以下几个: (1)在适当的时候通知每个元件去完成相应的任务,确保这些职责转载 2013-11-20 18:54:44 · 1273 阅读 · 0 评论 -
Gstreamer架构 简介
本文给出了Gstreamer的总体设计。通过阅读本文可以了解Gstreamer的内部工作原理。本文编译自gstreamer源码中的文档,原文在源码中的位置是/gstreamer/docs/design/part-overview.txt。概述Gstreamer是一个libraries和plugins的集合,用于帮助实现各种类型的多媒体应用程序,比如播放器,转码工具,多媒体服务器等。翻译 2013-11-27 18:28:50 · 1114 阅读 · 0 评论