![](https://img-blog.csdnimg.cn/20210629111639669.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
高级概念
文章平均质量分 84
主要是解释 GStreamer 内部是如何工作的;涵盖调度、自动插件和同步的那些。 实际开发者通常不需要这些知识。 然而,其他章节讨论了对某些应用程序非常有用的pipeline-application交互的更高级方法。其中包括有关元数据、查询和事件、接口、动态参数和pipeline数据操作的章节。
假如我捕获了你
Never Give Up
展开
-
Gstreamer - 位置跟踪和定位
Position tracking and seeking到目前为止,我们已经了解了如何创建pipeline来进行媒体处理以及如何使其运行。大多数应用程序开发人员会对向用户提供有关媒体进度的反馈感兴趣。例如,媒体播放器会想要显示一个显示歌曲进度的滑块,通常还有一个指示流长度的标签。转码应用程序需要显示任务完成百分比的进度条。 GStreamer 内置支持使用称为querying的概念来完成所有这些工作。由于seeking非常相似,因此也将在此处讨论。seeking是使用事件的概念来完成的。查询...翻译 2021-07-12 14:23:50 · 869 阅读 · 0 评论 -
Gstreamer - 接口
接口将element当做作GObject 展示了 将 GObject 属性的使用作为应用程序和element交互的一种简单方式。这个方法可以用于简单的getter和setter,但无法用于任何更复杂的操作。对于更复杂的用例,GStreamer 使用基于 GObject GTypeInterface 类型的接口。这篇文章是介绍性的,不包括源代码示例。请查看 API 参考以获取更多详细信息。URI 处理程序接口到目前为止,在我们的示例中,我们仅使用“filesrc” element展示了对本地文翻译 2021-07-12 14:08:37 · 563 阅读 · 0 评论 -
Gstreamer - 自动插件
自动插件在您的第一个应用程序中,您已经学会了为 Ogg/Vorbis 文件构建一个简单的媒体播放器。通过使用替代element,您可以为其他媒体类型构建媒体播放器,例如 Ogg/Speex、MP3 甚至视频格式。但是,您更愿意构建一个应用程序,该应用程序可以自动检测流的媒体类型,并通过查看系统中的所有可用element来自动生成可能的最佳pipeline。这个过程称为自动插件,GStreamer 包含高质量的自动插件器。如果您正在寻找自动插件程序,请不要继续阅读并转到<播放组件>。本章将解释翻译 2021-07-12 14:03:44 · 535 阅读 · 0 评论 -
GStreamer- (缓冲)Buffering
缓冲缓冲的目的是在pipeline中积累足够的数据,以便播放可以顺利进行而不会中断。它通常在从(慢速)并且非实时网络源读取时这样做,但也可用于实时源。GStreamer 为以下用例提供支持: 在开始播放之前在内存中缓冲特定数量的数据,以便将网络波动降至最低。请参阅流缓冲。 将网络文件下载到本地磁盘,并在下载的数据中进行快速定位(seeking)。这类似于 quicktime/youtube 播放器。请参阅下载缓冲。 将(半)实时流缓存到本地磁盘环形缓冲区,并在缓存区域中定位(seeki翻译 2021-07-03 22:17:30 · 2224 阅读 · 0 评论 -
Gstreamer- 元数据(Metadata)
元数据GStreamer 明确区分了它支持的两种类型的元数据: Stream tags,以非技术方式描述流的内容;和 Stream-info,这是对流属性的某种技术性描述。Stream tags的示例包括歌曲的作者、歌曲的标题或它所属的专辑。 Stream-info的示例包括视频大小、音频采样率、使用的编解码器等。Tags 使用 GStreamer的 tagging system进行处理。通 获取该pad当前(协商的)的GstCaps,可以通过从 GstPad 中检索出Stream-info 。.翻译 2021-07-03 17:23:04 · 768 阅读 · 0 评论 -
Gstreamer- 多线程(Threads)
多线程GStreamer 本质上是多线程的,并且是完全线程安全的。大多数线程内部对应用程序是隐藏的,这应该使应用程序开发更容易。但是,在某些情况下,应用程序可能希望影响其中的某些部分。 GStreamer 允许应用程序在pipeline的某些部分强制使用多个线程。请参阅何时要强制使用线程?。GStreamer 还可以在创建线程时通知您,以便您可以配置要使用的线程优先级或线程池等内容。请参阅在 GStreamer 中配置线程。GStreamer 中的调度GStreamer pipeline中的每个el翻译 2021-07-03 16:09:36 · 1938 阅读 · 0 评论 -
GStreamer-时钟和同步
在播放复杂媒体时,每个声音和视频样本必须在特定时间以特定顺序播放。为此,GStreamer 提供了一种同步机制。GStreamer 为以下用例提供支持:访问速度快于播放速度的非实时源。这是从文件中读取媒体并以同步方式播放的情况。在这种情况下,需要同步多个流,如音频、视频和字幕。从多个实时源捕获和同步混流/混音媒体。这是一个典型的用例,您从麦克风/摄像头录制音频和视频并将其合成到文件中进行存储。使用缓冲技术对(慢速)网络流进行流式传输。这是典型的 Web 流媒体案例,您使用 HTTP 从流翻译 2021-06-24 19:37:26 · 1011 阅读 · 0 评论