私はローカルネットワークを介してカメラからビデオをストリーミングするために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