Microsoft Teams で Web 会議をするときの通信トラフィックを観察してみた

Microsoft Teams で Web 会議するときは、どのくらいのネットワーク帯域を利用するのですか？と聞かれることもあるので、実際に試しながら観察してみました。結果として、帯域をどのくらい使うかは一概には言えないということが分かりました。

#検証環境
同じネットワークにつながった Surface Pro 4 が 2 台。どちらも Wifi でインターネットに接続。

#どちらもカメラをオフ、マイクはオン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/26099301-89fb-1250-beb8-5a6d2c30b4bc.png)
これがベースですね。

#どちらもカメラをオン、マイクもオン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/7d85853b-5bd6-2e85-22c7-bda671d745ca.png)
どちらもカメラを送受信しているので、均等に増えている感じです。カメラのトラフィックはスゴイ。

##受信側が Teams のウィンドウサイズを小さくする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/d66d5c02-fae3-e9bb-520d-22f0e52179c2.png)
面白かったのは、ウィンドウサイズを小さくすると受信トラフィックが少なくなります。実はこれ、送信側の送信トラフィックも少なくなっています…。

どうやらカメラに関する通信は、受信側のウィンドウサイズに応じて送信側も制御しているっぽい。すごい。

##カメラの前で激しい動きをする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/9aab4e06-9ee0-f6c6-18c1-229d4d4716f2.png)
あまり影響ない…、逆にジッとしていてもトラフィックは減らないみたい…、Web 会議中は自由に動こう。

#どちらもカメラをオン、マイクもオン、相手に画面を共有してもらう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/0c43dca6-ca8c-452b-b7c6-a32d24a72527.png)
共有された画面が表示された瞬間に受信トラフィックが大きく減少。相手のカメラ映像が小さく表示されるためか、カメラのトラフィックは受信側の表示サイズに依存してるようですね。

ちなみに、共有された画面でスクロールしたりページを切り替えるなど、大きな動きがあると一瞬だけトラフィックが増えます。画面共有は差分を送っているのでしょうかね？

##相手のカメラをピン留めして大きく表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/6ce38af2-5b80-e088-834d-7d868c32c70a.png)
共有された画面を小さくして、カメラの映像を大きく見ようとピン留めの機能を利用。大きく表示された瞬間に受信トラフィックが増えました。

#どちらもカメラをオン、マイクもオン、こちらが画面を共有
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/c54ffd71-032a-8a49-24cd-73e4c11244b9.png)
こちらの画面を共有すると、送信トラフィックが減少。相手側でカメラの映像が小さく表示されるようになったからだと推測。

##相手がカメラをピン留めして大きく表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/60df94ac-6d7a-3e28-aab8-a45303705010.png)
ほら、相手がカメラを大きく表示すると、こちらの送信トラフィックも増える。

##画面を共有しながら、ビデオの着信をオフにする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/eb09a081-ec3d-381b-4b7f-82e72e1eb4de.png)
こちらが画面を共有していても Teams のウィンドウで相手が大きく写ったままだと、相手のカメラを受信するトラフィックが増えたままですね。

どうせ画面を共有しているときは相手のカメラは不要なので、ビデオの着信はオフにしておこうっと。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/032e3ae5-8396-7ed0-bec0-ab13f3588e4b.png)

#参考：相手側をアプリとブラウザでそれぞれ別ユーザーでログインして 3 人で Web 会議を実施してみる
パソコンの台数は 2 台ですが、Web 会議に参加しているユーザーは 3 人です。

##相手の一人が共有した画面を閲覧、相手のもう一人はカメラをピン留めして大きく表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167110/0cfd8b5b-c946-d74b-a423-fbaee90b6c98.png)
やっぱり、誰かがカメラの映像を大きく映していると送信トラフィックが増えますねー。

#検証結果
簡単に検証結果をまとめてみましょう。
##カメラはトラフィックを多く利用する
やはりカメラはトラフィックを多く利用するようです。一方で画面共有はそうでもない。画面に動きや変化があったときにだけ大きなトラフィックが発生する感じでした。

##カメラをオンにした場合の通信量は相手側のウィンドウサイズや画面レイアウトの影響を受ける
今回試してみて面白かったのはこの動作です。送信側の設定ではなく、受信側でどう見ているかに通信トラフィックは影響を受けるようです。

##こちらが画面を共有しているときはビデオの着信をオフでも良いかも
こちらから画面を共有しているときは、どうせ相手のカメラはほとんど見れないので、ビデオ着信はオフにしても良いかも。

##Web 会議のトラフィックを削減するには…、みんなでカメラをオフ！
帯域が苦しい参加者がいる場合は、みんなでカメラをオフにしましょう！

##最大で 2Mbps くらい
ちなみに、こちらの公式ドキュメントに 2Mbps で「HD グループビデオ通話 (1080 p の画面で 540 p のビデオ)」と記載があります。今回の検証ではとても良い画質でカメラの映像を送受信できました。

Microsoft Teams 用に組織のネットワークを準備する - 帯域幅要件
https://docs.microsoft.com/ja-jp/microsoftteams/prepare-network#bandwidth-requirements

そして、よく読むと次のように書いてあります。

>各オーディオ/ビデオ通話または会議の実際の帯域幅の消費量は、ビデオレイアウト、ビデオ解像度、1 秒あたりのビデオ フレームなどのいくつかの要因によって異なります。

このビデオレイアウトによる違いが今回の検証結果で確認できたことかもしれないですね。

#免責
お昼休みにちょっと試してみただけなので、あくまで結果は参考程度にお願いします！

#きっかけ
この検証のきっかけは次のツイートでした。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">【Tips】Microsoft TeamsにおけるWeb会議実施時のネットワークトラフィックを軽減する方法について<a href="https://t.co/UxFgqGzuJq">https://t.co/UxFgqGzuJq</a></p>&mdash; NTTPCコミュニケーションズ (@NTTPC_Official) <a href="https://twitter.com/NTTPC_Official/status/1254968579088318471?ref_src=twsrc%5Etfw">April 28, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">【お知らせ】Microsoft TeamsにおけるWeb会議実施時のネットワークトラフィックを軽減する方法について<a href="https://t.co/bxrKgKzpjt">https://t.co/bxrKgKzpjt</a></p>&mdash; NTTPCコミュニケーションズ (@NTTPC_Official) <a href="https://twitter.com/NTTPC_Official/status/1254606187326255104?ref_src=twsrc%5Etfw">April 27, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#お願い
この記事を読んで、自分も同じことを試したよという方がいましたら、その結果を共有してもらえると助かります！