作為一個應用程式的開發人員,你可以免費使用在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) • MPEG-4 (.mp4, .m4a) • ADTS raw AAC (.aac, 解碼:Android 3.1+, 編碼: Android 4.0+, 不支援ADIF ) • MPEG-TS (.ts, 不可定址Android 3.0+) |
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的間隔。考慮在用較小音視頻資料區塊進行交叉。