作為一個應用開發者,你可以免費使用Android裝置支援的任何多媒體編解碼器,包括Android系統提供的和裝置特有的。但是,使用裝置無關的多媒體編碼配置是最佳的。
網絡協定
以下網絡協定都支援音頻和視訊播放:
- RTSP (RTP, SDP)
- HTTP/HTTPS progressive streaming
- HTTP/HTTPS live streaming draft protocol
- MPEG-2 TS media files only
- Protocol version 3 (Android 4.0 and above)
- Protocol version 2 (Android 3.x)
- Not supported before Android 3.0
注意:HTTPS在Android3.1之前是不支援的
核心多媒體格式
下表展示了Android系統内置支援的多媒體格式,任何移動裝置都可能支援該表格以外的其他格式或者檔案類型。
注意: 不保證在所有的Android平台上都支援的那些多媒體編解碼器都用括号将支援的平台标注出來了。例如:(Android 3.0+)
表1 核心格式和編解碼器支援
(吐槽:用MarkDown畫這個大表格太痛苦了,截圖之)
視訊編碼推薦
下面的表格2列出了Android Media架構原生支援的視訊編碼配置和參數。除了這些編碼參數推薦,通過一個裝置的可用的視訊錄制(格式)配置,可以一窺該裝置的多媒體播放能力,這些配置能夠使用 CamcorderProfile類來得到。(API level8以上)。
表2:
- | SD (低品質) | SD (高品質) | HD (不一定都支援) |
---|---|---|---|
視訊編解碼 | H.264 Baseline Profile | H.264 Baseline Profile | H.264 Baseline Profile |
視訊分辨率 | 176 x 144 px | 480 x 360 px | 1280 x 720 px |
視訊幀率 | 12 fps | 30 fps | 30 fps |
視訊比特率 | 56 Kbps | 500 Kbps | 2 Mbps |
音頻編解碼 | AAC-LC | AAC-LC | AAC-LC |
音頻聲道 | 1 (mono) | 2 (stereo) | 2 (stereo) |
音頻比特率 | 24 Kbps | 128 Kbps | 192 Kbps |
對于通過HTTP或者RTSP傳輸的視訊流,有如下額外的要求:
- For 3GPP and MPEG-4 containers, the moov atom must precede any mdat atoms, but must succeed the ftyp atom.
- For 3GPP, MPEG-4, and WebM containers, audio and video samples corresponding to the same time offset may be no more than 500 KB apart. To minimize this audio/video drift, consider interleaving audio and video in smaller chunk sizes.