Android支持的媒体格式

Android使用VLC播放视频和直播流 还在为Android端播放流媒体发愁么?一篇文章解决你的难题!看过来 阅读详情

本文译自: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 TV通过inputs默认打开live tv Android TV项目由于会默认预装GMS包里面的所有apk,其中有个live channels的信源播放apk也是采用标准TIF架构的,由于该应用是Google为网络流媒体专门准备的,所以无法完美兼容本地的信源通道(比如ATV/DTV,HDMI,AV)。所以各大厂商都会基于AOSP上的live tv开发一个单独的通道播放apk,所以平台中可能存在2个支持TIF的channel apk。 而之前GTVS认证要求可以通过launcher上的inpu微件进行通道切换,当点击任意信源通道时是通过intent消 阅读详情

相关推荐

告别仿真报错!手把手教你为Intel MAX10 FPGA定制IBIS模型(附Allegro Skill工具)

本文详细介绍了为Intel MAX10 FPGA定制IBIS模型的完整流程,解决信号完整性仿真中的管脚映射问题。通过Allegro Skill工具自动化处理管脚信息,优化IBIS模型关键段落,提升仿真效率和精度,适用于高速数字电路设计。

weixin_33217202的博客 322

Android 流媒体播放 live streaming

安卓支持的协议 RTSP (RTP, SDP)HTTP/HTTPS progressive streamingDynamic adaptive streaming on HTTP => MPEG DASHHTTP/HTTPS live streaming => VLS (m3u, m3u8) 不支持的协议RTMP (Real Time Messaging Proto...

agk335520的博客 640

Source Insight 4.0 及最新版序列号验证机制全解析:如何快速定位关键函数并构造有效Key

本文深入解析了Source Insight 4.0及最新版的序列号验证机制,详细介绍了如何快速定位关键函数并构造有效Key。通过静态分析和动态调试技术,帮助开发者理解现代软件保护的设计哲学,掌握逆向分析方法论,提升安全研究能力。

weixin_26642481的博客 426

Android 播放视频(三)媒体支持格式

Android 播放视频(三)媒体支持格式这篇文档介绍Android平台媒体编解码器、容器和网络协议的支持。作为一个应用开发者,你可以任意使用Android设备上的媒体编解码器,包括Android平台提供的以及一些特定的设备。然而最好的方式是使用与设备无关的解码器。网络协议以下的协议都支持音频、视频播放。 RTSP(RTP, SDP) HTTP/HTTPS progressive streamin

kingroc的博客 6078

C# 实现文件和字符串的AES加密解密

C# 实现文件和字符串的AES128加密解密

m0_72044573的博客 5935

游戏经济数值模型的搭建过程——以标准卡牌游戏为例

一、总体规划 1.玩家分类 首先我们按照下表对玩家进行分类 付费能力即为充值额度;充值行为比如购买月卡/购买钻石;消费行为比如用钻石抽卡 在这里我们假设玩家是理性的,即玩家会以追求更高的性价比为目标进行充值与消费(即小R会优先买首冲+月卡,而不是买一个无用的无属性皮肤) 不同类型玩家之间的差异,实际上就主要由这些行为的差异而决定。 注:早期游戏制作的时候,活跃程度也是区分玩家类型的一个重要依据。不过目前现在游戏中有各种手段抹平了不同活跃玩家的差异(体力限制,活跃时间长的收益递减)..

dudu3332的博客 4228

Android 支持的媒体格式

http://blog.csdn.net/ddna/article/details/5173481 Android支持的媒体格式        Android平台支持的基本媒体格式列表如下表: Type Format Encoder Decoder Details File Type(s) Supported

syh63053767的专栏 648

2021-03-08 使用SPDK部署NVMe over TCP

NVMe-oF Target入门指南 SPDK NVMe over Fabrics Target是一个用户空间应用程序,通过以太网,Infiniband或光纤通道等结构呈现块设备,SPDK目前支持RDMA和TCP传输。 本文将在已经编译好SPDK的基础上演示如何使用SPDK搭建NVMe over TCP,前提是您已经将一块NVMe硬盘挂载到linux系统中。 如果您想获取有关SPDK更详细的信息,请参考 官方文档。 演示过程的Host主机的ip地址是192.168.0.21,Target主机的ip地址是19

Pancras的博客 2843

android音视频指南-支持的媒体格式

翻译自Supported media formats 本文描述了Android平台提供的媒体编解码器、容器和网络协议支持。 作为应用程序开发人员,您可以使用任何可以在任何Android设备上使用的媒体编解码器,包括Android平台提供的媒体编解码器和特定于设备的媒体编解码器。然而,使用与设备无关的媒体编码配置文件是一种最佳实践。 下表描述了Android平台中内置的媒体格式支持。不保证在所有...

harrain的博客 2515

树莓派安装snowboy

1、树莓派换源 参考链接:https://blog.csdn.net/qq_43556844/article/details/113615915 2、更新pip3 参考链接:https://blog.csdn.net/qq_43556844/article/details/113616214 3、存取麦克风 我们使用PortAudio作为音频输入/输出的跨平台支持。我们还使用sox作为快速实用程序来检查麦克风设置是否正确。 sudo apt-get install python-pyaudio python

qq_43556844的博客 1923

Matlab在线性代数中的应用(一):向量组的线性相关性

求列向量组A的一个最大线性无关组可用命令rref(A)将A化成行最简形,其中单位向量对应的列向量即为最大线性无关组所含向量,其它列向量的坐标即为其对应向量用最大线性无关组线性表示的系数。 01 — 例1 求下列矩阵列向量组的一个最大无关组。 解:编写脚本文件如下: >>format rat a=[1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4]; b=rref(a) 求得: b...

wenyusuran的专栏 3236

Android 平台支持的媒体格式

括号中注明了不能保证在所有 Android 平台版本上均可用的编解码器,例如:(Android 3.0 及更高版本)。• ADTS 原始 AAC(.aac、在 Android 3.1 及更高版本中解码、在 Android 4.0 及更高版本中编码、不支持 ADIF) • MPEG-TS(.ts、不可查找、Android 3.0 及更高版本)作为应用开发者,您可以使用任何 Android 设备上提供的任何媒体编解码器(包括 Android 平台提供的媒体编解码器和特定于设备的媒体编解码器)。

知识改变命运~ 1105

【异常】Milvus向量数据库的常见错误“collection not loaded“(集合未加载)

Milvus数据库报错"collection not loaded"分析及解决方案。该错误发生在对未加载的集合执行查询操作时,核心原因是集合创建后需先加载到内存才能使用。解决方案包括:1)确认集合是否存在;2)查询前调用loadCollection接口加载集合;3)处理加载超时或失败情况,可检查加载状态;4)确保Milvus服务正常运行。建议在长期不使用集合时释放内存资源。文末附Java代码示例说明具体操作方法。

奶爸的编程之路,也就一周冷个三天 380
上一篇: Android初始化流程
下一篇: Android 打造自己的个性化应用(四):仿墨迹天气实现-->自定义扩展名的zip格式的皮肤
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值