支持的媒体格式

2025-11-03 22:40:38
本文档介绍了 Android 平台提供的媒体编解码器、容器和网络协议支持。 下表介绍了 Android 平台中内置的媒体格式支持。是表示该格式适用于搭载...

本文档介绍了 Android 平台提供的媒体编解码器、容器和网络协议支持。

下表介绍了 Android 平台中内置的媒体格式支持。是表示该格式适用于搭载所有 Android 版本的手持设备和平板电脑。如果指定了特定的 Android 平台,则该格式适用于搭载该版本及所有更高版本的手机构和平板电脑。此格式可能也适用于较低版本,但我们无法保证这一点。在手机和平板电脑以外的外形规格设备上,媒体格式支持情况可能会有所不同。

请注意,特定移动设备可能支持这些表格中未列出的其他格式或文件类型。此外,如果您直接使用 MediaCodec,则可以访问任何可用的媒体格式,无论支持的文件类型和容器格式如何。

音频支持

格式

编码器

解码器

文件类型容器格式

详细信息

提取器

复用器

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-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(比特率最高可达到硬件上限)。以 8000、16000 和 44100 Hz 录制原始 PCM 所需的采样率。

Vorbis

• Ogg (.ogg)

• Matroska (.mkv, Android 4.0+)

• MPEG-4 (.mp4、.m4a、Android 10 及更高版本)

• WebM (.webm)

视频支持

视频格式

格式

编码器

解码器

文件类型容器格式

详细信息

提取器

复用器

H.263

• 3GPP (.3gp)

• MPEG-4 (.mp4)

• Matroska (.mkv)

• 3GPP (.3gp)

• MPEG-4 (.mp4)

对 H.263 的支持在 Android 7.0 及更高版本中并非必需

H.264 AVCBaseline 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 AVCMain 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 开始,编码器和解码器是强制性的。

视频编码建议

下表列出了建议使用 H.264 Baseline Profile 编解码器进行播放的 Android 媒体框架视频编码配置文件和参数。同样的建议也适用于 Main Profile 编解码器,该编解码器仅在 Android 6.0 及更高版本中可用。

标清(低画质)

标清(高画质)

高清 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 媒体框架视频编码配置文件和参数。

标清(低画质)

标清(高画质)

高清 720p(在所有设备上均不适用)

高清 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 编解码器,设备实现都必须支持通过标准 Android API 在同一视频流内实时进行动态视频分辨率和帧速率切换,并且能够支持设备上每个编解码器所支持的最大分辨率。

支持杜比视界解码器的实现必须遵循以下准则:

提供具有杜比视界功能的提取器。

在设备屏幕或标准视频输出端口(如 HDMI)上正确显示HDMI)。

将向后兼容的基本层(如果存在)的轨道索引设为与组合式杜比视界层的轨道索引相同。

视频流式传输要求

对于通过 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+ 或杜比视界等其他格式。

格式

传递函数

元数据

编解码器

位元深度

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

SDR