Column

エクスプローラ通信

通信・画像・音声処理技術についての
お役立ち情報をお届けしています。

SRT

SRTはどれくらいまでパケットロスに耐えられるか!?

SRTの特性の一つ「パケットロス再生機能による伝送の確実性(Reliable)」つまり“SRTはパケットロスに強い”ということですが、実際にはどこまで耐久性があるのでしょうか。 この点は良くご質問をいただきますので、エクスプローラのSRTエバンジェリスト“トラッチ” が社内で検証をしました。 結果はいかに・・・!? 是非、最後までご覧ください。

まず、検証はHaivision社製HD H.264エンコーダ・デコーダ機を使用してUDPとSRTの比較を行いました。パケットロスはH.264エンコーダの出力においてランダムエラーをLinuxコマンドを使用して発生させます。

システムログイン後下記のコマンドを入力(パケットロス5%の場合)

tc qdisc replace dev eth0 root netem loss 5%

これでパケットロスを5%付加します

構成図

使用評価機

Makito Xエンコーダ
機能: H.264エンコーダ
低遅延エンコード: 50ms
SD-SDI、HD-SDI、3G SDI入力対応
2ch入力対応品
Makito Xデコーダ
機能: H.264デコーダ
低遅延デコード: 50ms
2chSDI、HDMI出力対応
IPネットワーク対応
UDP/RTP, RTMP
TS送信プロトコルにSecure Reliable Transport(SRT)という独自のプロトコルを利用可能
マルチチャンネルエンコード対応
使用評価機

SRT設定仕様

SRTモード設定
エンコーダをCallerモード、デコーダをリスナーモードとして設定
  • SRT Caller側がListener側のIPアドレス、ポート番号へ接続を実施
    SRTモード設定
SRTのバッファサイズはパケットロス発生状況に応じて変更
  • バッファサイズは、比較的に良好なネットワーク環境(0.1-0.2%)ではRTT(Round Trip Time)の4倍程度が推奨です
  • 今回の検証システムではPINGコマンドに対して下記の結果となります
    39 packets transmitted, 39 packets received, 0% packet loss: round-trip min/avg/max = 0.167/0.269/1.370 ms

パケットロス無し

元画像UDP転送結果SRT転送結果
パケットロス無し
パケットロス無し

パケットロス(Lost Packets)は発生していますが、SRT再送によって修復(Skipped Packet=0)されています。

パケットロス 1%

元画像UDP転送結果SRT転送結果
パケットロス1%
パケットロス1%パケットロス1%

エンコーダの出力ストリームに1%のパケットロスを付加します。

UDPでは画像の乱れが発生していることが分かります。

SRTは画像の乱れまでは確認できませんが、SRTバッファ=20msではSRT再送による修復が間に合わず(Skipped Packet=4)となっています。SRTバッファ=125msに修正することでSkipped Packet=0になりました。

パケットロス 10%

元画像UDP転送結果SRT転送結果
パケットロス10%
パケットロス10%パケットロス10%

エンコーダの出力ストリームに10%のパケットロスを付加します。

UDPでは画像の乱れがひどくなっていることが分かります。

SRTは画像の乱れまでは確認できませんが、SRTバッファ=125msではSRT再送による修復が間に合わず(Skipped Packet=2)となっています。SRTバッファ=250msに修正することでSkipped Packet=0になりました。

パケットロス 20%

元画像UDP転送結果SRT転送結果
パケットロス20%
パケットロス20%

エンコーダの出力ストリームに20%のパケットロスを付加します。

UDPでは画像の乱れが10%と同様にひどくなっていることが分かります。

SRTは画像の乱れまでは確認できませんが、10%の際に設定したSRTバッファ=250msでSkipped Packet=0になりました。

パケットロス 30%

元画像UDP転送結果SRT転送結果
パケットロス30%
パケットロス30%パケットロス30%

エンコーダの出力ストリームに30%のパケットロスを付加します。

UDPでは画像の乱れがひどくなっていることが分かります。

SRTは画像の乱れまでは確認できませんが、SRTバッファ=250msではSRT再送による修復が間に合わず(Skipped Packet=2)となっています。 SRTバッファ=500msに修正することでSkipped Packet=0になりました。

パケットロス 50%

元画像UDP転送結果SRT転送結果
パケットロス50%
パケットロス50%パケットロス50%パケットロス50%

エンコーダの出力ストリームに50%のパケットロスを付加します。

UDPでは画像の乱れがひどくなっていることが分かります。

SRTは画像の乱れが発生し、SRTバッファ=500ms、1000ms、設定可能な最大の8000msでもSRT再送による修復が間に合わず(Skipped Packet=80)となっています。

結果

各パケットロスに対するSRTの耐性は下記の通りです。

パケットロス SRTバッファ Skipped Packet数
0% 20ms 0
1% 20ms 4
1% 125ms 0
10% 125ms 2
10% 250ms 0
20% 250ms 0
30% 250ms 2
30% 500ms 0
50% 500ms 104
50% 1000ms 52
50% 8000ms 80
  • Skipped Packet数は計測時間に応じて増加しますのでパケットロス%との因果関係はありません。あくまでも再送パケット取りこぼしの有無のみの判断となります。
  • 通常10%を超えるパケットロスの環境は考えにくいのですが、この辺りまでSRTの送受信が可能となることがご理解いただけると思います。

この検証はあくまでエクスプローラが独自に行った結果ですので保証するものではありませんが、少しでも参考にしていただければ幸いです。

ご質問・ご相談などは
こちらから
お問い合わせください。