Android支持的媒體格式

本文介紹媒體的編解碼器、容器和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)
• 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的間隔。考慮在用較小音視頻數據塊進行交叉。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。