Android开发者指南(12) —— Android Supported Media Formats
前言
本章内容为开发者指南(Dev Guide)/Appendix/Android Supported Media Formats,版本为Android3.1 r1,翻译来自:"jackeylu",欢迎大家访问他的博客:"http://jackeylu.wordpress.com/",再次感谢"jackeylu" !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。
原文
http://developer.android.com/guide/appendix/media-formats.html
本文档描述了Android平台支持的媒体播放解码器、网络协议。
作为一名应用软件开发者,你可以自由使用平台上的媒体解码器,这些编解码可以是平台提供,或者是特定设备支持。然而,最好习惯于使用媒体编码配置信息使得应用软件代码编写能够与具体硬件无关。
网络协议(Network Protocols)
可以支持下述网络协议音视频的播放:
* 实时流传输协议RTSP (实时传输协议RTP, 会话描述协议SDP)
* Http流式传输(译者注:串流传输分两种:progressive streaming和real time streaming。progressive好处是透过HTTP来传输,品质较好,只能单点播送(Unitcast),参见文章这里。)
* HTTP Live Streaming协议(Android 3.0及以上) (译者注:HTTP Live Streaming最初是由苹果公司针对其iPhone、iPod、iTouch和iPad等移动设备而开发的流媒体协议,点这里下载。)
注意:暂时不支持HTTPS
媒体格式(Core Media Formats)
下表列出了Android平台内置支持的媒体格式。请注意,任何一种移动设备都有可能提供更多的不在表中的格式支持。
注意:具体的媒体编解码不一定在所有的Android平台版本上都支持,相应的会通过括号标注出来,例如”(Android 3.0+)”
类型 | 格式 /编码 | 编码器 | 解码器 | 详细说明 | 支持文件类型 / 容器格式 |
Audio | AAC LC/LTP | • | • | 单声道/立体声 满足各种标准比特率组合,最高可达160kbsp,采样率从8到48kHz | 3GPP (.3gp) and MPEG-4 (.mp4, .m4a). No support for raw AAC (.aac) |
HE-AACv1 (AAC+) |
| • | |||
HE-AACv2 (enhanced AAC+) |
| • | |||
AMR-NB | • | • | 4.75 to 12.2 kbps sampled @ 8kHz | 3GPP (.3gp) | |
AMR-WB | • | • | 9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16kHz | 3GPP (.3gp) | |
MP3 |
| • | 单声道/立体声 8-320kbps常数(CBR)或可变比特率(VBR) | MP3 (.mp3) | |
MIDI |
| • | 0和1的MIDI类型。DLS版本1和2。XMF和移动XMF。支持铃声格式RTTTL/RTX, OTA, and iMelody。 | Type 0 and 1 (.mid, .xmf, .mxmf). Also RTTTL/RTX (.rtttl, .rtx), OTA (.ota), and iMelody (.imy) | |
Ogg Vorbis |
| • |
| Ogg (.ogg) | |
PCM/WAVE |
| • | 8和16位线性PCM(速率受硬件限制) | WAVE (.wav) | |
Image | JPEG | • | • | Base+progressive | JPEG (.jpg) |
GIF |
| • |
| GIF (.gif) | |
PNG | • | • |
| PNG (.png) | |
BMP |
| • |
| BMP (.bmp) | |
Video | H.263 | • | • |
| 3GPP (.3gp) and MPEG-4 (.mp4) |
H.264 AVC | • | • | Baseline Profile (BP)(译者注:H.264 Baseline Profile压缩算法,参见这里) | 3GPP (.3gp) and MPEG-4 (.mp4) | |
MPEG-4 SP |
| • |
| 3GPP (.3gp) |
视频编码建议(Video Encoding Recommendations)
表二列出了Android媒体播放框架支持的视频编码配置和参数的例子。除了这些推荐的编码参数,设备支持的视频录像配置信息可以通过代理获得媒体回放功能参数。这些配置信息可以通过API级别8开始加入的CamcorderProfile
类来得到。
表二:支持视频编码配置和参数的例子
| 低质量 | 高质量 |
Video codec | H.264 Baseline Profile | H.264 Baseline Profile |
视频分辨率 | 176 x 144 px | 480 x 360 px |
视频帧速率 | 12 fps | 30 fps |
视频比特率 | 56 Kbps | 500 Kbps |
音频编码 | AAC-LC | AAC-LC |
音频通道(声道) | 1 (单声道) | 2(立体声) |
音频比特率 | 24 Kbps | 128 Kbps |
对于通过HTTP或RTSP传输视频数据还有额外要求:
* 对于3GPP和MPEG-4,moov单元必须先于任何mdat原子。
* 对于3GPP、MPEG-4和WebM,音频和视频对应在同一时间偏差可能不到500KB就分开。为了尽量减少这种音频/视频偏差,可以考虑较小的在较小的块中交叉音频和视频。