サポートされているメディア形式

このドキュメントでは、Android プラットフォームで提供されるメディア コーデック、コンテナ、ネットワーク プロトコルのサポートについて説明します。

下記の表は、Android プラットフォームに組み込まれているメディア形式のサポート状況を示しています。 YES の場合、すべての Android バージョンを搭載するハンドヘルドとタブレットで、この形式を使用できます。特定の Android プラットフォームを指定すると、そのプラットフォーム以降のすべてのバージョンを搭載したスマートフォンとタブレットで、そのプラットフォームの形式を使用できます。この形式が以前のバージョンで使用できる場合もありますが、常にこの形式を利用できるとは限りません。スマートフォンとタブレット以外のフォーム ファクタでは、サポートするメディア形式が異なる場合があります。

特定のモバイル デバイスでは、この表に記載されていない形式やファイル形式をサポートしている場合があります。また、MediaCodec を直接使用している場合は、サポートされているファイル形式やコンテナ形式に関係なく、利用可能な任意のメディア形式にアクセスできます。

オーディオ サポート

形式 エンコーダ デコーダ 詳細 ファイル形式
コンテナ形式
AAC-LC はい はい 標準サンプリング レート 8 ~ 48 kHz のモノラル/ステレオ/5.0/5.1 コンテンツをサポート。 • 3GPP(.3gp)
• MPEG-4(.mp4、.m4a)
• ADTS raw AAC(.aac、Android 3.1 以降でデコード、Android 4.0 以降でエンコード、ADIF 非対応)
• MPEG-TS(.ts、シーク不可、Android 3.0 以降)
HE-AACv1(AAC+) Android 4.1 以降 はい
HE-AACv2(Enhanced AAC+)   はい 標準サンプリング レート 8 ~ 48 kHz のステレオ/5.0/5.1 コンテンツをサポート。
xHE-AAC   Android 9 以上 標準サンプリング レート 8 ~ 48 kHz で最大 8 チャンネルのコンテンツをサポート
AAC-ELD(Enhanced Low Delay AAC) Android 4.1 以降 Android 4.1 以降 標準サンプリング レート 16 ~ 48 kHz のモノラル/ステレオ コンテンツをサポート
AMR-NB はい はい 8 kHz でサンプリングされた 4.75~12.2 kbps。 • 3GPP(.3gp)
• AMR(.amr)
AMR-WB はい はい 16 kHz でサンプリングされた、6.60~23.85 kbps の 9 種類のレート。
FLAC Android 4.1 以降 Android 3.1 以降 モノラル / ステレオ(マルチチャンネルはサポート対象外)。サンプルレートは最大 48 kHz(ただし、出力が 44.1 kHz のデバイスでは、48 kHz から 44.1 kHz へのダウンサンプラーにローパス フィルタが含まれないため、最大 44.1 kHz を推奨)。16 ビットを推奨(24 ビットにはディザが適用されない) • FLAC(.flac)
• MPEG-4(.mp4、.m4a、Android 10 以降)
MIDI   はい MIDI タイプ 0 と 1。DLS バージョン 1 と 2。XMF と Mobile XMF。着信音形式 RTTTL/RTX、OTA、iMelody をサポート。 • タイプ 0 と 1(.mid、.xmf、.mxmf)
• RTTTL/RTX(.rtttl、.rtx)
• OTA(.ota)
• iMelody(.imy)
MP3   はい モノラル / ステレオの 8~320 Kbps 固定ビットレート(CBR)または可変ビットレート(VBR)。 • MP3(.mp3)
• MPEG-4(.mp4、.m4a、Android 10 以降)
• Matroska(.mkv、Android 10 以降)
Opus Android 10 以上 Android 5.0 以降 • Ogg(.ogg)
• Matroska(.mkv)
PCM(WAVE) Android 4.1 以降 はい 8 ビットと 16 ビットのリニア PCM(最大レートはハードウェアの上限値)。Raw PCM 録音のサンプリング レート(8,000、16,000、44,100 Hz)。 WAVE(.wav)
Vorbis   はい   • Ogg(.ogg)
• Matroska(.mkv、Android 4.0 以降)
• MPEG-4(.mp4、.m4a、Android 10 以降)

動画のサポート

動画形式

形式 エンコーダ デコーダ 詳細 ファイル形式
コンテナ形式
H.263 はい はい Android 7.0 以降では H.263 のサポートはオプション。 • 3GPP(.3gp)
• MPEG-4(.mp4)
• Matroska(.mkv)
H.264 AVC
Baseline Profile(BP)
Android 3.0 以上 はい • 3GPP(.3gp)
• MPEG-4(.mp4)
• MPEG-TS(.ts、AAC 音声のみ、シーク不可、Android 3.0 以降)
• Matroska(.mkv)
H.264 AVC
Main Profile(MP)
Android 6.0 以降 はい デコーダは必須。エンコーダは推奨。
H.265 HEVC Android 5.0 以降 モバイル デバイスでは Main Profile Level 3。Android TV では Main Profile Level 4.1。 • MPEG-4(.mp4)
• Matroska(.mkv)
MPEG-4 SP   はい   3GPP(.3gp)
VP8 Android 4.3 以降 Android 2.3.3 以降 Android 4.0 以降でのみストリーミング可能。 WebM(.webm)
• Matroska(.mkv、Android 4.0 以降)
VP9 Android 4.4 以降 WebM(.webm)
• Matroska(.mkv)
AV1 Android 14 以降 Android 10 以上 Android 14 以降では、エンコーダとデコーダは必須となります。 • MPEG-4(.mp4)
• Matroska(.mkv)

動画エンコードに関する推奨値

次の表に、H.264 ベースライン プロファイル コーデックを使用した再生に推奨される Android メディア フレームワークの動画エンコード プロファイルとパラメータを示します。これと同じ推奨事項が、Android 6.0 以降でのみ使用可能なメイン プロファイル コーデックにも適用されます。

  SD(低画質) SD(高画質) HD 720p(すべてのデバイスで N/A)
動画の解像度 176 x 144 ピクセル 480 x 360 ピクセル 1,280 x 720 ピクセル
動画のフレームレート 12 fps 30 fps 30 fps
動画のビットレート 56 Kbps 500 Kbps 2 Mbps
オーディオ コーデック AAC-LC AAC-LC AAC-LC
オーディオ チャンネル 1(モノラル) 2(ステレオ) 2(ステレオ)
オーディオ ビットレート 24 Kbps 128 Kbps 192 Kbps

下記の表に、VP8 メディア コーデックを使用した再生で推奨される Android メディア フレームワークの動画エンコード プロファイルとパラメータを示します。

  SD(低画質) SD(高画質) HD 720p(すべてのデバイスで N/A) HD 1080p(すべてのデバイスで N/A)
動画の解像度 320 x 180 ピクセル 640 x 360 ピクセル 1,280 x 720 ピクセル 1,920 x 1,080 px
動画のフレームレート 30 fps 30 fps 30 fps 30 fps
動画のビットレート 800 Kbps 2 Mbps 4 Mbps 10 Mbps

動画デコードに関する推奨値

デバイス実装は、VP8、VP9、H.264、H.265 のすべてのコーデックについて、デバイス上の各コーデックがサポートする最大解像度まで、同じストリーム内の標準の Android API を通じて、動的な動画解像度とフレームレートの切り替えをサポートしなければなりません。

ドルビービジョン デコーダをサポートする実装は、次のガイドラインに沿う必要があります。

  • ドルビー ビジョン対応エクストラクタを提供する。
  • ドルビー ビジョンのコンテンツをデバイスの画面や標準の動画出力ポート(例:HDMI)に適切に表示しなければなりません。
  • 下位互換性のあるベースレイヤ(存在する場合)のトラック インデックスを、結合したドルビー ビジョンレイヤのトラック インデックスと同じに設定します。

動画ストリーミングの要件

HTTP または RTSP でストリーミングされる動画コンテンツには、以下の追加要件があります。

  • 3GPP および MPEG-4 コンテナの場合、moov アトムは mdat アトムよりも前になければなりませんが、ftyp アトムの後にする必要があります。
  • 3GPP、MPEG-4、WebM コンテナの場合、同じ時間オフセットに対応する音声サンプルと動画サンプルの間隔は 500 KB 以下にしてください。 このオーディオと動画の隔たりを最小限に抑えるには、オーディオと動画を小さなチャンクサイズでインターリーブすることをおすすめします。

画像のサポート

形式 エンコーダ デコーダ 詳細 ファイル形式
コンテナ形式
BMP   はい   BMP(.bmp)
GIF   はい   GIF(.gif)
JPEG はい はい ベースラインとプログレッシブ JPEG(.jpg)
PNG はい はい   PNG(.png)
WebP Android 4.0 以降
可逆圧縮: Android 10 以降
透明性: Android 4.2.1 以降
Android 4.0 以降
可逆圧縮: Android 4.2.1 以降
透明性: Android 4.2.1 以降
Android 10 では、品質 100 を使用して、可逆エンコードを実現できます。 WebP(.webp)
HEIF   Android 8.0 以降   HEIF(.heic、.heif)
AVIF(ベースライン プロファイル) Android 14 以降 Android 14 以降 Android 14 以降では、エンコーダとデコーダは必須となります。 AVIF(.avif)

ネットワーク プロトコル

オーディオと動画の再生では、以下のネットワーク プロトコルがサポートされています。

  • RTSP(RTP、SDP)
  • HTTP / HTTPS プログレッシブ ストリーミング
  • HTTP/HTTPS のライブ ストリーミングのドラフト プロトコル:
    • MPEG-2 TS メディア ファイルのみ
    • プロトコル バージョン 3(Android 4.0 以降)
    • プロトコル バージョン 2 Android 3.x
    • Android 3.0 未満はサポート対象外

注: HTTPS は Android 3.1 未満ではサポートされていません。

HDR 動画形式

OEM は、Android HDR アーキテクチャを使用して任意の HDR 形式を有効にできます。Android HDR アーキテクチャは、HDR 形式の中核的な要件である 10 ビットバッファ、メタデータ(静的 / 動的、なし)、転送関数、色空間の処理を提供します。

デベロッパーにとって一貫性を確保し、主要な HDR ユースケースに対応するために、OEM は HDR をサポートするデバイスでいくつかの基本形式をサポートするよう求めています。

  • 映画のストリーミングなど、プロ仕様のコンテンツの再生には HDR10 が必要です。
  • ユーザー作成コンテンツのキャプチャと再生では、Android デバイス全体で一貫したエクスペリエンスを提供するために、HLG10 が必要です。

HDR サポートを追加する OEM は、これらの形式をサポートする必要がありますが、HDR10+ やドルビー ビジョンなどの追加形式もサポートできます。

形式 伝達関数 メタデータ コーデック ビット深度
HLG10 HLG × HVEC 10 ビット
HDR10 前四半期 静的 HVEC 10 ビット
HDR10+ 前四半期 静的 HVEC 10 ビット
ドルビー ビジョン 8.4 HLG 動的 HVEC 10 ビット

形式処理に関する推奨事項

キャプチャ形式 アップロード形式 提供形式
HLG アプリ バックエンドでの HDR HLG サポート HDR(HLG)をサポートするデバイス:

HLG

デバイスが HDR に対応している(HLG は PQ のみに対応):

SDR(バックエンドでの HLG から SDR へのトーンマップ)

HDR をサポートしていないデバイス: SDR(バックエンドでの HLG から SDR へのトーンマップ)

ユースケース 2: ネイティブ カメラのキャプチャまたはユーザーのギャラリーからのインポート(アプリのバックエンドは HDR をサポート)

キャプチャ形式 アップロード形式 提供形式
HLG HLG アプリ内キャプチャのユースケースと同じ
HDR10+ HLG

Transformer API を使用したアップロード前の HDR10+(PQ)から HLG へのトーン マップ

アプリ内キャプチャのユースケースと同じ
ディスプレイ&ビデオ 8.4 HLG

(DV8.4 は HLG を使用し、ビットストリームは HLG として動作するため、トーン マッピングは不要です)。

アプリ内キャプチャのユースケースと同じ

ユースケース 3: アプリ バックエンドが HDR をサポートしていない

キャプチャ形式 アップロード形式 提供形式
すべての形式 SDR

Transformer API を使用したアップロード前の HLG から SDR へのトーンマップ

SDR