はじめに この記事は、WebRTCのビデオ通話の帯域幅を自分で削減したい、という方向けの記事です。 WebRTCにはユーザの回線状況に合わせて動的にビットレートを調整する機能がありますが、それとは別軸の話です。 ビデオ通話の通信量が想定していたより大きいので節約したい... 解像度は低くていいから、細い回線でもビデオ通話できるようにしたい... こんな声を開発者からいただくことがあります。 その回答としてこの記事が役立てばと思いこの記事を書きました。 なぜCanvas APIなのか 帯域削減の解となる選択肢はいくつかあると思います。以下にその例を列挙してみました。 getUserMedia()のMediaTrackConstraintsを使って解像度・フレームレートを調整する Canvas APIを使って映像の解像度・フレームレートを調整する 帯域削減に有効な映像コーデックを指定する(例: