Gstreamer Decklink时移

Gstreamer Decklink时移,gstreamer,Gstreamer,我试图故意在使用Gstreamer的Blackmagic MiniRecorder捕获接口的实时视频馈送中引入延迟。基本上是30秒的时间转换,但我正在努力让它工作。以下工作正常,并引入了预期的2秒延迟,我可以增加此延迟: gst-launch-1.0 -v videotestsrc is-live=true ! clockoverlay ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=2

我试图故意在使用Gstreamer的Blackmagic MiniRecorder捕获接口的实时视频馈送中引入延迟。基本上是30秒的时间转换,但我正在努力让它工作。以下工作正常,并引入了预期的2秒延迟,我可以增加此延迟:

gst-launch-1.0 -v videotestsrc is-live=true ! clockoverlay ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=2000000000 ! videoconvert ! autovideosink
以下内容也适用于Blackmagic源设备,输出回Blackmagic MiniMonitor接收器:

gst-launch-1.0 decklinkvideosrc device-number=0 mode=1080i50 ! clockoverlay ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=2000000000 ! decklinkvideosink device-number=1 mode=1080i50
然而,奇怪的是,延迟现在是4秒或6秒(重启时不一致),这取决于阈值时间是否与第一个videotestsrc管道相同,这是我试图理解的第一件事,其中2秒似乎是黑魔法卡的处理时间,因为这是没有队列元素的延迟。如果我再尝试增加延迟,管道会因“未能安排帧:0xFFFFFF8000008”而失败,我正在运行带有16GB RAM的Mac Book Pro i7 2015,因此我希望能够从中获得略多于4秒的时间,尽管这台机器不是生产硬件。错误和谷歌搜索表明队列为Blackmagic输出提供的帧太快,这很奇怪

简而言之,我认为我的问题是队列元素是否是这样做的正确方法,或者是否有更好的方法?我已经看过了这个元素,但是在不知道它是否会起作用,以及我是否有一个更基本的问题,表面上看起来是一个相当简单的管道的情况下花费这些钱(本身并非不可能)是一个令人担忧的问题。我已经看过queue2,但首先不确定它是否合适,其次不确定如何使用它的环形缓冲区

非常感谢您的任何意见