로컬 네트워크를 통해 카메라에서 비디오를 스트리밍하기 위해 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