首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GStreamer gst_pad_get_offset和gst_pad_set_offset不工作

GStreamer gst_pad_get_offset和gst_pad_set_offset不工作
EN

Stack Overflow用户
提问于 2021-01-21 09:30:09
回答 1查看 298关注 0票数 1

首先,我想澄清,我的英语说得不太好,如果我不能很好地表达自己,请提前道歉。

上下文

根据命令gst检查-1.0-gst-版本,我有1.14.5的gstreamer。

我启动了一个动态gstreamer项目,其简化的管道结构如下所示(显然,我指定使用的是编程语言,而不是gst-启动)

代码语言:javascript
复制
AnElementNoMatterWhich ! videomixer ! AnElementNoMatterWhich ! tee ! queue ! AnElementNoMatterWhich

现在想象一下,10秒后,我想要添加一个元素,不管是巫婆,还是添加到视频复制器接收器中。或者,假设我想向 tee src中添加一个项(这与对录象机一样,只是我要在tee和元素之间添加一个尾,以避免阻塞其他分支)。

这将需要大约10秒的时间,流才能进入录象机的接收器盘。同样,对于T恤的src垫也是如此。类似地,在管道中添加元素(并将其连接到视频切割器或tee)所花费的时间与视频记录器和/或tee衬垫在传递流之前必须等待的时间大致相同。

与新创建的视频记录器和/或tee衬垫相比,执行管道时的差分解释了这一切。

这就是gst_pad_get_offset()gst_pad_set_offset()两种方法出现的地方。

我的问题

  • 首先我不明白偏移量单位(gint64)是什么。是时间单位吗?毫秒?微秒?纳秒?或者是别的什么?

我也不明白为什么gst_pad_get_offset()总是返回。但是,如果我希望能够使用gst_pad_set_offset()方法设置正确的偏移量,则必须获得偏移量。根据文档,我必须在src pad上这样做,但是在哪里?

最后,我不明白为什么gst_pad_set_offset()不能工作。显然,我是在新创建的录像机的接收器盘上运行的,或者是在tee的src盘上运行的。这不会改变任何事情。此外,如果我想将值10 (例如)赋给gst_pad_set_offset (),然后在同一个垫子上运行gst_pad_get_offset (),理论上应该是10,但是,我总是得到0。就好像gst_pad_get_offset ()和gst_pad_set_offset ()不是gst_pad_get_offset()

我学习了所有的gstreamer教程,并在论坛上花了几天时间。我不知道该怎么办。但是,我知道如果没有这两种方法的正常运行,我的项目就会被阻止。我能做些什么?你有什么主意吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-04 15:55:12

是的,Gst并没有很好的记录。

默认情况下,偏移量为0。您可以更改它,然后get_offset将返回新的值

  • ,您可以像这样使用构造,对我来说,它是有效的(GST1.18.4):

代码语言:javascript
复制
tee = pipe.get_by_name('t')
tee.srcpads[0].set_offset(1000000000)

在本例中,Tee的第一个src pad将被延迟到1秒。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65824534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档