記事ディレクトリ
序文
このドキュメントでは、Android プラットフォームで提供されるメディア コーデック、コンテナ、およびネットワーク プロトコルのサポートについて説明します。(グーグルドキュメントより抜粋)
アプリケーション開発者は、任意の Android デバイスで利用可能な任意のメディア コーデックを使用できます (Android プラットフォームが提供するメディア コーデックやデバイス固有のメディア コーデックを含む)。ただし、ベスト プラクティスは、デバイスに依存しないメディア エンコーディング プロファイルを使用することです。
次の表では、Android プラットフォームに組み込まれているメディア形式のサポートについて説明します。すべての Android プラットフォーム バージョンで使用できることが保証されていないコーデックは、括弧内に示されています (例: (Android 3.0 以降))。特定のモバイル デバイスは、この表に記載されていない他の形式またはファイル タイプをサポートしている可能性があることに注意してください。
Android 互換性定義のセクション 5 では、Android 8.1 との互換性を保つためにデバイスがサポートする必要があるメディア形式を指定しています。
1.音声サポート
オーディオ形式とコーデック
フォーマット/コーデック | エンコーダー | デコーダ | 詳細 | サポートされているファイルの種類/コンテナー形式 |
---|---|---|---|---|
AACLC | • | • | モノ/ステレオ/5.0/5.1 コンテンツをサポートし、標準サンプル レートは 8 ~ 48 kHz です。 | • 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 (拡張 AAC+) | • | ステレオ/5.0/5.1 コンテンツは、8 ~ 48 kHz の標準サンプル レートでサポートされます。 | ||
AAC ELD (拡張低レイテンシー AAC) | • (Android 4.1 以降) |
• (Android 4.1 以降) |
16 ~ 48 kHz の標準サンプル レートでモノラル/ステレオ コンテンツをサポート | |
AMR-NB | • | • | 4.75~12.2kbps、サンプリングレート8kHz | 3GPP (.3gp) |
AMR-WB | • | • | 16 kHz のサンプル レートで 9 ビット レート (6.60 ~ 23.85 kbit/s の間) の選択 | 3GPP (.3gp) |
フラック | • (Android 4.1 以降) |
• (Android 3.1 以降) |
モノ/ステレオ (マルチチャンネルではありません)。最大 48 kHz のサンプリング レートが可能です (ただし、44.1 kHz の出力を持つデバイスの場合、48 ~ 44.1 kHz のダウンサンプラーにはローパス フィルターが含まれていないため、44.1 kHz を超えることは推奨されません)。16 ビットが推奨されます。24 ビットの場合、ディザリングは適用されません。 | FLAC (.flac) のみがサポートされています |
GSM | • | Android は電話デバイスでの GSM デコードをサポートしています | GSM (.gsm) | |
ミディ | • | MIDI タイプ 0 および 1。DLS バージョン 1 および 2。XMF とモバイル 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) | |
オーパス | • (Android 5.0 以降) |
マトロスカ (.mkv) | ||
PCM/ウェーブ | • (Android 4.1 以降) |
• | 8 ビットおよび 16 ビットのリニア PCM (ハードウェア上限までのビットレート)。生の PCM を 8000、16000、および 44100 Hz で録音するために必要なサンプリング レート。 | ウェーブ (.wav) |
ヴォルビス | • | • Ogg (.ogg) • Matroska (.mkv、Android 4.0 以降) |
2. ビデオサポート
ビデオ形式とコーデック
フォーマット/コーデック | エンコーダー | デコーダ | 詳細 | サポートされているファイルの種類/コンテナー形式 |
---|---|---|---|---|
H.263 | • | • | Android 7.0 以降では H.263 のサポートは必要ありません | • 3GPP (.3gp) • MPEG-4 (.mp4) |
H.264 AVC ベースライン プロファイル (BP) |
• (Android 3.0 以降) |
• | • 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts、AAC オーディオのみ、シーク不可、Android 3.0 以降) |
|
H.264 AVC メイン プロファイル (MP) |
• (Android 6.0 以降) |
• | デコーダーが必要で、エンコーダーが推奨されます。 | |
H.265 HEVC | • (Android 5.0 以降) |
モバイル用のメイン プロファイル レベル 3 および Android TV 用のメイン プロファイル レベル 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 及更高版本中可用。
标清(低画质) | 标清(高画质) | 高清 720p(在所有设备上均不适用) | |
---|---|---|---|
视频分辨率 | 176 x 144 像素 | 480 x 360 像素 | 1280 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 媒体框架视频编码配置文件和参数。
标清(低画质) | 标清(高画质) | 高清 720p(在所有设备上均不适用) | 高清 1080p(在所有设备上均不适用) | |
---|---|---|---|---|
视频分辨率 | 320 x 180 像素 | 640 x 360 像素 | 1280 x 720 像素 | 1920 x 1080 像素 |
视频帧速率 | 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 Atom 必须位于任何 mdat Atom 之前,但必须位于 ftyp Atom 之后。
- 对于 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 之前的版本中不支持