GST_Shark

マルチメディア ユーザー ガイド (UG1449)

Document ID
UG1449
Release Date
2022-04-21
Revision
1.4 日本語

gst-shark は、性能を検証して性能低下の原因となっているエレメントを特定できる GStreamer ベースのツールです。

瞬間レイテンシを確認するには、次のコマンドを実行します。

GST_DEBUG="GST_TRACER:7" GST_TRACERS="latency" GST_DEBUG_FILE=/run/server.txt
gst-launch-1.0 v4l2src io-mode=4 device=/dev/video0 ! video/x-raw, width=3840,
height=2160, format=NV12, framerate=60/1 ! omxh265enc qp-mode=auto gop-mode=low-delay-p
gop-length=60 periodicity-idr=60 b-frames=0 target-bitrate=60000 num-slices=8
control-rate=low-latency prefetch-buffer=TRUE low-bandwidth=false filler-data=0
cpb-size=1000 initial-delay=500 ! video/x-h265, alignment=nal ! queue max-size-buffers=0
! rtph265pay ! udpsink host=192.168.25.89 port=5004 buffer-size=60000000
max-bitrate=120000000 max-lateness=-1 qos-dscp=60 async=false 

レイテンシ トレーサー モジュールから出力されるのは瞬間レイテンシで、これは報告されたレイテンシとは異なることがあります。内部パイプライン (element ! element) により多くの時間がかかる場合はレイテンシが長くなり、内部パイプラインの動作が速い場合はレイテンシが短くなります。ただしその場合、GStreamer フレームワークは実行時間が報告されたレイテンシと同じ長さになるまで待ちます。

次のログで太字で表示した時間 (レイテンシ、ナノ秒) を確認します。初期化時間のため、最初のいくつかの数値は高めですが、初期化が完了すると安定します。たとえば、次のログではストリーム出力パイプラインのレイテンシは約 12ms です。

 0:00:21.633532492 20066 0x558abfb8a0 TRACE GST_TRACER :0:: latency,
src-element-id=(string)0x558abea190, src-element=(string)v4l2src0, src=(string)src,
sink-element-id=(string)0x558ac2b9e0, sink-element=(string)udpsink0,
sink=(string)sink, time=(guint64)12399379, ts=(guint64)21633482297;