Supported media formats (支持的媒体格式)
GitHub 链接
译: https://developer.android.com/guide/topics/media/media-formats
media codec(媒体编解码器)
container(容器)
network protocol support(网络协议支持)
本文档描述了 Android 平台提供的 media codec、container 和 network protocol support。
作为应用程序开发人员,您可以使用任何 Android 设备上提供的任何 media codec,包括 Android 平台提供的设备和 device-specific 的设备。但是,最佳做法是使用与设备无关的媒体编码配置文件。
下表描述了 Android 平台内置的媒体格式支持。不保证在所有 Android 平台版本上都可用的 codec 会在括号中注明,例如:(Android 3.0+)。请注意,任何给定的移动设备都可能支持表中未列出的其他格式或文件类型。
Android Compatibility Definition 中的 Section 5 指定了设备必须支持的媒体格式,以便与 Android 8.1 兼容。
Audio support
Audio formats and codecs
Format/Codec | Encoder | Decoder | Details | Supported File Type(s) / Container Formats |
---|---|---|---|---|
AAC LC | • | • | Support for mono/stereo/5.0/5.1 content with standard sampling rates from 8 to 48 kHz. | • 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+) |
待续 | 待续 | 待续 | 待续 | 待续 |
注: 表格暂时都不全,可去官网查看。
Video support
Video formats and codecs
Format/Codec | Encoder | Decoder | Details | Supported File Type(s) / Container Formats |
---|---|---|---|---|
H.263 | • | • | Support for H.263 is optional in Android 7.0+ | • 3GPP (.3gp) • MPEG-4 (.mp4) |
待续 | 待续 | 待续 | 待续 | 待续 |
Video encoding recommendations
The table below lists the Android media framework video encoding profiles and parameters recommended for playback using the H.264 Baseline Profile codec. The same recommendations apply to the Main Profile codec, which is only available in Android 6.0 and later.
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 |
Video decoding recommendations(视频解码建议)
设备实现必须支持动态视频分辨率和帧速率切换,通过同一流中的标准 Android API 实时为所有 VP8,VP9,H.264 和 H.265 编解码器提供支持,并达到每个设备编解码器支持的最大分辨率。
支持 Dolby Vision 解码器的实现必须遵循以下准则:
- 提供支持杜比视界的提取器。
- 在设备屏幕或标准视频输出端口(例如 HDMI)上正确显示 Dolby Vision 内容。
- 将向后兼容的基础库(如果存在)的 track index 设置为与杜比视觉层的 track idnex 相同。
Video Streaming requirements (视频流要求)
对于通过 HTTP 或 RTSP 流式传输的视频内容,还有其他要求:
- 对于 3GPP 和 MPEG-4 containers,
moov atom
必须在任何mdat atom
之前,但必须接替ftyp atom
。 - For 3GPP,MPEG-4,和 WebM containers,对应于相同时间偏移的音频和视频样本可以相隔不超过 500KB。为了最大限度地减少音频/视频漂移,请考虑以较小的块大小交错音频和视频。
Image support
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+) | WebP (.webp) | |
HEIF | • (Android 8.0+) | HEIF (.heic; .heif) |
Network protocols
音频和视频播放支持以下网络协议:
- RTSP(RTP,SDP)
- HTTP/HTTPS progressive streaming
- HTTP/HTTPS live streaming draft protocol:
- MPEG-2 TS media files only
- Protocol version 3 (Android 4.0 and above)
- Protocol version 2 (Android 3.x)
- Not supported before Android 3.0
Note: HTTPS is not supported before Android 3.1