天天看点

Android支持的媒体格式

作为一个应用开发者,你可以免费使用Android设备支持的任何多媒体编解码器,包括Android系统提供的和设备特有的。但是,使用设备无关的多媒体编码配置是最佳的。

网络协议

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

  • RTSP (RTP, SDP)
  • HTTP/HTTPS progressive streaming
  • HTTP/HTTPS live streaming draft protocol
    • MPEG-2 TS media files only
    • Protocol version 3 (Android 4.0 and above)
    • Protocol version 2 (Android 3.x)
    • Not supported before Android 3.0
注意:HTTPS在Android3.1之前是不支持的
           

核心多媒体格式

下表展示了Android系统内置支持的多媒体格式,任何移动设备都可能支持该表格以外的其他格式或者文件类型。

注意: 不保证在所有的Android平台上都支持的那些多媒体编解码器都用括号将支持的平台标注出来了。例如:(Android 3.0+)
           

表1 核心格式和编解码器支持

(吐槽:用MarkDown画这个大表格太痛苦了,截图之)

Android支持的媒体格式

视频编码推荐

下面的表格2列出了Android Media框架原生支持的视频编码配置和参数。除了这些编码参数推荐,通过一个设备的可用的视频录制(格式)配置,可以一窥该设备的多媒体播放能力,这些配置能够使用 CamcorderProfile类来得到。(API level8以上)。

表2:

- SD (低质量) SD (高质量) HD (不一定都支持)
视频编解码 H.264 Baseline Profile H.264 Baseline Profile H.264 Baseline Profile
视频分辨率 176 x 144 px 480 x 360 px 1280 x 720 px
视频帧率 12 fps 30 fps 30 fps
视频比特率 56 Kbps 500 Kbps 2 Mbps
音频编解码 AAC-LC AAC-LC AAC-LC
音频声道 1 (mono) 2 (stereo) 2 (stereo)
音频比特率 24 Kbps 128 Kbps 192 Kbps

对于通过HTTP或者RTSP传输的视频流,有如下额外的要求:

  • For 3GPP and MPEG-4 containers, the moov atom must precede any mdat atoms, but must succeed the ftyp atom.
  • For 3GPP, MPEG-4, and WebM containers, audio and video samples corresponding to the same time offset may be no more than 500 KB apart. To minimize this audio/video drift, consider interleaving audio and video in smaller chunk sizes.