GStreamer 管道中的 GST缓冲流量监控



我想监视通过我的 GStreamer 管道传输的缓冲区。

例如,在以下管道中:我想知道是否有 1 个缓冲区(即。在 rtph264pay 和 udpsink 之间流动的 GstBuffer) 对应于我的以太网接口上流式传输的 1 个数据包。

gst-launch-1.0 filesrc ! x264enc ! rtph264pay ! udpsink

我可以使用什么工具来弄清楚它?我必须进入源代码才能得到答案吗?答案会是什么?

可以使用

GST_SCHEDULING调试类别来监视数据流。

GST_DEBUG="*SCHED*:5" gst-launch-1.0 filesrc ! x264enc ! rtph264pay ! udpsink 2> gst.log

这将生成到达接收器垫的每个缓冲区的日志。您可以过滤 udpsink 接收器垫以获取所需的信息。对于网络方面,您需要使用网络分析仪,例如Wireshark。然后你应该能够比较。

实际上,每个有效负载缓冲区将代表 1 个 UDP 数据包,除非您的网络 MTU 小于您在有效负载上配置的 MTU(请参阅 mtu 属性)。