首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gstreamer:相对于他人的延迟流

gstreamer:相对于他人的延迟流
EN

Stack Overflow用户
提问于 2014-11-06 22:52:11
回答 1查看 1.6K关注 0票数 1

我有一个gstreamer管道与各种不同的流,我需要延迟其中之一,以便他们是同步的。

流是实时捕获的,在实际捕获之前有一些预处理,这给流增加了不同的延迟,因此它们不同步地到达计算机,gstreamer的内部同步没有帮助;我正在尝试重新同步它们。

我尝试使用queue提到的min-threshold-time属性here的技巧,但这没有帮助,因为管道仍然会根据它们的时间戳同步所有缓冲区--因此整个管道会被延迟,而不仅仅是一个流。

我目前的管道看起来是:

代码语言:javascript
复制
+-----------+
|decklinksrc|
+-----------+
     |
     V
  +------+
  |tee   |
  +------+
     |  |                     +-------------+
     |  +-------------------> | xvimagesink |
     V                        +-------------+
  +-----+
  |queue|
  +-----+
     |
     V                    +------------+
  +-------+               |jackaudiosrc|
  |x264env|               +------------+
  +-------+                     |
     |                          V
     V                       +-----+
  +---------+                |faac |
  |h264parse|                +-----+
  +---------+                   |
     |                          V
     V                      +--------+
  +-----+                   |aacparse|
  |queue|                   +--------+
  +-----+                       |
     |    +---------------------+
     V    V
  +----------+
  |flvmux    |
  +----------+
     |
     V
  +-----+
  |queue|
  +-----+
     |
     V
  +---------+
  |rtmpsink |
  +---------+

由于我目前只是试图延迟视频流,我也尝试使用frei0r-filter-delay0r元素(它封装了frei0r视频延迟插件),但这只适用于RGBA-video ( to is YUY2),转换过于草率。

我认为我需要一个元素来增加(或减去)它接收到的任何缓冲区的时间戳,但是还没有找到这样的东西。

EN

回答 1

Stack Overflow用户

发布于 2014-11-07 22:28:42

一些接收器元素具有呈现延迟属性。你能用一下吗?

编辑:您还可以尝试一个带有睡眠时间属性的identity元素:

代码语言:javascript
复制
identity sleep-time=25000

Edit2:还确保为连接到"tee“元素的两个管道都有一个"queue”元素。

代码语言:javascript
复制
tee name=t ! queue ! x264 ! ...
t. ! queue ! xvimagesink

很难知道是什么原因造成口吃,而没有看到它或有更多的日志记录细节。

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

https://stackoverflow.com/questions/26790958

复制
相关文章

相似问题

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