GStreamerパイプラインでの待ち時間の測定

GStreamerパイプラインでの待ち時間の測定

私はローカルネットワークを介してカメラからビデオをストリーミングするためにRTPパイプを使用しています。パイプラインは次のとおりです。カメラ> h264enc> RTP> UDP> receive_and_display

遅延がどのように構成されているのか、どうすればわかりますか?

答え1

今日、GStreamerはパイプライン全体または個々の要素の遅延時間を測定する非常に優れた追跡メカニズムを備えています。

これは次の方法で行うことができます。gst-launch

env GST_DEBUG="GST_TRACER:7" \
    GST_TRACERS="latency(flags=element+pipeline)" \ 
    GST_DEBUG_FILE=./latency.log \
    gst-launch-1.0 -v videotestsrc pattern=snow ! video/x-raw,width=640,height=480,framerate=30/1 ! videoconvert ! autovideosink

./latency.log次のような多くのログが含まれています。

...
0:00:06.072184000 40898    0x11d816920 TRACE             GST_TRACER :0:: element-latency, element-id=(string)0x11e848210, element=(string)videotestsrc0, src=(string)src, time=(guint64)16000, ts=(guint64)6072172000;
0:00:06.072209000 40898    0x11d816920 TRACE             GST_TRACER :0:: element-latency, element-id=(string)0x11e850440, element=(string)capsfilter0, src=(string)src, time=(guint64)28000, ts=(guint64)6072200000;
0:00:06.072224000 40898    0x11d816920 TRACE             GST_TRACER :0:: element-latency, element-id=(string)0x11e824660, element=(string)videoconvert0, src=(string)src, time=(guint64)17000, ts=(guint64)6072217000;
0:00:06.072468000 40898    0x11d816920 TRACE             GST_TRACER :0:: element-latency, element-id=(string)0x11e83f280, element=(string)autovideosink0, src=(string)src, time=(guint64)21594000, ts=(guint64)6072456000;
....

したがって、ここではtime=(guint64)...各要素の遅延時間(値)を分析し、さまざまな設定を試すことができます。

この記事の詳細https://gstreamer.freedesktop.org/documentation/additional/design/tracing.html?gi-言語=c#use-cases

関連情報