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のバッファサイズはパケットロス発生状況に応じて変更
- バッファサイズは、比較的に良好なネットワーク環境(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%のパケットロスを付加します。
UDPでは画像の乱れが発生していることが分かります。
SRTは画像の乱れまでは確認できませんが、SRTバッファ=20msではSRT再送による修復が間に合わず(Skipped Packet=4)となっています。SRTバッファ=125msに修正することでSkipped Packet=0になりました。
パケットロス 10%
元画像UDP転送結果SRT転送結果


エンコーダの出力ストリームに10%のパケットロスを付加します。
UDPでは画像の乱れがひどくなっていることが分かります。
SRTは画像の乱れまでは確認できませんが、SRTバッファ=125msではSRT再送による修復が間に合わず(Skipped Packet=2)となっています。SRTバッファ=250msに修正することでSkipped Packet=0になりました。
パケットロス 20%
元画像UDP転送結果SRT転送結果

エンコーダの出力ストリームに20%のパケットロスを付加します。
UDPでは画像の乱れが10%と同様にひどくなっていることが分かります。
SRTは画像の乱れまでは確認できませんが、10%の際に設定したSRTバッファ=250msでSkipped Packet=0になりました。
パケットロス 30%
元画像UDP転送結果SRT転送結果


エンコーダの出力ストリームに30%のパケットロスを付加します。
UDPでは画像の乱れがひどくなっていることが分かります。
SRTは画像の乱れまでは確認できませんが、SRTバッファ=250msではSRT再送による修復が間に合わず(Skipped Packet=2)となっています。 SRTバッファ=500msに修正することでSkipped Packet=0になりました。
パケットロス 50%
元画像UDP転送結果SRT転送結果



エンコーダの出力ストリームに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の送受信が可能となることがご理解いただけると思います。
この検証はあくまでエクスプローラが独自に行った結果ですので保証するものではありませんが、少しでも参考にしていただければ幸いです。
ご質問・ご相談などは
こちらから
お問い合わせください。