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
は、以下のコードで取得されています。
この部分では、GStreamer の srtserversink
から取得できる SRTの統計情報 (stats
) から "bandwidth-mbps"
というキーの値を取得しています。
GStreamer の SRTプラグイン (srtserversink
) は、SRTプロトコルのメトリクス情報を提供し、その中に "bandwidth-mbps"
というパラメータが含まれています。
つまり、SRT通信時の「利用可能な推定帯域幅」をリアルタイムで取得している。
bandwidth_mbps
の意味
- SRTの推定帯域幅(Mbps)
- リアルタイムでSRTの通信状況から取得される
- 現在のネットワーク環境で送信可能な最大帯域を示す
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-mbps
や receive-rate-mbps
という値も取得できるようになっています。
send-rate-mbps
→ 現在の送信レート(今実際に使っている帯域)receive-rate-mbps
→ 現在の受信レート(今実際に使っている帯域)bandwidth-mbps
→ SRTプロトコルが推定した、利用可能な最大帯域
このことから、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.
要点
- 「ネットワークの状況(パケットロスやRTTなど)を基にSRTが計算した、利用可能な最大帯域」 である。
- 現在の送信レートとは異なる。
- "available bandwidth"(利用可能な帯域) という表現が使われている。
つまり、SRTが「この回線ではこのくらいの帯域が利用できるはずだ」と推定している値 であり、今実際に使用している帯域とは違う ということです。
4. まとめ
指標 | 意味 | 役割 |
---|---|---|
send-rate-mbps | 今使っている帯域(送信速度) | 実際の送信速度をモニタリング |
receive-rate-mbps | 今使っている帯域(受信速度) | 実際の受信速度をモニタリング |
bandwidth-mbps | まだ使える帯域(推定値) | SRTが計算した利用可能な最大帯域 |
結論
✅ bandwidth_mbps
は「まだ使える帯域」= 利用可能な推定帯域
✅ SRTがネットワーク状況を解析して算出した、回線が許容できる最大帯域を示している
✅ 「今使っている帯域(現在の送信速度)」ではなく、「どのくらいの帯域が利用可能か」という指標
この値を使って、適切なビットレートを動的に調整し、映像配信を安定させる仕組みになっています。