gpt4 book ai didi

c - 如何同步多个appsink

转载 作者:行者123 更新时间:2023-11-30 17:30:25 25 4
gpt4 key购买 nike

我一直在学习 gstreamer,尝试编写一个应用程序,该应用程序获取多个视频文件并同步处理其中的每个帧(具体来说,我需要比较这些帧,直到转向下一个帧)。我构建了一个具有多个独立“分支”的管道:

filesrc ---> decodebin ---> videoconvert ---> appsink

filesrc ---> decodebin ---> videoconvert ---> appsink

...

filesrc ---> decodebin ---> videoconvert ---> appsink

我已经成功地处理彼此独立的帧。我的问题是:

如何同步每个应用程序接收器,以便可以将一个应用程序接收器的帧与其他应用程序接收器的帧进行比较?

我想到的就是在新示例回调函数中轮询其他应用程序接收器是否已将其缓冲区存储在某些共享内存中,然后这些回调之一开始对所有缓冲区进行工作。然而,这似乎是相当残酷和困惑的方法。你能帮我找到一个更好的吗?

最佳答案

GStreamer 中的所有接收器(继承自 GstBaseSink)都有一个属性“sync”。这意味着它将把缓冲区时间戳与时钟时间同步,并且在时间到了之前不会给你缓冲区。如果启用了此功能,则可以简单地使用缓冲区上的 GST_BUFFER_TIMESTAMP 来比较它们。

关于c - 如何同步多个appsink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com