このドキュメントでは、Android プラットフォームがサポートするメディア コーデック、コンテナ、ネットワーク プロトコルについて説明します。
アプリ デベロッパーは、Android 搭載デバイスで利用可能なメディア コーデックであれば、Android プラットフォームで提供されるもの、デバイス固有のものなど、どれでも使用できます。 ただし、デバイスに依存しないメディア エンコード プロファイルの使用をおすすめします。
以下の表で、Android プラットフォームが組み込みでサポートしているメディア形式について説明します。一部の Android プラットフォーム バージョンでのみ使用が保証されているコーデックについては、「(Android 3.0 以降)」のように、かっこ内に注釈を入れてあります。なお、どのモバイル デバイスも、この表に載っていないメディア形式やファイルタイプをサポートしている可能性があります。
Android 互換性定義のセクション 5 には、Android 8.1 との互換性のためにデバイスがサポートしなければならないメディア形式が示されています。
オーディオのサポート
オーディオの形式とコーデック
形式 / コーデック | エンコーダ | デコーダ | 詳細 | サポートされているファイル形式とコンテナ形式 |
---|---|---|---|---|
AAC-LC | • | • | 標準サンプリング レート 8~48 kHz のモノラル / ステレオ / 5.0 / 5.1 コンテンツをサポート。 |
• 3GPP(.3gp) |
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 未満ではサポートされていません。