Gstreamer 总延迟

Gstreamer total latancy

目标:

测量从Stream src到sink需要一帧的整个流水线时间。 src 是一个 IP 摄像机,我们应该检测从摄像机到接收器需要多长时间,如果时间太长,我们应该在显示器中显示一些东西。

你们能解释一下 gstreamer 中如何进行这种测量吗? 我们的 gstreamer 应用程序是用 c++ 编写的,欢迎提供一些提示或代码示例

谢谢 du mucj 伙计们

你可以用焊盘探针来做这个:

https://gstreamer.freedesktop.org/documentation/application-development/advanced/pipeline-manipulation.html#using-probes

根据您的管道行为 - 您将选择最早可以访问合理数据的元素(不确定相机在您的情况下作为样本提供的是什么)将当前系统的时间记录到样本的 DTS/PTS(帧重新排序在这里可能是一个陷阱)并在你有权访问的最后一个 pad 上做同样的事情。

将系统的样本时间与相同 PTS/DTS 进行比较,您应该得到样本在管道中花费的时间增量。根据您所需的准确性,这可能是一个足够好的估计。