本文件說明 Android 平台提供的媒體轉碼器、容器和網路通訊協定支援。
下表說明 Android 平台內建的媒體格式支援。是 表示此格式適用於搭載所有 Android 版本的手持裝置和平板電腦。如已指定特定 Android 平台,則該格式適用於執行該版本的手機和平板電腦,以及所有較新版本。此格式可能適用於較舊版本,但不保證一定如此。手機和平板電腦以外的板型規格支援可能有所不同。
請注意,特定行動裝置可能支援這些表格中未列出的其他格式或檔案類型。此外,如果直接使用 MediaCodec,則無論支援的檔案類型和容器格式為何,您都可以存取任何可用的媒體格式。
音訊支援
格式 | 編碼器 | 解碼器 | 詳細說明 | 檔案類型 容器格式 |
---|---|---|---|---|
AAC LC | 是 | 是 | 支援單聲道/立體聲/5.0/5.1 內容,並提供 8 至 48 kHz 的標準取樣率。 |
• 3GPP (.3gp) • 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 英寸內容,標準取樣率介於 8 至 48 kHz | ||
AAC ELD (加強型低延遲 AAC) | Android 4.1 以上版本 | Android 4.1 以上版本 | 支援單聲道/立體聲內容 標準取樣率介於 16 至 48 kHz | |
AMR-NB | 是 | 是 | 取樣 4.75 至 12.2 kbps @ 8kHz |
• 3GPP (.3gp) • AMR (.amr) |
AMR-WB | 是 | 是 | 9 個取樣率從 6.60 kbit/s 至 23.85 kbit/s (取樣 16kHz) | |
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 (.rtttl、.rtx) • OTA (.ota) • iMelody (.imy) |
|
MP3 | 是 | 單聲道/立體聲 8-320 Kbps 常數 (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 以上版本) |
影片支援
影片格式
格式 | 編碼器 | 解碼器 | 詳細說明 | 檔案類型 容器格式 |
---|---|---|---|---|
標題 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 (僅限 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) |
影片編碼建議
下表列出 Android 媒體架構影片編碼設定檔,以及使用 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 |
影片解碼建議
裝置實作作業必須能在同一個串流中,針對所有 VP8、VP9、H.264 和 H.265 轉碼器即時進行動態影片解析度和畫面更新切換,並支援裝置上各個轉碼器支援的最高解析度。
支援 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 等其他格式。
格式 | 轉移函式 | 中繼資料 | 編碼器 | 位元深度 |
---|---|---|---|---|
HTTP 即時串流 | HLG | 否 | 暖通空調 | 10 位元 |
HDR10 | PQ | 靜態 | 暖通空調 | 10 位元 |
HDR10+ | PQ | 靜態 | 暖通空調 | 10 位元 |
Dolby Vision 8.4 | HLG | 動態 | 暖通空調 | 10 位元 |
格式處理建議
擷取格式 | 上傳格式 | 放送格式 |
HLG | 應用程式後端支援 HDR HLG | 支援 HDR (HLG) 的裝置: HLG 裝置支援高動態範圍 (非 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 使用 HLG,而位元串流的行為會與 HLG 相同,因此不需要進行色調對應) |
與應用程式內擷取用途相同 |
用途 3:應用程式後端不支援 HDR
擷取格式 | 上傳格式 | 放送格式 |
不限格式 | SDR
使用 Transformer 的 API 上傳前,先從 HLG 到 SDR 的色調映射 |
標準動態範圍 |