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

  作为应用程序开发人员,您可以使用任何Android设备上可用的任何媒体编解码器,包括由Android平台提供的媒体编解码器和特定于设备的媒体编解码器。但是,最好使用与设备无关的媒体编码配置文件。

下表描述了安卓平台内置的媒体格式支持。

  不能保证在所有Android平台版本上都可用的编解码器在括号中注明,例如:(Android 3.0+)。请 注意,任何给定的移动设备都可能支持表中未列出的其他格式或文件类型。

  Android兼容性定义的第5节规定了设备必须支持的与Android 8.1兼容的媒体格式。

音频支持

格式/编码格式

编码器

解码器

详细

支持的文件类型和格式容器范围

AAC LC

支持单声道/立体声/5.0/5.1内容,标准采样率为8至48 kHz。

• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, decode in Android 3.1+, encode in Android 4.0+, ADIF not supported)
• MPEG-TS (.ts, not seekable, Android 3.0+)

HE-AACv1 (AAC+)


(Android 4.1+)

HE-AACv2 (enhanced AAC+)

 

支持立体声/5.0/5.1内容,标准采样率为8至48 kHz。

AAC ELD (enhanced low delay AAC)


(Android 4.1+)


(Android 4.1+)

支持标准采样率为16至48 kHz的单声道/立体声内容

AMR-NB

在8kHz下采样4.75至12.2 kbps

3GPP (.3gp)

AMR-WB

在16kHz时,采样率从6.60 kbit/s到23.85 kbit/s为9。

 

3GPP (.3gp)

FLAC


(Android 4.1+)


(Android 3.1+)

单声道/立体声(无多声道)。采样率高达48 kHz(但对于输出为44.1 kHz的设备,建议采样率高达44.1 kHz,因为48至44.1 kHz的下采样器不包括低通滤波器)。建议16位;24位不应用抖动。

FLAC (.flac) only

GSM

 

Android支持在电话设备上进行GSM解码

GSM(.gsm)

MIDI

 

MIDI类型0和1。DLS版本1和2。XMF和移动XMF。支持铃声格式rtttl/rtx、ota和imelody

• Type 0 and 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)

MP3

 

单声道/立体声音质(CBR)8恒定或可变比特率(VBR)

MP3 (.mp3)

Opus

 


(Android 5.0+)

 

Matroska (.mkv)

PCM/WAVE


(Android 4.1+)

8位和16位线性PCM(速率达到硬件限制)。8000、16000和44100 Hz下原始PCM记录的采样率。

WAVE (.wav)

Vorbis

 

 

• Ogg (.ogg)
• Matroska (.mkv, Android 4.0+)

视频支持

格式/编码格式

编码器

解码器

详细说明

支持的文件类型/容器格式

H.263

在Android 7.0+中,对H.263的支持是可选的。

 

• 3GPP (.3gp)
• MPEG-4 (.mp4)

H.264 AVC
Baseline Profile (BP)


(Android 3.0+)

 

• 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, AAC audio only, not seekable, Android 3.0+)

H.264 AVC
Main Profile (MP)


(Android 6.0+)

需要解码器,建议使用编码器。

 

H.265 HEVC

 


(Android 5.0+)

移动设备的主配置文件级别3和Android TV的主配置文件级别4.1

• MPEG-4 (.mp4)

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, Android 4.0+)

 

视频编码建议

  下表列出了Android Media Framework视频编码配置文件和建议使用H.264基线配置文件编解码器播放的参数。同样的建议也适用于主配置文件编解码器,该编解码器仅在Android 6.0及更高版本中可用。

 

SD (低质量)

SD (高质量)

HD 720p (不适用于所有设备)

Video resolution(视频分辨率)

176 x 144 px

480 x 360 px

1280 x 720 px

Video frame rate(视频帧率)

12 fps

30 fps

30 fps

Video bitrate(视频比特率)

56 Kbps

500 Kbps

2 Mbps

Audio codec(编码方式)

AAC-LC

AAC-LC

AAC-LC

Audio channels(音频频道)

1 (mono)

2 (stereo)

2 (stereo)

Audio bitrate(音频比特率)

24 Kbps

128 Kbps

192 Kbps

  下表列出了建议使用VP8媒体编解码器播放的Android Media Framework视频编码配置文件和参数。

 

SD (低质量)

SD (高质量)

HD 720p (不适用于所有设备)

HD 1080p (不适用于所有设备)

Video resolution(分辨率)

320 x 180 px

640 x 360 px

1280 x 720 px

1920 x 1080 px

Video frame rate(帧率)

30 fps

30 fps

30 fps

30 fps

Video bitrate(比特率)

800 Kbps

2 Mbps

4 Mbps

10 Mbps

视频解码建议

  设备实现必须支持通过同一流中的标准Android API对所有VP8、VP9、H.264和H.265编解码器进行动态视频分辨率和帧速率切换,并实时达到设备上每个编解码器支持的最大分辨率。

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

1.提供一个杜比视觉提取。

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

3.将向后兼容基础层(如果存在)的跟踪索引设置为与组合的Dolby视觉层的跟踪索引相同。

  视频流要求

1.对于通过HTTP或RTSP传输的视频内容,还有其他要求:

2.对于3gpp和mpeg-4容器,moov原子必须位于任何mdat原子之前,但必须继承ftyp原子。

3.对于3gpp、mpeg-4和webm容器,与同一时间偏移相对应的音频和视频采样间隔不得超过500 kb。要最小化这种音频/视频偏移,请考虑以较小的块大小交错存储音频和视频。

图片支持

格式/编码格式

编码器

解码器

详细说明

支持文件类型/容器格式

BMP

 

 

BMP (.bmp)

GIF

 

 

GIF (.gif)

JPEG

Base+progressive

JPEG (.jpg)

PNG

 

PNG (.png)

WebP


(Android 4.0+)
(Lossless, Transparency, Android 4.2.1+)


(Android 4.0+)
(Lossless, Transparency, Android 4.2.1+)

 

WebP (.webp)

HEIF

 


(Android 8.0+)

 

HEIF (.heic; .heif)

 

网络协议

音频和视频播放支持以下网络协议:

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

 

本文来自翻译:Supported media formats

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐