#Android 播放视频(三)媒体支持格式 这篇文档介绍Android平台媒体编解码器、容器和网络协议的支持。 作为一个应用开发者,你可以任意使用Android设备上的媒体编解码器,包括Android平台提供的以及一些特定的设备。**然而最好的方式是使用与设备无关的解码器。** ##网络协议 以下的协议都支持音频、视频播放。 - RTSP(RTP, SDP) - HTTP/HTTPS progressive streaming - HTTP/HTTPS live streaming [draft protocol](https://tools.ietf.org/html/draft-pantos-http-live-streaming-18); - MPEG-2 TS media files only - 协议版本 3 (Android 4.0或者更高) - 协议版本2(Android 3.x) - 不支持Android3.0以下版本 > 注意:Android3.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)
Opus  
(Android 5.0+)
  Matroska (.mkv)
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+)
H.265 HEVC  
(Android 5.0+)
Main Profile Level 3 for mobile devices and Main Profile Level 4.1 for Android TV • MPEG-4 (.mp4)
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+)
VP9  
(Android 4.4+)
  • WebM (.webm)
• Matroska (.mkv, Android 4.0+)

视频编码推荐

表2,如下列表中的例子是Android媒体框架支持的配置和参数,支持的H.264 Baseline Profile解码器播方。列表三是框架支持VP8的媒体编解码。
除了推荐的这些编码参数,设备上的有效视频录制参数可以作为一个媒体播放的代理使用,这些参数可以内签到正在使用的类CamcorderProfile中,该类since API leve 8.
表2.支持视频编码H.264Baseline参数

/SD (Low quality)SD (High quality)HD 720p (N/A on all devices)
Video resolution176 x 144 px480 x 360 px1280 x 720 px
Video frame rate12 fps30 fps30 fps
Video bitrate56 Kbps500 Kbps2 Mbps
Audio codecAAC-LCAAC-LCAAC-LC
Audio channels1 (mono)2 (stereo)2 (stereo)
Audio bitrate24 Kbps128 Kbps192 Kbps

表3.支持视频VP8编码参数

\SD (Low quality)SD (High quality)HD 720p (N/A on all devices)HD 1080p (N/A on all devices)
Video resolution320 x 180 px640 x 360 px1280 x 720 px1920 x 1080 px
Video frame rate30 fps30 fps30 fps30 fps
Video bitrate800 Kbps2 Mbps4 Mbps10 Mbps

对于流是通过HTTP或RTSP视频内容,还有额外的要求:

  • 对于3GPP和MPEG-4容器中,MOOV原子必须先于任何MDAT原子,但一定要成功的ftyp原子。
  • 对于3GPP,MPEG4和WebM容器,对应于相同时间偏移的音频和视频样本可以不大于500 KB相隔。为了减少这种音频/视频漂移,考虑更小的块大小交错的音频和视频。

出处:http://developer.android.com/guide/appendix/media-formats.html

Logo

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

更多推荐