media and camera 框架之三: Supported Media Formats

支持的媒体格式

这篇文档描述了android平台提供的媒体编解码器,容器和网络协议支持。

作为一个应用程序开发者,你可以自由使用任何一个android设备支持的任意媒体编解码器,包括android平台提供的那些和设备特有的那些。但是,最好的使用与设备无关的媒体编码配置来实现。

网络协议

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

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


内核媒体格式

下表描述了固定在Android平台内的媒体格式支持情况。注意任意一个给定的移动设备都可能提供没有列在下表中的额外的一些格式或文件类型的支持。

注意:应该相应注意到在括号中那些在所有Android平台版本中都授权不可用的媒体编解码器,如"(Android 3.0+)"。

表1,内核媒体格式和编解码器的支持

Type Format / Codec Encoder Decoder Details Supported File Type(s) / Container Formats
Audio AAC LC Support for mono/stereo/5.0/5.1 content with standard sampling rates from 8 to 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+)   Support for stereo/5.0/5.1 content with standard sampling rates from 8 to 48 kHz.
AAC ELD (enhanced low delay AAC)
(Android 4.1+)

(Android 4.1+)
Support for mono/stereo content with standard sampling rates from 16 to 48 kHz
AMR-NB 4.75 to 12.2 kbps sampled @ 8kHz 3GPP (.3gp)
AMR-WB 9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16kHz 3GPP (.3gp)
FLAC  
(Android 3.1+)
Mono/Stereo (no multichannel). Sample rates up to 48 kHz (but up to 44.1 kHz is recommended on devices with 44.1 kHz output, as the 48 to 44.1 kHz downsampler does not include a low-pass filter). 16-bit recommended; no dither applied for 24-bit. FLAC (.flac) only
MP3   Mono/Stereo 8-320Kbps constant (CBR) or variable bit-rate (VBR) MP3 (.mp3)
MIDI   MIDI Type 0 and 1. DLS Version 1 and 2. XMF and Mobile XMF. Support for ringtone formats RTTTL/RTX, OTA, and iMelody • Type 0 and 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
Vorbis     • Ogg (.ogg)
• Matroska (.mkv, Android 4.0+)
PCM/WAVE
(Android 4.1+)
8- and 16-bit linear PCM (rates up to limit of hardware). Sampling rates for raw PCM recordings at 8000, 16000 and 44100 Hz. WAVE (.wav)
Image JPEG Base+progressive JPEG (.jpg)
GIF     GIF (.gif)
PNG   PNG (.png)
BMP     BMP (.bmp)
WebP
(Android 4.0+)
(Lossless, Transparency, Android 4.2.1+)

(Android 4.0+)
(Lossless, Transparency, Android 4.2.1+)
  WebP (.webp)
Video H.263   • 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
(Android 3.0+)
Baseline Profile (BP) • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, AAC audio only, not seekable, Android 3.0+)
MPEG-4 SP     3GPP (.3gp)
VP8
(Android 4.3+)

(Android 2.3.3+)
Streamable only in Android 4.0 and above • WebM (.webm)
• Matroska (.mkv, Android 4.0+)

视频编码推荐

下面表2,列出了视频编码配置文件,以及以H.264基本档次编解码实现播放的Android媒体框架所支持的参数。而表3列出了以VP8媒体编解码实现播放的框架支持参数的示例。

出了推荐的这些编码参数,根据配置一个设备支持的视频类型可以判断媒体播放的性能。使用CamcorderProfile类检查这些配置,该类在从API水平8就可用了。

表2 以H.264基本档次编解码支持视频编码的参数示例

  SD (Low quality) SD (High quality) HD 720p (N/A on all devices)
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
表3  VP8编解码支持视频编码的参数示例

  SD (Low quality) SD (High quality) HD 720p (N/A on all devices) HD 1080p (N/A on all devices)
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
对于基于HTTP或RTSP协议的视频内容流来说,这里有些额外的要求:

对于3GPP和MPEG-4容器来说,moov原子必须领先于任意mdat原子,但在ftyp原子之后。

对于3GPP、MPEG-4以及WebM容器来说,对应相同的时间补偿的音频和视频示例可能相差不会超过500KB 。为了缩小音频/视频的漂移,考虑采用音频和视频以一小块大小来交替传输。


<add by myself:  moov 部分是视频的元数据信息和mdat部分是视频的内容信息  ——the  end>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值