前言html
本章内容为开发者指南(Dev Guide)/Appendix/Android Supported Media Formats,版本为Android3.1 r1,翻译来自:"jackeylu",欢迎你们访问他的博客:" http://jackeylu.wordpress.com/",再次感谢"jackeylu" !期待你一块儿参与翻译Android的相关资料,联系我over140@gmail.com。
原文app
http://developer.android.com/guide/appendix/media-formats.html框架
本文档描述了Android平台支持的媒体播放解码器、网络协议。ide
做为一名应用软件开发者,你能够自由使用平台上的媒体解码器,这些编解码能够是平台提供,或者是特定设备支持。然而,最好习惯于使用媒体编码配置信息使得应用软件代码编写可以与具体硬件无关。wordpress
网络协议(Network Protocols)ui
能够支持下述网络协议音视频的播放:编码
* 实时流传输协议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
类型 |
格式 /编码 |
编码器 |
解码器 |
详细说明 |
支持文件类型 /容器格式 |
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) |
媒体格式(Core Media Formats)
下表列出了Android平台内置支持的媒体格式。请注意,任何一种移动设备都有可能提供更多的不在表中的格式支持。
注意:具体的媒体编解码不必定在全部的Android平台版本上都支持,相应的会经过括号标注出来,例如”(Android 3.0+)”
视频编码建议(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就分开。为了尽可能减小这种音频/视频误差,能够考虑较小的在较小的块中交叉音频和视频。