android开发平台对于流媒体格式的支持。
2016-05-24 17:24
405 查看
感谢FireOfStar对这篇文章的翻译,从该技术文档来看,我们要做的是Http流化的H264/AAC/mp2格式,从协议来看目前Andoid的Http/Https支持流化的
MPEG2格式,只能采用RTSP协议对流进行流化操作。具体结果测试以后公布出来。
本文译自:http://developer.Android.com/guide/appendix/media-formats.html#recommendations
本文介绍媒体的编解码器、容器和Android平台所支持的网络协议。
作为一个应用程序的开发者,你可以免费使用在Android设备上有效的任何格式的媒体编解码器,包括由Android平台和设备特殊提供的编解码器。但是,最好的做法是使用设备无关的媒体编码配置文件。
网络协议
以下是音视频播放所支持的网络协议:
1. RTSP(RTP、SDP)
2. HTTP/HTTPS实时流
3. HTTP/HTTPS Live Streaming草案协议:
只针对MPEG-2 TS流媒体媒体文件;
协议版本3(Android4.0以上)
协议版本2(Android3.x)
Android3.0以前不支持
注:在Android3.1之前不支持HTTPS。
核心媒体格式
下表介绍了Android平台内置的它所支持的媒体的格式。注意:任意给定的移动设备都可以提供这个列表中没有列出的另外的媒体格式的支持。
注:这些媒体的编解码并不保证在所有的Android平台上都是有效的,要注意括号中的注释---例如“(Android3.0+)”
表1.核心媒体格式和编解码支持
视频编码建议
下表2列出了Android媒体框架做支持的视频编码的Profile和参数的示例。除了这些编码参数的建议,设备可用的视频录制Profile能够被用作媒体播放能力的代理。这些Profile能够使用API Level 8以后的CamcorderProfile类来检查。
表2.被支持的视频编码参数的示例
对于HTTP或RTSP之上的被流化的视频内容,还有一些额外的需求:
1. 对于3GPP和MPEG-4容器,moov原子必须先于任何mdat原子,而必须要让ftyp原子成功。
2. 对于3GPP,MPEG-4和WebM容器,音视频采样所对应的相同时间偏移不能超过500KB的间隔。考虑在用较小音视频数据块进行交叉。
MPEG2格式,只能采用RTSP协议对流进行流化操作。具体结果测试以后公布出来。
本文译自:http://developer.Android.com/guide/appendix/media-formats.html#recommendations
本文介绍媒体的编解码器、容器和Android平台所支持的网络协议。
作为一个应用程序的开发者,你可以免费使用在Android设备上有效的任何格式的媒体编解码器,包括由Android平台和设备特殊提供的编解码器。但是,最好的做法是使用设备无关的媒体编码配置文件。
网络协议
以下是音视频播放所支持的网络协议:
1. RTSP(RTP、SDP)
2. HTTP/HTTPS实时流
3. HTTP/HTTPS Live Streaming草案协议:
只针对MPEG-2 TS流媒体媒体文件;
协议版本3(Android4.0以上)
协议版本2(Android3.x)
Android3.0以前不支持
注:在Android3.1之前不支持HTTPS。
核心媒体格式
下表介绍了Android平台内置的它所支持的媒体的格式。注意:任意给定的移动设备都可以提供这个列表中没有列出的另外的媒体格式的支持。
注:这些媒体的编解码并不保证在所有的Android平台上都是有效的,要注意括号中的注释---例如“(Android3.0+)”
表1.核心媒体格式和编解码支持
类型 | 格式/编解码器 | 编码器 | 解码器 | 详细 | 支持的文件类型/容器、格式 |
Audio | AAC LC/LTP | • | • | 用标准的高达160kbps的位率和8到48kHZ的采样频率来任意组合的单声道/立体声内容。 | • 3GPP (.3gp) • MPEG-4 (.mp4, .m4a) • ADTS raw AAC (.aac, 解码: Android 3.1+,编码: Android 4.0+,不支持ADIF ) • MPEG-TS (.ts, 不可寻址 Android 3.0+) |
HE-AACv1 (AAC+) | | • | |||
HE-AACv2 (enhanced AAC+) | | • | |||
AMR-NB | • | • | 用8kHz来采样的4.75到12.2kbps的位流 | 3GPP (.3gp) | |
AMR-WB | • | • | 用16kHz来采样的6.6kbit/s到23.85kbit/s的位流 | 3GPP(.3gp) | |
FLAC | | • (Android3.1+) | 单声道或立体声(没有多声道)。采样率上限到48kHz(推荐在设备上使用上限为44.1kHZ,因为48到44.1之间的采样率不包含低通滤波)。采样大小推荐使用16位,24位的采样大小适用于无抖动场合。 | 只有FLAC(.flac) | |
MP3 | | • | 单声道或立体声 8-320Kbps固定(CBR)或可变(VBR)播放速率 | MP3(.mp3) | |
MIDI | | • | MIDI类型0和1. DLS版本1和2. XMF和移动XMF。 支持铃声格式:RTTTL/RTX,OTA,iMelody | 1. 类型0和1(.mid,xmf,mxmf) 2. RTTTL/RTX(.rtttl,rtx) 3. OTA(.ota) 4. iMelody(.imy) | |
Vorbis | | • | | 1. Ogg(.ogg) 2. Matroska(.mkv,Android4.0+) | |
PCM/WAVE | | • | 8位和16位PCM(采样率上限受硬件限制) | WAVE(.wav) | |
Image | JPEG | • | • | 基本+实时 | JPEG(.jpg) |
GIF | | • | | GIF(.gif) | |
PNG | • | • | | PNG(.png) | |
BMP | | • | | BMP(.bmp) | |
WEBP | • (Android4.0+) | • (Android4.0+) | | WebP(.webp) | |
Video | H.263 | • | • | | 1. 3GPP(.3gp) 2. MPEG-4(.mp4) |
H.264 AVC | • (Android3.0+) | • | Baseline Profile(BP) | 1. 3GPP(.3gp) 2. MPEG-4(.mp4) 3. PEG-TS(.ts,只有AAC音频,不能寻址,Android3.0+) | |
MPEG-4 SP | | • | | 3GPP(.3gp) | |
VP8 | | • (Android2.3.3+) | 只有在Android4.0以上才能够被流化 | 1. WebM(.webm) 2. Matroska(.mkv, Android4.0+) |
视频编码建议
下表2列出了Android媒体框架做支持的视频编码的Profile和参数的示例。除了这些编码参数的建议,设备可用的视频录制Profile能够被用作媒体播放能力的代理。这些Profile能够使用API Level 8以后的CamcorderProfile类来检查。
表2.被支持的视频编码参数的示例
| SD(低品质) | SD(高品质) | HD(不是所有设备都可用) |
Video codec | H.264 Baseline Profile | H.264 Baseline Profile | H.264 Baseline Profile |
Video resolution | 176 x 144px | 480 x 360px | 1280 x 720px |
Video frame rate | 12fps | 30fps | 30fps |
Video bitrate | 56Kbps | 500Kbps | 2Mbps |
Audio codec | AAC-LC | AAC-LC | AAC-LC |
Audio channels | 1(mono) | 2(stereo) | 2(stereo) |
Audio bitrate | 24Kbps | 128Kbps | 192Kbps |
对于HTTP或RTSP之上的被流化的视频内容,还有一些额外的需求:
1. 对于3GPP和MPEG-4容器,moov原子必须先于任何mdat原子,而必须要让ftyp原子成功。
2. 对于3GPP,MPEG-4和WebM容器,音视频采样所对应的相同时间偏移不能超过500KB的间隔。考虑在用较小音视频数据块进行交叉。
相关文章推荐
- android 文件选择
- Android中FragmentPagerAdapter对Fragment的缓存(一)
- Xposed插件Android.EagleEye
- android 分割线渐变色和几种颜色值定义
- Android开发中View的事件分发探秘
- Android 平滑图片加载和缓存库 Glide 使用详解
- Android使用注解避免大量的findViewById()
- Android N的介绍
- Android平台手机 5大优势和劣势
- android socket 客户端 服务器端
- 图片下载之缓存
- Android KITKAT 以上实现沉浸式状态栏
- Android 缓存框架——ASimpleCache
- Android中ListView的滚动条隐藏
- 反射、注解与依赖注入总结
- android handler机制学习
- android实现聊天页面的气泡
- Android输入法隐藏
- Android内存优化之取代HashMap(SparseArray和ArrayMap解析)
- ListView学习