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

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

アプリ デベロッパーは、Android 搭載デバイスで利用可能なメディア コーデックであれば、Android プラットフォームで提供されるもの、デバイス固有のものなど、どれでも使用できます。 ただし、デバイスに依存しないメディア エンコード プロファイルの使用をおすすめします

以下の表で、Android プラットフォームが組み込みでサポートしているメディア形式について説明します。一部の Android プラットフォーム バージョンでのみ使用が保証されているコーデックについては、「(Android 3.0 以降)」のように、かっこ内に注釈を入れてあります。なお、どのモバイル デバイスも、この表に載っていないメディア形式やファイルタイプをサポートしている可能性があります。

Android 互換性定義のセクション 5 には、Android 8.1 との互換性のためにデバイスがサポートしなければならないメディア形式が示されています。

オーディオのサポート

オーディオの形式とコーデック

形式 / コーデック エンコーダ デコーダ 詳細 サポートされているファイル形式とコンテナ形式
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 コンテンツをサポート。
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-WB 16 kHz でサンプリングされた、6.60~23.85 kbps の 9 種類のレート。 3GPP(.3gp)
FLAC
(Android 4.1 以降)

(Android 3.1 以降)
モノラル / ステレオ(マルチチャンネルはサポート対象外)。サンプルレートは最大 48 kHz(ただし、出力が 44.1 kHz のデバイスでは、48 kHz から 44.1 kHz のダウンサンプラーにローパス フィルタが含まれないため、最大 44.1 kHz を推奨)。16 ビットを推奨(24 ビットにはディザが適用されない)。 FLAC(.flac)のみ
GSM   Android は、電話通信デバイスでの GSM デコードをサポート。 GSM(.gsm)
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)
Opus
(Android 5.0 以降)
Matroska(.mkv)
PCM(WAVE)
(Android 4.1 以降)
8 ビットと 16 ビットのリニア PCM(最大レートはハードウェアの上限値)。Raw PCM 録音のサンプリング レートは、8,000 Hz、16,000 Hz、44,100 Hz。 WAVE(.wav)
Vorbis     • Ogg(.ogg)
• Matroska(.mkv、Android 4.0 以降)

動画のサポート

動画の形式とコーデック

形式 / コーデック エンコーダ デコーダ 詳細 サポートされているファイル形式とコンテナ形式
H.263 Android 7.0 以降では H.263 のサポートはオプション。 • 3GPP(.3gp)
• MPEG-4(.mp4)
H.264 AVC
Baseline Profile(BP)

(Android 3.0 以降)
• 3GPP(.3gp)
• MPEG-4(.mp4)• MPEG-TS(.ts、AAC オーディオのみ、シーク不可、Android 3.0 以降)
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)
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、Android 4.0 以降)

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

次の表に、H.264 Baseline Profile コーデックを使用した再生で推奨される Android メディア フレームワークの動画エンコード プロファイルとパラメータを示します。Main Profile コーデック(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 ピクセル
動画のフレームレート 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 4.2.1 以降)

(Android 4.0 以降)
(可逆圧縮、透明度、Android 4.2.1 以降)
  WebP(.webp)
HEIF  
(Android 8.0 以降)
  HEIF(.heic、.heif)

ネットワーク プロトコル

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

  • 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 未満ではサポートされていません。