我想监视通过我的 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 属性)。