快速入门:GStreamer 常用元素及其用法

本文介绍了GStreamer中的一些关键元素,包括Bins如playbin和uridecodebin,用于文件输入/输出的filesrc和filesink,网络元素souphttpsrc,生成测试媒体的videotestsrc和audiotestsrc,视频和音频适配器如videoconvert和audioconvert,多线程元素如queue和multiqueue,以及调试工具fakesink和identity。这些元素在日常GStreamer工作流程中非常实用,既有生产用途也有调试价值。

0. 目标

本教程提供了一个值得了解的方便的 GStreamer 元素列表。它们的范围从允许您轻松构建复杂管道的强大的一体式元素(如 playbin)到在调试时非常有用的小助手元素。

为了简单起见,下面的例子是使用 gst-launch-1.0 工具给出的(在《基础教程10: GStreamer工具》中了解它)。如果要查看正在协商的焊盘封口,请使用-v命令行参数。

1. Bins

Bin 的英文原意是箱子的意思,在 GStreamer 中表示若干元素的集合。利用多个元素组合在一起,可以完成一件复杂的任务。GStreamer 提供了若干 Bin,用于简化程序设计。

注意,在 GStreamer 体系中,Bin 本身也是元素 (element)。这就很有意思了,这意味着我们可以把一个复杂的 Bin 按照树形结构分解成若干层级。从工程学的角度来看,这是非常有用的。

playbin

playbin 非常有用,可以说 GStreamer 的整部教程都是围绕着与他相关的内容展开,它涵盖了从媒体流的数据源到媒体的显示展现,包括了媒体流格式解析和数据解码。有关详细信息,请参见《播放教程》

uridecodebin

uridecodebin 可以把媒体流中的数据通过解码运算还原为原始数据。我们知道,一个完整的媒体流管道包括 source、filter 和 sink 三种类型的元素。uridecodebin 可以根据 URI 媒体流的具体格式选择一个合适的 source 元素,并把这个 source 元素连接到一个负责解码的 decodebin 元素。它的行为就像一个多路信号分离器,可以从尽可能多的 source pad 以便从适配媒体流中各种各样的媒体数据。

gst-launch-1.0 uridecodebin uri=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm ! videoconvert ! autovideosink

decodebin

该元件通过自动插入,使用可用的解码器和解复用器自动构建解码管道,直到获得原始媒体。它由 uridecodebin 在内部使用,uridecodebin 通常使用起来更方便,因为它还创建了一个合适的源元素。它将替换旧的 decodebin 元素。它的行为就像一个多路信号分离器,所以它提供了尽可能多的source pad 以便匹配媒体流中的媒体数据。

gst-launch-1.0 souphttpsrc location=https://www.freedesktop.org/software/gstreamer-sdk/data/media/sintel_trailer-480p.webm ! decodebin ! autovideosink

2. 文件输入/输出

filesrc

此元素读取本地文件并生成具有 ANY Caps (能力) 的媒体。如果要为媒体获取正确的 Caps,请使用typefind 元素或将 filesrctypefind 属性设置为 TRUE 来浏览流。

gst-launch-1.0 filesrc location=f:\\media\\sintel\\sintel_trailer-480p.webm 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值