こぼれネット

GStreamerのC言語のライブラリの、res = gst_structure_get_double(stats, "bandwidth-mbps", &bandwidth_mbps); g_print("bandwidth-mbps: %d %f\n", res, bandwidth_mbps);の値が何の値を返しているのか教えて下さい

GStreamerのC言語のライブラリの、res = gst_structure_get_double(stats, "bandwidth-mbps", &bandwidth_mbps); g_print("bandwidth-mbps: %d %f\n", res, bandwidth_mbps);の値が何の値を返しているのか教えて下さい

このプログラムにおける bandwidth_mbps の値は、SRT(Secure Reliable Transport)通信における推定帯域幅(Mbps) を示していると考えられます。


bandwidth_mbps の取得と用途

1. どこで取得しているか

bandwidth_mbps は、以下のコードで取得されています。

c
res = gst_structure_get_double(stats, "bandwidth-mbps", &bandwidth_mbps);
g_print("bandwidth-mbps: %d %f\n", res, bandwidth_mbps);

この部分では、GStreamer の srtserversink から取得できる SRTの統計情報 (stats) から "bandwidth-mbps" というキーの値を取得しています。

GStreamer の SRTプラグイン (srtserversink) は、SRTプロトコルのメトリクス情報を提供し、その中に "bandwidth-mbps" というパラメータが含まれています。

つまり、SRT通信時の「利用可能な推定帯域幅」をリアルタイムで取得している。

bandwidth_mbps の意味

bandwidth_mbps の用途

「SRTの推定帯域幅(Mbps)」というのは、「今使っている帯域なのか」、「まだ使える帯域なのか」どちらでしょうか

bandwidth_mbps は、SRT (Secure Reliable Transport) における「推定帯域幅 (Estimated Bandwidth)」を示す値であり、その意味合いは 「まだ使える帯域」= 利用可能な推定帯域 に近いものです。


1. bandwidth_mbps は「今使っている帯域」ではない

理由 ①: "send-rate-mbps" や "receive-rate-mbps" という項目が別にある

プログラム内では、SRTの統計情報 (stats) から bandwidth-mbps の他に、send-rate-mbpsreceive-rate-mbps という値も取得できるようになっています。

c
res = gst_structure_get_double(stats, "send-rate-mbps", &send_rate_mbps);
g_print("send-rate-mbps: %d %f\n", res, send_rate_mbps);

res = gst_structure_get_double(stats, "receive-rate-mbps", &receive_rate_mbps);
g_print("receive-rate-mbps: %d %f\n", res, receive_rate_mbps);

このことから、bandwidth-mbps は「現在使っている帯域」ではなく、「ネットワークが許容できる帯域の推定値」 であると考えられます。


2. bandwidth-mbps の定義(SRT公式の仕様より)

SRTの公式仕様では、"Estimated Bandwidth"(推定帯域)は次のように説明されています。

bandwidth-mbps: The estimated maximum available bandwidth of the connection, calculated by the SRT protocol based on observed network conditions such as packet loss and RTT.

要点

つまり、SRTが「この回線ではこのくらいの帯域が利用できるはずだ」と推定している値 であり、今実際に使用している帯域とは違う ということです。

4. まとめ

指標 意味 役割
send-rate-mbps 今使っている帯域(送信速度) 実際の送信速度をモニタリング
receive-rate-mbps 今使っている帯域(受信速度) 実際の受信速度をモニタリング
bandwidth-mbps まだ使える帯域(推定値) SRTが計算した利用可能な最大帯域

結論

bandwidth_mbps は「まだ使える帯域」= 利用可能な推定帯域
SRTがネットワーク状況を解析して算出した、回線が許容できる最大帯域を示している
「今使っている帯域(現在の送信速度)」ではなく、「どのくらいの帯域が利用可能か」という指標

この値を使って、適切なビットレートを動的に調整し、映像配信を安定させる仕組みになっています。

モバイルバージョンを終了