本文描述了Android平台提供的媒体编解码器、容器和网络协议支持。
作为应用程序开发人员,您可以使用任何可以在任何Android设备上使用的媒体编解码器,包括Android平台提供的媒体编解码器和特定于设备的媒体编解码器。然而,使用与设备无关的媒体编码配置文件是一种最佳实践。
下表描述了Android平台中内置的媒体格式支持。不保证在所有Android平台版本上都可用的编解码器在括号中注明,例如:(Android 3.0+)。注意,任何给定的移动设备都可能支持表中没有列出的其他格式或文件类型。
Android兼容性定义的第5节指定了设备必须支持的媒体格式,以便与Android 8.1兼容。
音频的支持
音频格式和编解码器
视频支持
视频格式和编解码器
视频编码的建议
下表列出了使用H.264基准配置文件编解码器播放推荐的Android media framework视频编码概要和参数。同样的建议也适用于主配置文件编解码器,它只在Android 6.0或更高版本中可用。
下表列出了使用VP8媒体编解码器播放推荐的Android media framework视频编码概要和参数。
视频解码的建议
设备实现必须支持在同一流中通过标准Android api对所有VP8、VP9、H.264和H.265编解码器实时进行动态视频分辨率和帧速率切换,并达到设备上每个编解码器支持的最大分辨率。
支持杜比视觉解码器的实现必须遵循以下准则:
- 提供一个杜比视觉的提取器。
- 在设备屏幕或标准视频输出端口(如HDMI)上正确显示杜比视觉内容。
- 设置后向兼容基层的轨道索引(如果存在)与合并的杜比视觉层的轨道索引相同。
视频流的需求
对于通过HTTP或RTSP传输的视频内容,还有其他要求:
- 对于3GPP和MPEG-4容器,
moov
原子必须先于任何mdat
原子,但必须继承ftyp
原子。 - 对于3GPP、MPEG-4和WebM容器,相同时间偏移对应的音频和视频样本之间的间隔可能不超过500 KB。为了尽量减少这种音频/视频漂移,考虑将音频和视频交错在较小的块大小。
图像支持
网络协议
以下网络协议支持音频和视频播放:
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。