GStreamer 管道中的 GstBuffer 流量监控
GstBuffer flow monitoring in GStreamer pipeline
我想监视通过我的 GStreamer 管道的缓冲区。
例如,在以下管道中:我想知道在 rtph264pay 和 udpsink 之间流动的 1 个缓冲区 (ie.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 sink pad来获取你想要的信息。对于网络端,您需要使用网络分析器,例如 Wireshark。然后你应该能够比较。
实际上,每个有效负载缓冲区将代表 1 个 UDP 数据包,除非您的网络 MTU 小于您在有效负载上配置的值(请参阅 mtu 属性)。
我想监视通过我的 GStreamer 管道的缓冲区。
例如,在以下管道中:我想知道在 rtph264pay 和 udpsink 之间流动的 1 个缓冲区 (ie.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 sink pad来获取你想要的信息。对于网络端,您需要使用网络分析器,例如 Wireshark。然后你应该能够比较。
实际上,每个有效负载缓冲区将代表 1 个 UDP 数据包,除非您的网络 MTU 小于您在有效负载上配置的值(请参阅 mtu 属性)。