本文档介绍了Android平台提供支持的媒体编解码器,封装和网络协议。
作为应用开发人员,您可以随意使用任何Android设备上可用的任何媒体编解码器,包括Android平台提供的媒体编解码器和特定于设备的设备。 但是,使用与设备无关的媒体编码配置文件是最佳做法。
一、网络协议
音频和视频播放支持以下网络协议:
1、RTSP(RTP,SDP)协议
2、HTTP / HTTPS渐进式流协议
3、HTTP / HTTPS实时流草案协议:
1)、仅MPEG-2 TS媒体文件
2)、协议版本3(Android 4.0及更高版本)
3)、协议版本2(Android 3.x)
4)、Android 3.0之前不支持
注意:Android 3.1之前不支持HTTPS。
二、核心媒体格式
下表介绍了Android平台内置的媒体格式支持。 请注意,任何给定的移动设备可能会为表中未列出的其他格式或文件类型提供支持。
注意:在所有Android平台版本上不能保证可用的媒体编解码器因此在括号中注明,例如“(Android 3.0+)”
一)、音频格式和编解码器支持
| Format / Codec | Encoder | Decoder | Details | Supported File Type(s) / Container Formats |
|---|---|---|---|---|
| AAC LC | • | • | 支持标准采样率为8至48 kHz的单声道/立体声/ 5.0 / 5.1内容。 | • 3GPP (.3gp) • MPEG-4 (.mp4, .m4a) • ADTS raw AAC (.aac, decode in Android 3.1+, encode in Android 4.0+, ADIF not supported) • MPEG-TS (.ts, not seekable, 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 | • | • | 在8kHz下采样4.75至12.2 kbps | 3GPP (.3gp) |
| AMR-WB | • | • | 在16kHz下采样率为6.60 kbit / s至23.85 kbit / s | 3GPP (.3gp) |
| FLAC | • (Android 3.1+) | 单声道/立体声(无多声道)。采样率高达48千赫(但到44.1kHz的建议与44.1kHz的输出设备,如48到44.1千赫下采样器不包括一个低通滤波器)。 16位推荐; 没有抖动应用于24位。 | FLAC (.flac) only | |
| MIDI | • | MIDI类型0和1. DLS版本1和2.XMF和Mobile XMF。 | • 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(速率高达硬件限制)。 8000,16000和44100 Hz的原始PCM录音采样率。 | WAVE (.wav) |
| Vorbis | • | • Ogg (.ogg) • Matroska (.mkv, Android 4.0+) |
二)、视频格式和编解码器支持
| Format / Codec | Encoder | Decoder | Details | Supported File Type(s) / Container Formats |
|---|---|---|---|---|
| H.263 | • | • | • 3GPP (.3gp) • MPEG-4 (.mp4) | |
| H.264 AVC | • (Android 3.0+) | • | Baseline Profile (BP) | • 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, AAC audio only, not seekable, Android 3.0+) |
| H.265 HEVC | • (Android 5.0+) | Main Profile Level 3 for mobile devices and Main Profile Level 4.1 for Android TV | • MPEG-4 (.mp4) | |
| MPEG-4 SP | • | 3GPP (.3gp) | ||
| VP8 | • (Android 4.3+) | • (Android 2.3.3+) | Streamable only in Android 4.0 and above | • WebM (.webm) • Matroska (.mkv, Android 4.0+) |
| VP9 | • (Android 4.4+) | • WebM (.webm) • Matroska (.mkv, Android 4.0+) |
三)、图像格式和编解码器支持
| Format / Codec | Encoder | Decoder | Details | Supported File Type(s) / Container Formats |
|---|---|---|---|---|
| BMP | • | BMP (.bmp) | ||
| GIF | • | GIF (.gif) | ||
| JPEG | • | • | Base+progressive | JPEG (.jpg) |
| PNG | • | • | PNG (.png) | |
| WebP | • (Android 4.0+) (Lossless, Transparency, Android 4.2.1+) | • (Android 4.0+) (Lossless, Transparency, Android 4.2.1+) |
三、视频编码建议
下表列出了Android媒体框架支持在H.264基线配置文件编解码器中播放的视频编码配置文件和参数的示例。
| SD (Low quality) | SD (High quality) | HD 720p (N/A on all devices) | |
|---|---|---|---|
| Video resolution | 176 x 144 px | 480 x 360 px | 1280 x 720 px |
| Video frame rate | 12 fps | 30 fps | 30 fps |
| Video bitrate | 56 Kbps | 500 Kbps | 2 Mbps |
| Audio codec | AAC-LC | AAC-LC | AAC-LC |
| Audio channels | 1 (mono) | 2 (stereo) | 2 (stereo) |
| Audio bitrate | 24 Kbps | 128 Kbps | 192 Kbps |
下表列出了Android媒体框架支持在VP8媒体编解码器中播放的视频编码配置文件和参数的示例。
| SD (Low quality) | SD (High quality) | HD 720p (N/A on all devices) | HD 1080p (N/A on all devices) | |
|---|---|---|---|---|
| Video resolution | 320 x 180 px | 640 x 360 px | 1280 x 720 px | 1920 x 1080 px |
| Video frame rate | 30 fps | 30 fps | 30 fps | 30 fps |
| Video bitrate | 800 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
除了这些编码参数建议之外,设备的可用录像配置文件可以用作媒体播放功能的代理。 这些配置文件可以使用CamcorderProfile类进行检查,该级别自API级别为8可用。
对于通过HTTP或RTSP流式传输的视频内容,还有其他要求:
1、对于3GPP和MPEG-4封装,moov原子必须在任何mdat原子之前,但必须成功的ftyp原子。
2、对于3GPP,MPEG-4和WebM封装,对应于相同时间偏移的音频和视频样本可以不超过500KB。 为了最小化这种音频/视频漂移,请考虑以较小的块大小交织音频和视频。
本文详细介绍了Android平台上支持的媒体编解码器、封装格式及网络协议。内容覆盖了音频、视频和图像的编解码器支持情况,并提供了针对不同媒体格式的编码建议。
660

被折叠的 条评论
为什么被折叠?



