SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

今日からできる! 動画配信基盤システム構築

【Webブラウザでストリーミング動画配信:前編】MP4プログレッシブダウンロードによるストリーミング再生を実現しよう

今日からできる! 動画配信基盤システム構築 第4回

動画配信はこれで完璧か?

 ここまでで、下記を実施すれば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長の調整により、どのようにユーザー体験に変化が生じるのか見てきました。後編では、さまざまな通信環境のユーザーに安定して映像を届ける方法について解説していきます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
今日からできる! 動画配信基盤システム構築連載記事一覧

もっと読む

この記事の著者

矢野 完人(合同会社DMM.com)(ヤノ マサヒト)

 2016年にDMM.comへ新卒入社。CTO室に配属され、新規事業立案や動的画像リサイズエンジンのR&D等に従事。2017年に動画サービスを司る部署(現:動画配信開発部)に異動し、配信基盤グループにて設計・開発・運用・マネジメントなどさまざまな業務を行う。現在はメディア基盤開発部 部長とし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/21095 2025/03/28 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー