支援的媒體格式

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

下表說明 Android 平台內建的媒體格式支援。「是」表示此格式可在搭載所有 Android 版本的手持裝置和平板電腦上使用。指定特定 Android 平台時,此格式適用於執行該版本和所有較新版本的手機和平板電腦。這些格式可能也能在舊版中使用,但不保證一定如此。在手機和平板電腦以外的板型規格上,媒體格式支援可能會有所不同。

請注意,特定行動裝置可能支援未列於這些表格的額外格式或檔案類型。此外,如果您直接使用 MediaCodec,則可以存取任何可用的媒體格式,而不受支援的檔案類型和容器格式影響。

音訊支援

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

影片支援

影片格式

格式 編碼器 解碼器 詳細說明 檔案類型
容器格式
H.263 Android 7.0 以上版本視需要支援 H.263 • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
H.264 AVC
基準設定檔 (BP)
Android 3.0+ • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts,僅限 AAC 音訊,不支援可搜尋,Android 3.0 以上版本)
• Matroska (.mkv)
H.264 AVC
主要設定檔 (MP)
Android 6.0 以上版本 必須使用解碼器,建議使用編碼器。
H.265 HEVC Android 5.0 以上版本 行動裝置的主要設定檔層級 3,Android TV 的主要設定檔層級 4.1 • MPEG-4 (.mp4)
• Matroska (.mkv)
MPEG-4 SP     3GPP (.3gp)
VP8 Android 4.3 以上版本 Android 2.3.3 以上版本 僅適用於 Android 4.0 以上版本中的串流功能 WebM (.webm)
• Matroska (.mkv、Android 4.0 以上版本)
VP9 Android 4.4 以上版本 WebM (.webm)
• Matroska (.mkv)
AV1 Android 14 以上版本 Android 10 以上版本 從 Android 14 開始,就必須使用編碼器和解碼器。 • MPEG-4 (.mp4)
• Matroska (.mkv)

影片編碼建議

下表列出使用 H.264 基準設定檔轉碼器播放的 Android 媒體架構影片編碼設定檔和參數。相同的建議適用於主要設定檔轉碼器,僅適用於 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

下表列出使用 VP8 媒體轉碼器播放時建議使用的 Android 媒體架構影片編碼設定檔和參數。

  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 的擷取器。
  • 在裝置螢幕或標準視訊輸出通訊埠中正確顯示 Dolby Vision 內容 (例如HDMI)。
  • 將回溯相容基本圖層 (如有) 的軌跡索引設定為與合併的 Dolby Vision 層軌跡索引相同。

影片串流規定

透過 HTTP 或 RTSP 串流的影片內容還有額外規定:

  • 如果是 3GPP 和 MPEG-4 容器,moov Atom 必須在任何 mdat Atom 之前,但必須成功執行 ftyp Atom。
  • 如為 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 用途,我們要求原始設備製造商 (OEM) 在支援 HDR 的裝置上支援幾種基本格式:

  • 串流電影等專業級的內容必須採用 HDR10 播放模式。
  • 為了讓使用者產生的內容擷取及播放,我們要求 HLG10 要求在各種 Android 裝置上提供一致的體驗。

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

格式 Transfer 函式 中繼資料 編碼器 位元深度
HLG10 HLG 空調 10 位元
HDR10 PQ 靜態 空調 10 位元
HDR10+ PQ 靜態 空調 10 位元
Dolby Vision 8.4 HLG 動態 空調 10 位元

格式處理建議

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

HLG

裝置支援 HDR (未支援 HLG 僅支援 PQ):

SDR (從後端的 HLG 將對應關係對應至 SDR)

不支援 HDR 的裝置:SDR (從後端的 HLG 將對應設為 SDR)

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

擷取格式 上傳格式 放送格式
HLG HLG 與應用程式內擷取用途相同
HDR10+ HLG

使用 Transformer API 上傳前,從 HDR10+ (PQ) 到 HLG 的色調映射

與應用程式內擷取用途相同
DV8.4 HLG

(DV8.4 使用 HTTP 即時串流 (HLG) 和位元串流會以 HLG 運作,因此無須進行色調對應)

與應用程式內擷取用途相同

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

擷取格式 上傳格式 放送格式
不限格式 SDR

使用 transformer API 上傳前,從 HLG 到 SDR 的色調對應

標準動態範圍