支援的媒體格式

本文說明 Android 平台提供的媒體編碼器、容器和網路通訊協定支援功能。

下表說明 Android 平台內建的媒體格式支援功能。如果是「是」,表示該格式適用於搭載所有 Android 版本的手持裝置和平板電腦。如果指定特定 Android 平台,則該格式適用於搭載該版本和所有後續版本的手機和平板電腦。這類格式也可能適用於較舊版本,但我們無法保證。在手機和平板電腦以外的板型規格上,媒體格式支援情況可能有所不同。

請注意,特定行動裝置可能支援這些表格中未列出的其他格式或檔案類型。此外,如果您直接使用 MediaCodec,無論支援的檔案類型和容器格式為何,您都可以存取任何可用的媒體格式。

音訊支援

格式 編碼器 解碼器 檔案類型容器格式 詳細說明
擷取器 Muxer
AAC LC • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS 原始 AAC (.aac,不支援 ADIF)
• MPEG-TS (.ts,無法尋找,Android 3.0 以上版本)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS 原始 AAC (.aac,不支援 ADIF)
• MPEG-TS (不確定) (.ts,無法尋找,Android 3.0 以上版本)
支援單聲道/立體聲/5.0/5.1 內容,取樣率為 8 到 48 kHz 的標準值。
HE-AACv1 (AAC+) Android 4.1 以上版本
HE-AACv2 (增強型 AAC+)   支援立體聲/5.0/5.1 內容,取樣率為 8 到 48 kHz 的標準值。
xHE-AAC   Android 9 以上版本 支援最多 8 聲道內容,取樣率為 8 到 48 kHz 的標準取樣率
AAC ELD (增強型低延遲 AAC) Android 4.1 以上版本 Android 4.1 以上版本 支援單聲道/立體聲內容,取樣率為 16 到 48 kHz 的標準取樣率
AMR-NB • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4.75 至 12.2 kbps,取樣頻率為 8 kHz
AMR-WB 9 個速率,從 6.60 kbit/s 到 23.85 kbit/s,取樣率為 16 kHz
FLAC Android 4.1 以上版本 Android 3.1 以上版本 • FLAC (.flac)
• MPEG-4 (.mp4、.m4a、Android 10 以上版本)
• Matroska (.mkv)
單聲道/立體聲 (不支援多聲道)。取樣率最高可達 48 kHz (但建議在 44.1 kHz 輸出的裝置上使用 44.1 kHz,因為 48 到 44.1 kHz 的降採樣器不包含低通濾波器)。建議使用 16 位元;24 位元不套用抖動。
MIDI   • 類型 0 和 1 (.mid、.xmf、.mxmf)
• RTTTL/RTX (.rtttl、.rtx)
• OTA (.ota)
• iMelody (.imy)
MIDI 類型 0 和 1。DLS 1 和 2 版。XMF 和 Mobile XMF。支援的鈴聲格式包括 RTTTL/RTX、OTA 和 iMelody
MP3   • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10 以上版本)
• Matroska (.mkv, Android 10 以上版本)
單聲道/立體聲 8-320 Kbps 固定位元率 (CBR) 或可變位元率 (VBR)
Opus Android 10 以上版本 Android 5.0 以上版本 • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
WebM (.webm)
PCM/WAVE Android 4.1 以上版本 WAVE (.wav) 8 位元和 16 位元線性 PCM (速率上限為硬體限制)。原始 PCM 錄音的取樣率為 8000、16000 和 44100 Hz。
Vorbis   • Ogg (.ogg)
• Matroska (.mkv,Android 4.0 以上版本)
• MPEG-4 (.mp4、.m4a,Android 10 以上版本)
WebM (.webm)  

影片支援

影片格式

格式 編碼器 解碼器 檔案類型容器格式 詳細說明
擷取器 Muxer
H.263 • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
在 Android 7.0 以上版本中,支援 H.263 是選用功能
H.264 AVC
Baseline Profile (BP)
Android 3.0+ • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts,僅限 AAC 音訊,無法跳轉,Android 3.0 以上版本)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
Main Profile (MP)
Android 6.0 以上版本 解碼器為必要元件,編碼器則為建議元件。
H.265 HEVC Android 5.0 以上版本 • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) 行動裝置適用的 Main Profile Level 3,以及 Android TV 適用的 Main Profile Level 4.1
MPEG-4 SP   • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3 以上版本 Android 2.3.3 以上版本 WebM (.webm)
• Matroska (.mkv,Android 4.0 以上版本)
WebM (.webm) 僅適用於 Android 4.0 以上版本
VP9 Android 4.4 以上版本 WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
WebM (.webm)
AV1 Android 14 以上版本 Android 10 以上版本 • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) 自 Android 14 起,編碼器和解碼器皆為必備項目。
APV Android 16 以上版本 Android 16 以上版本 • MPEG-4 (.mp4) • MPEG-4 (.mp4) 自 Android 16 起,編碼器和解碼器皆為必備項目。

影片編碼建議

下表列出 Android 媒體架構視訊編碼設定檔,以及建議使用 H.264 基準設定檔轉碼器時的參數。同樣的建議也適用於主設定檔轉碼器,但該轉碼器僅適用於 Android 6.0 以上版本。

  SD (低畫質) SD (高畫質) HD 720p (所有裝置均不適用)
影片解析度 176 x 144 像素 480 x 360 像素 1280 x 720 像素
影片影格速率 12 fps 30 fps 30 fps
視訊位元率 56 Kbps 500 Kbps 2 Mbps
音訊轉碼器 AAC-LC AAC-LC AAC-LC
音訊頻道 1 (單聲道) 2 (立體聲) 2 (立體聲)
音訊位元率 24 Kbps 128 Kbps 192 Kbps

下表列出 Android 媒體架構影片編碼設定檔,以及建議使用 VP8 媒體編解碼進行播放的參數。

  SD (低畫質) SD (高畫質) HD 720p (所有裝置均不適用) HD 1080p (不適用於所有裝置)
影片解析度 320 x 180 像素 640 x 360 像素 1280 x 720 像素 1920 x 1080 像素
影片影格速率 30 fps 30 fps 30 fps 30 fps
視訊位元率 800 Kbps 2 Mbps 4 Mbps 10 Mbps

影片解碼建議

裝置實作必須支援動態影片解析度和影格速率切換功能,並透過相同串流中的標準 Android API 即時處理所有 VP8、VP9、H.264 和 H.265 轉碼器,且最高可達裝置上每個轉碼器支援的最高解析度。

支援 Dolby Vision 解碼器的實作方式必須遵循下列規範:

  • 提供支援 Dolby Vision 的擷取器。
  • 在裝置螢幕或標準影片輸出埠 (例如 HDMI)。
  • 將向後相容的基礎層 (如有) 的軌道索引設為與合併的 Dolby Vision 層的軌道索引相同。

影片串流規定

對於透過 HTTP 或 RTSP 串流的影片內容,我們有額外規定:

  • 對於 3GPP 和 MPEG-4 容器,moov 原子必須位於任何 mdat 原子之前,但必須位於 ftyp 原子之後。
  • 對於 3GPP、MPEG-4 和 WebM 容器,音訊和影片樣本對應的時間偏移差距不得超過 500 KB。 為盡量減少音訊/視訊偏移,建議您以較小的區塊大小交錯音訊和視訊。

圖片支援

格式 編碼器 解碼器 詳細說明 檔案類型
容器格式
BMP     BMP (.bmp)
GIF     GIF (.gif)
JPEG 基本 + 漸進式 JPEG (.jpg)
PNG   PNG (.png)
WebP Android 4.0 以上版本
無損:Android 10 以上版本
透明:Android 4.2.1 以上版本
Android 4.0 以上版本
無損:Android 4.2.1 以上版本
透明:Android 4.2.1 以上版本
在 Android 10 上,使用品質 100 可達到無損編碼。 WebP (.webp)
HEIF   Android 8.0 以上版本   HEIF (.heic; .heif)
AVIF (基準設定檔) Android 14 以上版本 Android 14 以上版本 自 Android 14 起,編碼器和解碼器皆為必備項目。 AVIF (.avif)

網路通訊協定

音訊和影片播放支援下列網路通訊協定:

  • 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。

HDR 影片格式

原始設備製造商 (OEM) 可以使用 Android HDR 架構啟用所選 HDR 格式,該架構可提供 HDR 格式的核心需求:10 位元緩衝區、中繼資料 (靜態、動態和無)、傳遞函數和色彩空間處理。

為確保開發人員的一致性,並解決 HDR 的主要用途,我們要求原始設備製造商在支援 HDR 的裝置上支援幾種基本格式:

  • 如要播放專業內容 (例如串流電影),則必須使用 HDR10。
  • 針對使用者產生的內容擷取和播放作業,我們要求 HLG10 在 Android 裝置上提供一致的體驗。

新增 HDR 支援功能的原始設備製造商 (OEM) 必須支援這些格式,但也可以支援 HDR10+ 或 Dolby Vision 等其他格式。

格式 轉移函式 中繼資料 轉碼器 位元深度
HLG10 HLG HEVC 10 位元
HDR10 PQ 靜態 HEVC 10 位元
HDR10+ PQ 靜態 HEVC 10 位元
Dolby Vision 8.4 HLG 動態 HEVC 10 位元

格式處理建議

擷取格式 上傳格式 提交格式
HLG 應用程式後端支援 HDR HLG 支援 HDR (HLG) 的裝置:

HLG

裝置支援 HDR (不支援 HLG,僅支援 PQ):

SDR (後端從 HLG 到 SDR 的色調對應)

不支援 HDR 的裝置:SDR (後端從 HLG 轉換為 SDR 的色調對應)

用途 2:使用原生相機拍攝或從使用者的相片庫匯入 (應用程式後端支援 HDR)

擷取格式 上傳格式 提交格式
HLG HLG 與應用程式內拍攝用途相同
HDR10+ HLG

使用轉換器 API 上傳前,將 HDR10+ (PQ) 轉換為 HLG

與應用程式內拍攝用途相同
DV8.4 HLG

(DV8.4 使用 HLG,因此位元串流會以 HLG 的形式運作,因此不需要進行色調對應)

與應用程式內拍攝用途相同

用途 3:應用程式後端不支援 HDR

擷取格式 上傳格式 提交格式
不限格式 SDR

使用轉換器 API 上傳前,將色調對應表從 HLG 轉換為 SDR

標準動態範圍