本文档描述了Android平台提供的媒体编解码器,容器和网络协议支持。 作为应用程序开发人员,您可以使用任何Android设备上提供的任何媒体编解码器,包括Android平台提供的设备和特定于设备的设备。但是,最佳做法是使用与设备无关的媒体编码配置文件。
下表描述了Android平台内置的媒体格式支持。不保证在所有Android平台版本上都可用的编解码器在括号中注明,例如:(Android 3.0+)。请注意,任何给定的移动设备都可能支持表中未列出的其他格式或文件类型。 Android兼容性定义的第5部分指定设备必须支持的媒体格式才能与Android 8.1兼容。。
音频支持
音频格式和编解码器
格式/编解码器 | 编码器 | 解码器 | 细节 | 支持的文件类型/容器格式 |
---|---|---|---|---|
AAC LC | 支持单声道/立体声/ 5.0 / 5.1内容,标准采样率为8至48 kHz | •3GPP(.3gp) •MPEG-4(.mp4,.m4a) •ADTS原始AAC(.aac,在Android 3.1+中解码,在Android 4.0 +中编码,不支持ADIF) •MPEG-TS(.ts,不可搜索,Android 3.0+) |
||
HE-AACv1 (AAC+) | (Android 4.1+) | 支持单声道/立体声/ 5.0 / 5.1内容,标准采样率为8至48 kHz | •3GPP(.3gp) •MPEG-4(.mp4,.m4a) •ADTS原始AAC(.aac,在Android 3.1+中解码,在Android 4.0 +中编码,不支持ADIF) •MPEG-TS(.ts,不可搜索,Android 3.0+) |
|
HE-AACv2 (enhanced AAC+) | 支持立体声/ 5.0 / 5.1内容,标准采样率为8至48 kHz。 | •3GPP(.3gp) •MPEG-4(.mp4,.m4a) •ADTS原始AAC(.aac,在Android 3.1+中解码,在Android 4.0 +中编码,不支持ADIF) •MPEG-TS(.ts,不可搜索,Android 3.0+) |
||
AAC ELD (enhanced low delay AAC) | (Android 4.1+) | (Android 4.1+) | 支持单声道/立体声内容,标准采样率为16至48 kHz | •3GPP(.3gp) •MPEG-4(.mp4,.m4a) •ADTS原始AAC(.aac,在Android 3.1+中解码,在Android 4.0 +中编码,不支持ADIF) •MPEG-TS(.ts,不可搜索,Android 3.0+) |
AMR-NB | 在8kHz下采样4.75到12.2kbps | 3GPP (.3gp) | ||
AMR-WB | 在16kHz下采样的速率从6.60 kbit / s到23.85 kbit / s | 3GPP (.3gp) | ||
FLAC | (Android 4.1+) | (Android 3.1+) | 单声道/立体声(没有多声道)。采样率高达48 kHz(但对于44.1 kHz输出的设备,建议高达44.1 kHz,因为48至44.1 kHz的下采样器不包括低通滤波器)。推荐16位;没有抖动适用于24位。 | FLAC (.flac) only |
GSM | Android支持电话设备上的GSM解码 | GSM(.gsm) | ||
MIDI | MIDI类型0和1. DLS版本1和2. XMF和移动XMF。支持铃声格式RTTTL / RTX,OTA和iMelody | • Type 0 and 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
||
MP3 | 单声道/立体声8-320Kbps恒定(CBR)或可变比特率(VBR) | MP3 (.mp3) | ||
Opus | (Android 5.0+) | Matroska (.mkv) | ||
PCM/WAVE | (Android 4.1+) | 8位和16位线性PCM(速率高达硬件限制)。原始PCM记录的采样率为8000,16000和44100 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 audio only, not seekable, Android 3.0+) |
||
H.264 AVC Main Profile (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媒体框架视频编码配置文件和参数。相同的建议适用于主要配置文件编解码器,仅在Android 6.0及更高版本中可用。
SD(低质量) | SD(高品质) | HD 720p(所有设备均为N / A) | |
---|---|---|---|
视频分辨率 | 176 x 144 px | 480 x 360 px | 1280 x 720 px |
视频帧率 | 12 fps | 30 fps | 30 fps |
视频比特率 | 56 Kbps | 500 Kbps | 2 Mbps |
音频编解码器 | AAC-LC | AAC-LC | AAC-LC |
音频频道 | 1 (mono) | 2 (stereo) | 2 (stereo) |
音频比特率 | 24 Kbps | 128 Kbps | 192 Kbps |
下表列出了使用VP8媒体编解码器建议播放的Android媒体框架视频编码配置文件和参数。
SD(低质量) | SD(高品质) | HD 720p(所有设备均为N / A) | 高清1080p(所有设备均为N / A) | |
---|---|---|---|---|
视频分辨率 | 320 x 180 px | 640 x 360 px | 1280 x 720 px | 1920 x 1080 px |
视频帧率 | 30 fps | 30 fps | 30 fps | 30 fps |
视频比特率 | 800 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
设备实现必须支持动态视频分辨率和帧速率切换,通过同一流中的标准Android API实时为所有VP8,VP9,H.264和H.265编解码器提供支持,并达到在该设备下的每个编解码器支持的最大分辨率。
支持Dolby Vision解码器的实现必须遵循以下准则:
- 提供支持杜比视界的提取器。
- 在设备屏幕或标准视频输出端口(例如HDMI)上正确显示Dolby Vision内容。
- 将向后兼容的基础层(如果存在)的轨道索引设置为与组合的杜比视觉层的轨道索引相同。
视频流要求
对于通过HTTP或RTSP流式传输的视频内容,还有其他要求:
- 对于3GPP和MPEG-4容器,moov原子必须在任何mdat原子之前,但必须接替ftyp原子。
- 对于3GPP,MPEG-4和WebM容器,对应于相同时间偏移的音频和视频样本可以相隔不超过500KB。为了最大限度地减少音频/视频漂移,请考虑以较小的块大小交错音频和视频。
图像支持
格式/编解码器 | 编码器 | 解码器 | 细节 | 支持的文件类型/容器格式 |
---|---|---|---|---|
BMP | BMP (.bmp) | |||
GIF | GIF (.gif) | |||
JPEG | JPEG (.jpg) | |||
PNG | PNG (.png) | |||
WebP | (Android 4.0+) (Lossless, Transparency, Android 4.2.1+) |
(Android 4.0+) (Lossless, Transparency, 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之前不支持
[本章完...]