このドキュメントでは、Android プラットフォームで提供されるメディア コーデック、コンテナ、ネットワーク プロトコルのサポートについて説明します。
下記の表は、Android プラットフォームに組み込まれているメディア形式のサポート状況を示しています。 YES の場合、すべての Android バージョンを搭載するハンドヘルドとタブレットで、この形式を使用できます。特定の Android プラットフォームを指定すると、そのプラットフォーム以降のすべてのバージョンを搭載したスマートフォンとタブレットで、そのプラットフォームの形式を使用できます。この形式が以前のバージョンで使用できる場合もありますが、常にこの形式を利用できるとは限りません。スマートフォンとタブレット以外のフォーム ファクタでは、サポートするメディア形式が異なる場合があります。
特定のモバイル デバイスでは、この表に記載されていない形式やファイル形式をサポートしている場合があります。また、MediaCodec を直接使用している場合は、サポートされているファイル形式やコンテナ形式に関係なく、利用可能な任意のメディア形式にアクセスできます。
オーディオ サポート
形式 | エンコーダ | デコーダ | 詳細 | ファイル形式 コンテナ形式 |
---|---|---|---|---|
AAC-LC | はい | はい | 標準サンプリング レート 8 ~ 48 kHz のモノラル/ステレオ/5.0/5.1 コンテンツをサポート。 |
• 3GPP(.3gp) • 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 |