本文描述了Android平臺提供的媒體編解碼器、容器和網路協議支援。
作為應用程式開發人員,您可以使用任何可以在任何Android裝置上使用的媒體編解碼器,包括Android平臺提供的媒體編解碼器和特定於裝置的媒體編解碼器。然而,使用與裝置無關的媒體編碼配置檔案是一種最佳實踐。
下表描述了Android平臺中內建的媒體格式支援。不保證在所有Android平臺版本上都可用的編解碼器在括號中註明,例如:(Android 3.0+)。注意,任何給定的移動裝置都可能支援表中沒有列出的其他格式或檔案型別。
Android相容性定義的第5節指定了裝置必須支援的媒體格式,以便與Android 8.1相容。
音訊的支援
音訊格式和編解碼器
視訊支援
視訊格式和編解碼器
視訊編碼的建議
下表列出了使用H.264基準配置檔案編解碼器播放推薦的Android media framework視訊編碼概要和引數。同樣的建議也適用於主配置檔案編解碼器,它只在Android 6.0或更高版本中可用。
下表列出了使用VP8媒體編解碼器播放推薦的Android media framework視訊編碼概要和引數。
視訊解碼的建議
裝置實現必須支援在同一流中通過標準Android api對所有VP8、VP9、H.264和H.265編解碼器實時進行動態視訊解析度和幀速率切換,並達到裝置上每個編解碼器支援的最大解析度。
支援杜比視覺解碼器的實現必須遵循以下準則:
- 提供一個杜比視覺的提取器。
- 在裝置螢幕或標準視訊輸出埠(如HDMI)上正確顯示杜比視覺內容。
- 設定後向相容基層的軌道索引(如果存在)與合併的杜比視覺層的軌道索引相同。
視訊流的需求
對於通過HTTP或RTSP傳輸的視訊內容,還有其他要求:
- 對於3GPP和MPEG-4容器,
moov
原子必須先於任何mdat
原子,但必須繼承ftyp
原子。 - 對於3GPP、MPEG-4和WebM容器,相同時間偏移對應的音訊和視訊樣本之間的間隔可能不超過500 KB。為了儘量減少這種音訊/視訊漂移,考慮將音訊和視訊交錯在較小的塊大小。
影象支援
網路協議
以下網路協議支援音訊和視訊播放:
RTSP(RTP,SDP) HTTP / HTTPS順序流 HTTP/HTTPS直播協議草案:
- 僅MPEG-2 TS媒體檔案
- 協議版本3 (Android 4.0及以上版本)
- 協議版本2 (Android 3.x)
- Android 3.0之前不支援
注意:Android 3.1之前不支援HTTPS。