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

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

以下の表に、Android プラットフォームに組み込まれているメディア形式のサポートについて説明します。「YES」は、すべての Android バージョンを搭載したハンドヘルドとタブレットでフォーマットが利用できることを意味します。特定の Android プラットフォームが指定されている場合、そのバージョン以降のバージョンを搭載したハンドセットとタブレットでそのフォーマットを利用できます。この形式は以前のバージョンでも使用できる可能性がありますが、保証はされません。ハンドセットやタブレット以外のフォーム ファクタでは、メディア フォーマットのサポートが異なる場合があります。

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

オーディオ サポート

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

動画のサポート

動画形式

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

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

次の表に、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 10 以降
(MediaCodec または HeifWriter 経由。Bitmap.compress には含まれません)
Android 9.0 以降 デバイスは省略可。8 ビットのサポートについては、ImageDecoder.isMimeTypeSupported("image/heif") をご覧ください。10 ビット デコードには、オプションの HEVC Main10 プロファイルが必要です。 HEIF(.heic、.heif)
AVIF(ベースライン プロファイル) Android 14 以降
(MediaCodec 経由、Bitmap.compress には含まれません)
Android 12 以上 8 ビット デコードは Android 12 以降でサポートされています。10 ビット デコードは任意です。ImageDecoder.isMimeTypeSupported("image/avif") で 10 ビット サポートを確認してください(false の場合でも、8 ビットは引き続き動作します)。 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 形式を有効にできます。このアーキテクチャは、HDR 形式のコアニーズである 10 ビットバッファ、メタデータ(静的、動的、なし)、伝達関数、カラースペース処理を提供します。

デベロッパーの整合性を確保し、HDR の主なユースケースに対応するため、HDR をサポートするデバイスでは、OEM がいくつかの基本形式をサポートすることが求められます。

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

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

形式 伝達関数 メタデータ コーデック ビット深度
HLG10 HLG いいえ HEVC 10 ビット
HDR10 PQ 静的 HEVC 10 ビット
HDR10+ PQ 静的 HEVC 10 ビット
ドルビー ビジョン 8.4 HLG 動的 HEVC 10 ビット

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

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

HLG

デバイスが HDR をサポートしている(HLG はサポートせず PQ のみ):

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

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

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

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

アップロード前に、トランスフォーマー API を使用して HDR10+(PQ)から HLG にトーン マップする

アプリ内キャプチャのユースケースと同じ
DV8.4 HLG

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

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

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

キャプチャ形式 元のアップロード形式 配信形式
すべての形式 SDR

トランスフォーマー API を使用して、アップロード前に HLG から SDR にトーン マッピングする

SDR