モバイルアプリにおけるAdaptive Bitrate — その概要、アルゴリズム、プロトコル

著者: IT Sectr 公開日: 2026-05-24 読了時間: 8 分

Adaptive Bitrate(ABR)は、ユーザーのチャネル帯域幅に応じてビデオ品質を動的に変更するストリーミング技術です。プログレッシブダウンロードとは異なり、ABRはビデオを2~10秒の小さなセグメントに分割し、再生中にそれらを切り替えます。Bitmovin Video Developer Report(2025)によると、86%のストリーミングサービスがモバイルデバイスでのスムーズな再生を確保するためにABRを使用しています。

重要ポイント

  • ABR — ネットワーク状況に応じてビデオ品質を変更する適応型ビットレートストリーミング技術。
  • セグメンテーション — ビデオは2~10秒の断片に分割され、各断片は複数のビットレートで利用可能。
  • HLSとMPEG-DASH — モバイルアプリケーションにおけるABRストリーミングの主要プロトコル。
  • アルゴリズム ビットレート選択には、スループットベース、バッファベース、ハイブリッドのアプローチがある。
  • ABRはUXを向上 バッファリングを最小限に抑え、再生開始を高速化する。

Adaptive Bitrateとは?

Adaptive Bitrate(ABR)は、ビデオファイルを異なるビットレートと解像度の複数のバリアントにエンコードし、プレーヤーがリアルタイムで適切なバリアントを自動選択するメディアコンテンツのストリーミング方法です。ユーザーは現在のインターネット速度に応じて、バッファリングなしで最高の品質を得られます。

従来のプログレッシブダウンロードとは異なり、ABRはファイル全体を読み込む必要がありません。プレーヤーは希望の品質の短いセグメントを要求し、セグメント間で別のビットレートに切り替えることができます。これにより、ネットワーク速度が常に変化するモバイルアプリケーションにとって不可欠な技術となっています。

ABRの歴史

適応型ストリーミング技術は、2006年にMove NetworksがABCテレビチャンネルの放送用に初めて商業的に実装しました。2009年、AppleはHTTP Live Streaming(HLS)を発表し、HTTPベースの最初の広く採用されたABR標準となり、現在もiOSエコシステムで主流です。

2012年、MPEGはMPEG-DASH(Dynamic Adaptive Streaming over HTTP)標準を、特定のベンダーに依存しないユニバーサルABRフォーマットとしてリリースしました。DASHはすべての主要プラットフォームでサポートされており、ISOによって採用された唯一のABR標準です。

ABRの仕組み

ABRストリーミングプロセスはコンテンツ準備段階から始まります。ソースビデオは、144p、360p、720p、1080p、4Kなど、異なるビットレートの複数のバリアントにエンコードされます。各バリアントは、通常2、4、6、または10秒の均等な長さのセグメントに分割されます。

サーバー上にマニフェストファイルが作成され、利用可能なバリアント、そのビットレート、解像度、コーデック、セグメントURLが記述されます。プレーヤーはマニフェストをダウンロードして解析し、高速起動のために最低ビットレートで再生を開始します。

ABRマニフェスト構造(MPEG-DASH MPD)

xml
<!-- MPEG-DASH MPD manifest -->
<MPD profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period>
    <AdaptationSet mimeType="video/mp4">
      <Representation id="720p" bandwidth="2800000"
                     width="1280" height="720">
        <SegmentTemplate duration="4"
                        media="seg_$Number$.m4s"/>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

動的ビットレート切り替え

再生中、クライアント側のABRアルゴリズムは常にネットワーク状態とバッファ状態を監視します。帯域幅が低下した場合、プレーヤーはバッファリングを避けるためにより低いビットレートで次のセグメントを要求します。ネットワークが改善されるとビットレートが上昇します。

ビットレートの切り替えはセグメント境界で行われ、品質の変化はユーザーにとってほとんど知覚できません。最新のプレーヤーは異なるバリアント間でキーフレームを同期できるため、視覚的なアーティファクトなしで切り替えが行われます。

ABRプロトコル:HLS、MPEG-DASH、Smooth Streaming

3つの主要なABRプロトコルがストリーミングビデオ市場を支配しています:AppleのHLS、オープン標準のMPEG-DASH、MicrosoftのSmooth Streamingです。各プロトコルはマニフェスト形式、セグメンテーション方法、暗号化メカニズムを定義します。

プロトコル開発者マニフェストセグメント暗号化
HLSApple.m3u8(M3Uプレイリスト).tsまたは.fmp4AES-128、SAMPLE-AES
MPEG-DASHISO/MPEG.mpd(XML).m4sまたは.webmCENC(Common Encryption)
Smooth StreamingMicrosoft.ismc(XML、IIS).ismv / .ismaPlayReady(AES-128 CT)

HTTP Live Streaming(HLS)

HLSは最も広く普及しているABRプロトコルで、iOS、tvOS、macOSのSafariに組み込まれています。マニフェスト形式は拡張M3Uプレイリストに基づいており、マスタープレイリストには異なるビットレートと解像度のバリアントストリームへのリンクが含まれています。

各バリアントは、セグメントリストを含む独自のメディアプレイリストを参照します。HLSはスライディングウィンドウメカニズムによりライブ配信をサポートしており、古いセグメントが削除され、到着した新しいセグメントが追加されます。

MPEG-DASH

MPEG-DASHは2012年にISO/IEC 23009-1として採用された唯一のABR標準です。HLSとは異なり、DASHはXMLマニフェスト(MPD — Media Presentation Description)を使用し、特定のコンテナ形式に依存しません。fMP4、WebMなどをサポートします。

DASHは柔軟なセグメンテーションを提供します。同じストリーム内でセグメントの長さを変えることができ、レイテンシとHTTPリクエストのオーバーヘッドのバランスを最適化します。ライブ配信では、DASHはSegmentTemplateパターンをサポートします。

プロトコルのパフォーマンス比較

Bitmovinのテスト(2025)によると、HLSとDASHは起動時間とビットレート切り替え頻度において同等のパフォーマンスを示しています。HLSはハードウェアサポートによりiOSで低レイテンシを提供し、DASHはより柔軟なABRアルゴリズム設定によりAndroidで好まれています。

適応型ビットレートアルゴリズム

ABRの核心は、次にどのバリアントを要求するかを決定するビットレート選択アルゴリズムです。アルゴリズムには、スループットベース、バッファベース、ハイブリッドの3つの主要なファミリーがあります。各アプローチには長所と限界があります。

スループットベースアルゴリズム

スループットベースアルゴリズムは、以前のセグメントのダウンロード速度に基づいてネットワーク帯域幅を推定します。アルゴリズムは、測定されたスループットの80~90%を超えない最大ビットレートを選択し、変動のためのマージンを残します。

このアプローチの欠点は、短期的な速度の急上昇に対する敏感さです。セグメントダウンロード中にネットワークが急激に低下すると、スループット推定が低くなりすぎて、不必要に品質が低下します。

バッファベースアルゴリズム

バッファベースアルゴリズムは、プレーヤーのバッファ使用率に基づいて決定を行います。バッファが70%以上満たされている場合、アルゴリズムはビットレートを上げます。バッファが20%を下回った場合、バッファリングを防ぐために品質を大幅に下げます。

主な利点は、短期的なネットワーク低下時の誤った品質低下がないことです。バッファが変動を平滑化するためです。欠点は、持続的な帯域幅の変化に対する反応が遅いことです。

ハイブリッドアルゴリズムと機械学習

ExoPlayerやAVPlayerなどの最新プレーヤーは、スループット推定とバッファ状態を組み合わせたハイブリッドアルゴリズムを使用しています。ExoPlayerはデフォルトのDefaultTrackSelector ABRアルゴリズムを使用しており、両方のパラメータを考慮します。

2024~2025年には、履歴データに基づいて将来のネットワーク変化を予測するMLベースのアルゴリズムが積極的に導入されています。Netflix、YouTube、Twitchは独自の機械学習モデルを使用してビットレート選択を最適化し、切り替え回数を30~40%削減しています。

モバイルアプリケーションにおけるABR

モバイルアプリケーションは、セルラーネットワーク(4G/LTE、5G)の不安定さとデバイスの計算能力の制限により、ABRに特別な要求を課します。プレーヤーは、電力消費とデータ使用量を最小限に抑えながら、ネットワークの変化に迅速に適応する必要があります。

OpenSignal(2025)によると、都市部の平均4G速度は5~50 Mbpsの範囲で、移動中は1 Mbpsまで低下する可能性があります。ABRアルゴリズムは、トンネルやエレベーターに入る際のバッファリングを避けるために、1~2セグメント以内でビットレートを切り替える必要があります。

ExoPlayerでのABR設定(Android)

kotlin
val trackSelector = DefaultTrackSelector(context).apply {
    setParameters(buildUponParameters {
        setMaxVideoSizeSd()
        setAllowVideoMixedMimeTypeAdaptiveness(true)
        setPreferredVideoRoleFlags(
            roleFlags(C.ROLE_FLAG_DESCRIBES_VIDEO_AND_AUDIO)
        )
    })
}

val adaptiveTrackSelectionFactory =
    AdaptiveTrackSelection.Factory()
val player = ExoPlayer.Builder(context)
    .setTrackSelector(trackSelector)
    .setMediaSourceFactory(
        DashMediaSource.Factory(dataSourceFactory)
    )
    .build()

モバイルデバイス向けABR最適化

モバイルアプリケーションでは、高速な初期読み込み(最初のフレームまでの時間が2秒未満)が重要です。最も低い利用可能なビットレートで再生を開始し、バッファが満たされるにつれて品質を上げる「start-low-and-rise」戦略が推奨されます。

消費電力も重要です。ハードウェアアクセラレーションによるデコードはすべてのビットレートで使用する必要があります。古いデバイスでの高ビットレート(1080p以上)のソフトウェアデコードは、過熱とスロットリングを引き起こす可能性があります。

ABRとパフォーマンス分析

主要なABR品質メトリクス:ビットレート切り替え回数、最初のフレームまでの時間(TTFF)、総視聴時間に対する切り替え比率。QoE(品質体験)指標は、ビットレート、切り替えペナルティ、バッファリングペナルティの加重和として計算されます。

ABR監視には、プレーヤーからの分析情報(現在のビットレート、バッファサイズ、帯域幅、切り替えの数と種類)を収集することをお勧めします。このデータは、コンテンツプロバイダーが利用可能なビットレートのセットを最適化し、特定の視聴者向けにセグメンテーションを設定するのに役立ちます。

よくある質問

モバイルアプリにおけるAdaptive Bitrateとは?

Adaptive Bitrate(ABR)は、ネットワーク状況に応じてビデオ品質を動的に変更するストリーミング技術です。プレーヤーはビデオをセグメントに分割し、それぞれに最適なビットレートを選択して、モバイルデバイスでのバッファリングなしのスムーズな再生を実現します。

HLSとMPEG-DASHの違いは?

HLSはAppleのプロトコルで、M3Uプレイリストとトランスポートストリーム(.ts)を使用します。MPEG-DASHは、XMLマニフェスト(.mpd)と柔軟なセグメント形式を備えたオープンなISO標準です。HLSはiOSで最も効果的で、DASHはAndroidとWebで適しています。

ABRはビデオ品質にどのような影響を与えますか?

ABRはバッファリングを排除することで知覚品質を向上させます。ネットワークが劣化するとビデオは一時的に解像度を下げることができますが、停止することはありません。ユーザーは、一定のバッファリングがある途切れ途切れの4Kよりも、スムーズな720pビデオを好みます。

ExoPlayerではどのABRアルゴリズムが使用されていますか?

ExoPlayerは、ネットワーク帯域幅とバッファ使用率を考慮するハイブリッドアルゴリズム DefaultTrackSelectorを使用しています。AdaptiveTrackSelection.Factoryによるカスタマイズが可能なスループットベースおよびバッファベースの戦略も利用できます。

セグメンテーションはABRにどのような影響を与えますか?

セグメントの長さが適応頻度を決定します。短いセグメント(2秒)はネットワーク変化への反応が速いですが、より多くのHTTPリクエストを生成します。4~6秒のセグメントは、適応速度とオーバーヘッドのバランスが取れており、モバイルデバイスに最適です。

まとめ

  • Adaptive Bitrate — ネットワーク帯域幅に基づいてビデオ品質を動的に調整する主要なストリーミング技術。
  • HLSとMPEG-DASH — 主要なABRプロトコル。HLSはiOSで、DASHはAndroidとWebプラットフォームで主流。
  • ABRアルゴリズムはスループットベース、バッファベース、ハイブリッドに分類され、次世代MLアルゴリズムは切り替えを30~40%削減。
  • セグメンテーションにより、2~10秒の断片に分割することで、プレーヤーはユーザーに気づかれずにセグメント間でビットレートを切り替え可能。
  • モバイル最適化には高速起動(start-low-and-rise)とデコード時の消費電力の考慮が必要。
  • QoEメトリクスには切り替え回数、最初のフレームまでの時間、バッファリング頻度が含まれる。
  • ハイブリッドアルゴリズムはスループット推定とバッファ状態を組み合わせて最適なビットレートを選択。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください