Android支持的媒體格式
本文譯自:http://developer.android.com/guide/appendix/media-formats.html#recommendations
本文介紹媒體的編解碼器、容器和Android平臺所支持的網絡協議。
作為一個應用程序的開發者,你可以免費使用在Android設備上有效的任何格式的媒體編解碼器,包括由Android平臺和設備特殊提供的編解碼器。但是,最好的做法是使用設備無關的媒體編碼配置文件。
網絡協議
以下是音視頻播放所支持的網絡協議:
1. RTSP(RTP、SDP)
2. HTTP/HTTPS實時流
3. HTTP/HTTPS Live Streaming草案協議:
只針對MPEG-2 TS流媒體媒體文件;
協議版本3(Android4.0以上)
協議版本2(Android3.x)
Android3.0以前不支持
注:在Android3.1之前不支持HTTPS。
核心媒體格式
下表介紹了Android平臺內置的它所支持的媒體的格式。注意:任意給定的移動設備都可以提供這個列表中沒有列出的另外的媒體格式的支持。
注:這些媒體的編解碼并不保證在所有的Android平臺上都是有效的,要注意括號中的注釋---例如“(Android3.0+)”
表1.核心媒體格式和編解碼支持
類型 |
格式/編解碼器 |
編碼器 |
解碼器 |
詳細 |
支持的文件類型/容器、格式 |
Audio |
AAC LC/LTP |
? |
? |
用標準的高達160kbps的位率和8到48kHZ的采樣頻率來任意組合的單聲道/立體聲內容。 |
? 3GPP (.3gp) |
HE-AACv1 (AAC+) |
|
? |
|||
HE-AACv2 (enhanced AAC+) |
|
? |
|||
AMR-NB |
? |
? |
用8kHz來采樣的4.75到12.2kbps的位流 |
3GPP (.3gp) |
|
AMR-WB |
? |
? |
用16kHz來采樣的6.6kbit/s到23.85kbit/s的位流 |
3GPP(.3gp) |
|
FLAC |
|
? (Android3.1+) |
單聲道或立體聲(沒有多聲道)。采樣率上限到48kHz(推薦在設備上使用上限為44.1kHZ,因為48到44.1之間的采樣率不包含低通濾波)。采樣大小推薦使用16位,24位的采樣大小適用于無抖動場合。 |
只有FLAC(.flac) |
|
MP3 |
|
? |
單聲道或立體聲 8-320Kbps固定(CBR)或可變(VBR)播放速率 |
MP3(.mp3) |
|
MIDI |
|
? |
MIDI類型0和1. DLS版本1和2. XMF和移動XMF。 支持鈴聲格式:RTTTL/RTX,OTA,iMelody |
1. 類型0和1(.mid,xmf,mxmf) 2. RTTTL/RTX(.rtttl,rtx) 3. OTA(.ota) 4. iMelody(.imy) |
|
Vorbis |
|
? |
|
1. Ogg(.ogg) 2. Matroska(.mkv,Android4.0+) |
|
PCM/WAVE |
|
? |
8位和16位PCM(采樣率上限受硬件限制) |
WAVE(.wav) |
|
Image |
JPEG |
? |
? |
基本+實時 |
JPEG(.jpg) |
GIF |
|
? |
|
GIF(.gif) |
|
PNG |
? |
? |
|
PNG(.png) |
|
BMP |
|
? |
|
BMP(.bmp) |
|
WEBP |
? (Android4.0+) |
? (Android4.0+) |
|
WebP(.webp) |
|
Video |
H.263 |
? |
? |
|
1. 3GPP(.3gp) 2. MPEG-4(.mp4) |
H.264 AVC |
? (Android3.0+) |
? |
Baseline Profile(BP) |
1. 3GPP(.3gp) 2. MPEG-4(.mp4) 3. PEG-TS(.ts,只有AAC音頻,不能尋址,Android3.0+) |
|
MPEG-4 SP |
|
? |
|
3GPP(.3gp) |
|
VP8 |
|
? (Android2.3.3+) |
只有在Android4.0以上才能夠被流化 |
1. WebM(.webm) 2. Matroska(.mkv, Android4.0+) |
視頻編碼建議
下表2列出了 Android媒體框架做支持的視頻編碼的Profile和參數的示例。除了這些編碼參數的建議,設備可用的視頻錄制Profile能夠被用作媒體播放能 力的代理。這些Profile能夠使用API Level 8以后的CamcorderProfile類來檢查。
表2.被支持的視頻編碼參數的示例
|
SD(低品質) |
SD(高品質) |
HD(不是所有設備都可用) |
Video codec |
H.264 Baseline Profile |
H.264 Baseline Profile |
H.264 Baseline Profile |
Video resolution |
176 x 144px |
480 x 360px |
1280 x 720px |
Video frame rate |
12fps |
30fps |
30fps |
Video bitrate |
56Kbps |
500Kbps |
2Mbps |
Audio codec |
AAC-LC |
AAC-LC |
AAC-LC |
Audio channels |
1(mono) |
2(stereo) |
2(stereo) |
Audio bitrate |
24Kbps |
128Kbps |
192Kbps |
對于HTTP或RTSP之上的被流化的視頻內容,還有一些額外的需求:
1. 對于3GPP和MPEG-4容器,moov原子必須先于任何mdat原子,而必須要讓ftyp原子成功。
2. 對于3GPP,MPEG-4和WebM容器,音視頻采樣所對應的相同時間偏移不能超過500KB的間隔。考慮在用較小音視頻數據塊進行交叉。