動画配信はこれで完璧か?
ここまでで、下記を実施すればMP4プログレッシブダウンロードによる動画配信が実現できることがわかってもらえたかと思います。
- 適切にMP4ファイルへエンコードを行う
- MP4を設置でき、Rangeリクエストが実行可能なWebサーバーを用意する
- videoタグを用いたプレイヤーを用意する
実際、AWS S3にアップロードを行い、CloudFront等のCDNを経由して配信を行えば、この方法で同時接続数万人だったとしてもバックエンドシステムとしては安定した形でストリーミング動画配信ができてしまいます。
では、これで本当に最適な動画配信は実現できているでしょうか?残念ながらそうとは言えません。
ユーザーの環境は我々が想像している以上に千差万別です。100Mbpsを超える家庭用回線でインターネットをしている人もいれば、混雑した電車内の1Mbps程度しか速度の出ない携帯回線で動画を見ている人もいます。前者のユーザーに対しては本手法でも全く問題なくサービス提供ができますが、後者の人には非常に不安定な視聴体験を強いることとなります。また、インターネット回線はベストエフォートがほとんどであり、いつもは100Mbps出ているユーザーでも、一時的に1Mbpsになることだってありえます。
不安定な回線環境でも、要は再生開始するまでにほぼ全データがダウンロードできれば問題ないわけなので、例えばランディングページに掲載する30秒ほどの説明動画等であればこの方法でも十分でしょう。しかし、5分のミュージックビデオや2時間の映画を配信するには不適切だと言えます。もしそういった長編をMP4プログレッシブダウンロードで万人に提供するのであれば、画質を犠牲にしてデータ量を削減する必要があると考えられます。
ここまで聞いてこうは思いませんか?「通信速度の速い人には高画質で提供して、通信速度の低い人には低画質で提供する方法は無いものか」と。
実はそれを実現する技術があります。それがAdaptive Bit Rate、通称ABRです。
後編へ続く
今回は「Webブラウザで動画をストリーミング再生」の前編として、実際に動画をWebからストリーミング再生をして、動画の圧縮率やGOP長の調整により、どのようにユーザー体験に変化が生じるのか見てきました。後編では、さまざまな通信環境のユーザーに安定して映像を届ける方法について解説していきます。
