【ライブ配信】ネットワーク調査の推奨方法
この記事はライブ配信アドベントカレンダー2020の7日目の記事になります。
速度テストの結果は当てにしない方がいい
ライブ配信前のネットワーク調査でインターネット速度計測がよく使われますが、あれはあまり当てにしない方がよいです。なぜなら、速度計測サイトは有限のリソースで稼働しており一定した結果が得られないからです。何度か測り直せばよいのでは?との考えは結局リソースの消費でしかなく、他の人が同じように行うことで全体の結果が悪くなる一方です。
もし速度計測サイトを利用するなら、
XXXの計測サイトのYYYというサーバーに対してZZ時頃に実施
というよう決め事をして比較することをオススメします。
また、ライブ配信するだけであれば高速な速度結果は不要です。例えば、YouTube Liveで使われる720pや1080pであれば1.5Mbps〜9Mbpsのビットレートが推奨範囲となっています。現在の1Gbpsが標準の日本の回線環境であればなんなくクリアできるレベルです。むしろこの数字すら出ない回線環境では絶対にライブ配信しない方がよいです。
(参考)ライブ エンコーダの設定、ビットレート、解像度を選択する - YouTube ヘルプ
重要なのは遅延と安定度
ネットワーク調査で確認すべき点は「ping 応答の遅延(latency)と安定度」です。ローカルネットワーク内におけるping 応答の遅延は1msec以下、インターネット上の宛先では10msec以上が一般的です。もちろん遅延は少ないに越したことはないですが、重要なのは安定度。途切れなくping 応答が一定の遅延で返ってくるかどうか、です。
テスト方法は、「ping "宛先IPアドレスまたはホスト"」を実行してしばらく放置し(Windowsの場合はping -t で実施)、応答結果が安定しているかを確認します。
(Mac:Terminalから実施)
$ ping a.rtmp.youtube.com
(Windows:コマンドプロンプトやWindows Terminalから実施)
> ping -t a.rtmp.youtube.com
また、traceroute(Windowsの場合はtracert) も有効な確認手段です。宛先までのネットワークの経由数がどれくらいあるのか、またその時の遅延を知ることができます。
(Mac:Terminalから実施)
$ traceroute a.rtmp.youtube.com
(Windows:コマンドプロンプトやWindows Terminalから実施)
> tracert a.rtmp.youtube.com
YouTube Liveのネットワーク調査方法
よく使われるYouTube Liveの調査は下記のように行います。
(RTMP送出先の確認)
$ ping a.rtmp.youtube.com
$ traceroute a.rtmp.youtube.com
(Google DNSの確認)
$ ping 8.8.8.8
$ traceroute 8.8.8.8
ライブ配信の実施に必要なのはRTMP送出先(YouTube Studio内でストリームURLに記載のアドレス)ですが、比較としてGoogle DNSも調べておくとよいです。アドレスが覚えやすいのとGoogleのサービスであるので安定しているからです。
実行例(pingは可能な限り長く実施を推奨)
$ ping a.rtmp.youtube.com
PING bartmp.l.google.com (173.194.49.154): 56 data bytes
64 bytes from 173.194.49.154: icmp_seq=0 ttl=123 time=14.305 ms
64 bytes from 173.194.49.154: icmp_seq=1 ttl=123 time=14.315 ms
64 bytes from 173.194.49.154: icmp_seq=2 ttl=123 time=14.028 ms
64 bytes from 173.194.49.154: icmp_seq=3 ttl=123 time=13.531 ms
64 bytes from 173.194.49.154: icmp_seq=4 ttl=123 time=13.516 ms
64 bytes from 173.194.49.154: icmp_seq=5 ttl=123 time=13.294 ms
64 bytes from 173.194.49.154: icmp_seq=6 ttl=123 time=13.434 ms
64 bytes from 173.194.49.154: icmp_seq=7 ttl=123 time=14.040 ms
64 bytes from 173.194.49.154: icmp_seq=8 ttl=123 time=14.694 ms
64 bytes from 173.194.49.154: icmp_seq=9 ttl=123 time=13.616 ms
64 bytes from 173.194.49.154: icmp_seq=10 ttl=123 time=14.328 ms
--------
$ traceroute a.rtmp.youtube.com
traceroute to bartmp.l.google.com (173.194.49.154), 64 hops max, 52 byte packets
1 192.168.1.1 1.988 ms 1.891 ms 1.192 ms
2 210.147.178.69 (210.147.178.69) 18.181 ms 18.880 ms 15.622 ms
3 210.147.178.70 (210.147.178.70) 19.099 ms 15.279 ms 14.468 ms
4 210.147.254.10 (210.147.254.10) 20.434 ms 15.210 ms 16.997 ms
5 10.252.44.254 (10.252.44.254) 19.172 ms *
10.23.215.94 (10.23.215.94) 20.229 ms
6 108.170.238.102 (108.170.238.102) 17.331 ms
108.170.243.97 (108.170.243.97) 20.119 ms 17.168 ms
7 108.170.243.99 (108.170.243.99) 18.162 ms
108.170.243.131 (108.170.243.131) 16.764 ms
108.177.3.85 (108.177.3.85) 13.948 ms
8 173.194.49.154 (173.194.49.154) 17.700 ms
108.170.243.33 (108.170.243.33) 19.184 ms 17.649 ms
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=118 time=17.595 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=13.435 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=13.980 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=118 time=13.616 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=118 time=13.551 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=118 time=13.196 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=118 time=13.515 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=118 time=14.366 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=118 time=14.173 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=118 time=14.097 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=118 time=13.304 ms
-------
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 192.168.1.1 1.544 ms 0.781 ms 1.121 ms
2 210.147.178.69 (210.147.178.69) 21.686 ms 15.124 ms 15.278 ms
3 210.147.178.70 (210.147.178.70) 20.238 ms 15.987 ms 15.350 ms
4 210.147.254.10 (210.147.254.10) 19.065 ms 14.730 ms 13.487 ms
5 * 10.252.44.254 (10.252.44.254) 20.025 ms
10.252.72.126 (10.252.72.126) 19.457 ms
6 dns.google (8.8.8.8) 17.514 ms 17.259 ms 15.503 ms
まとめ
ライブ配信前のネットワーク調査の方法として、速度計測以外の方法を紹介しました。コマンド自体は簡単で暗記もできるくらいの内容なので(もちろんコピペもOK)、常日頃からいろんな環境で実行して結果を知っておくことをお勧めします。可能であれば良い結果と悪い結果の回線のそれぞれでライブ配信を実施して、許容範囲を把握しておくことも非常に良いノウハウとなります。
ネットワークに関する知識を身に付け、安定したライブ配信の実施の参考にしてください。