Android 媒体格式
音频格式和编解码器
| 格式/编解码器 | 编码器 | 解码器 | 细节 | 支持的文件类型/容器格式 |
|---|---|---|---|---|
| AAC LC | • | • | 支持单声道/立体声/ 5.0 / 5.1内容,标准采样率为8至48 kHz。 | •3GPP(.3gp) •MPEG-4(.mp4,.m4a) •ADTS原始AAC(.aac,Android 3.1+解码,Android 4.0+编码,不支持ADIF) •MPEG-TS(.ts,不可寻求,Android 3.0+) |
| HE-AACv1(AAC +) | • (Android 4.1+) |
• | ||
| HE-AACv2(增强型AAC +) | • | 支持立体声/ 5.0 / 5.1内容,标准采样率为8至48 kHz。 | ||
| AAC ELD(增强型低延迟AAC) | • (Android 4.1+) |
• (Android 4.1+) |
支持单声道/立体声内容,标准采样率为16至48 kHz | |
| AMR-NB | • | • | 在8kHz下采样4.75到12.2kbps | 3GPP(.3gp) |
| AMR-WB | • | • | 在16kHz下采样的速率从6.60 kbit / s到23.85 kbit / s | 3GPP(.3gp) |
| FLAC | • (Android 4.1+) |
• (Android 3.1+) |
单声道/立体声(没有多声道)。采样率高达48 kHz(但对于44.1 kHz输出的设备,建议高达44.1 kHz,因为48至44.1 kHz的下采样器不包括低通滤波器)。推荐16位; 没有抖动适用于24位。 | 仅限FLAC(.flac) |
| GSM | • | Android支持电话设备上的GSM解码 | GSM(.gsm) | |
| MIDI | • | MIDI类型0和1. DLS版本1和2. XMF和移动XMF。支持铃声格式RTTTL / RTX,OTA和iMelody | •类型0和1(.mid,.xmf,.mxmf) •RTTTL / RTX(.rtttl,.rtx) •OTA (.ota)•iMelody(.imy) |
|
| MP3 | • | 单声道/立体声8-320Kbps恒定(CBR)或可变比特率(VBR) | MP3(.mp3) | |
| 作品 | • (Android 5.0+) |
Matroska(.mkv) | ||
| PCM / WAVE | • (Android 4.1+) |
• | 8位和16位线性PCM(速率高达硬件限制)。原始PCM记录的采样率为8000,16000和44100 Hz。 | WAVE(.wav) |
| Vorbis格式 | • | •Ogg(.ogg) •Matroska(.mkv,Android 4.0+) |
视频格式和编解码器
| 格式/编解码器 | 编码器 | 解码器 | 细节 | 支持的文件类型/容器格式 |
|---|---|---|---|---|
| H.263 | • | • | 在Android 7.0+中支持H.263是可选的 | •3GPP(.3gp) •MPEG-4(.mp4) |
| H.264 AVC 基线配置文件(BP) |
• (Android 3.0+) |
• | •3GPP(.3gp) •MPEG-4(.mp4) •MPEG-TS(.ts,仅AAC音频,不可搜索,Android 3.0+) |
|
| H.264 AVC 主要配置文件(MP) |
• (Android 6.0+) |
• | 需要解码器,建议使用编码器。 | |
| H.265 HEVC | • (Android 5.0+) |
移动设备的主要配置文件级别3和Android TV的主配置文件级别4.1 | •MPEG-4(.mp4) | |
| MPEG-4 SP | • | 3GPP(.3gp) | ||
| VP8 | • (Android 4.3+) |
• (Android 2.3.3+) |
只能在Android 4.0及更高版本中流式传输 | • WebM(.webm) •Matroska(.mkv,Android 4.0+) |
| VP9 | • (Android 4.4+) |
• WebM(.webm) •Matroska(.mkv,Android 4.0+) |
视频编码建议
下表列出了使用H.264 Baseline Profile编解码器建议播放的Android媒体框架视频编码配置文件和参数。相同的建议适用于主要配置文件编解码器,仅在Android 6.0及更高版本中可用。
| SD(低质量) | SD(高品质) | HD 720p(所有设备均为N / A) | |
|---|---|---|---|
| 视频分辨率 | 176 x 144像素 | 480 x 360像素 | 1280 x 720像素 |
| 视频帧率 | 12 fps | 30 fps | 30 fps |
| 视频比特率 | 56 Kbps | 500 Kbps | 2 Mbps |
| 音频编解码器 | AAC-LC | AAC-LC | AAC-LC |
| 音频频道 | 1(单声道) | 2(立体声) | 2(立体声) |
| 音频比特率 | 24 Kbps | 128 Kbps | 192 Kbps |
下表列出了使用VP8媒体编解码器建议播放的Android媒体框架视频编码配置文件和参数。
| SD(低质量) | SD(高品质) | HD 720p(所有设备均为N / A) | 高清1080p(所有设备均为N / A) | |
|---|---|---|---|---|
| 视频分辨率 | 320 x 180像素 | 640 x 360像素 | 1280 x 720像素 | 1920 x 1080 px |
| 视频帧率 | 30 fps | 30 fps | 30 fps | 30 fps |
| 视频比特率 | 800 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
视频解码建议
设备实现必须支持动态视频分辨率和帧速率切换,通过同一流中的标准Android API实时为所有VP8,VP9,H.264和H.265编解码器提供支持,并达到每个编解码器支持的最大分辨率。设备。
支持Dolby Vision解码器的实现必须遵循以下准则:
- 提供支持杜比视界的提取器。
- 在设备屏幕或标准视频输出端口(例如HDMI)上正确显示Dolby Vision内容。
- 将向后兼容的基础层(如果存在)的轨道索引设置为与组合的杜比视觉层的轨道索引相同。
视频流要求
对于通过HTTP或RTSP流式传输的视频内容,还有其他要求:
- 对于3GPP和MPEG-4容器,
moov原子必须先于任何mdat原子,但必须接替ftyp原子。 - 对于3GPP,MPEG-4和WebM容器,对应于相同时间偏移的音频和视频样本可以相隔不超过500KB。为了最大限度地减少音频/视频漂移,请考虑以较小的块大小交错音频和视频。
图像支持
| 格式/编解码器 | 编码器 | 解码器 | 细节 | 支持的文件类型/容器格式 |
|---|---|---|---|---|
| BMP | • | BMP(.bmp) | ||
| GIF | • | GIF(.gif) | ||
| JPEG | • | • | 基地+逐行 | JPEG(.jpg) |
| PNG | • | • | PNG(.png) | |
| WebP的 | • (Android 4.0+) (无损,透明,Android 4.2.1+) |
• (Android 4.0+) (无损,透明,Android 4.2.1+) |
WebP(.webp) | |
| HEIF | • (Android 8.0+) |
HEIF(.heic; .heif) |
网络协议
音频和视频播放支持以下网络协议:
- RTSP(RTP,SDP)
- HTTP / HTTPS渐进式流式传输
- HTTP / HTTPS直播流:
- 仅限MPEG-2 TS媒体文件
- 协议版本3(Android 4.0及更高版本)
- 协议版本2(Android 3.x)
- Android 3.0之前不支持
Android 媒体格式的更多相关文章
- Android MediaMetadataRetriever 读取多媒体文件信息,元数据(MetaData)
音乐播放器通常需要获取歌曲的专辑.作者.标题.年代等信息,将这些信息显示到UI界面上. 1.一种方式:解析媒体文件 命名空间:android.media.MediaMetadataRetrieve ...
- Android多媒体--MediaCodec 中文API文档
*由于工作需要,需要利用MediaCodec实现Playback及Transcode等功能,故在学习过程中翻译了Google官方的MediaCodec API文档,由于作者水平限制,文中难免有错误和不 ...
- android音视频点/直播模块开发
音视频 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那么作为开发一个小白, ...
- Ubuntu下搭建Android编译环境
Ubuntu一台新机器的一些环境搭建新增一个3TB的硬盘,挂载方法,大于2TB的得parted来进行分区1: sudo parted /dev/sda2: mklabel gpt3: unit TB4 ...
- Android官方多媒体API Mediacodec翻译(一)
因近期工作调整,关于Mediacodec部分的翻译会暂停,后续有时间一定补上,非常抱歉. 本文章为根据Android Mediacodec官方英文版的原创翻译,转载请注明出处:http://www.c ...
- Android 系统架构
Android 系统从下至上分为四层:Linux 内核.Android 核心库及Android 运行时环境(Android Runtime). 应用程序框架以及应用程序等. Linux 内核(Linu ...
- Android开发 MMS支持 创建和编辑MMS
Composing and editing MMS在Android Mms 应用里面的具体实现形式,或数据结构是SlideshowModel,它是一个每个节点为SlideModel的 ArrayLis ...
- 使用Vitamio打造自己的Android万能播放器(1)——准备
前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...
- 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!
本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超 ...
随机推荐
- pctfree和pctused
pctfree 是指一个数据块保留的空间百分比,表示数据块在什么情况下可以被insert 默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update了 即:当使用 ...
- Eureka+SpringBoot2.X结合Security注册中心安全验证
当我们直接配置完SpringCloudEureka的时候,任何人直接就可以访问,这样是极不安全的!!外网的情况下是绝对不允许的! 好在有提供了解决方案,下面拿为我们提供的Security解决 Spri ...
- C#/.Net开发入门篇(2)——第一个控制台应用程序
相信看了上一篇文章的小伙伴已经安装好自己的开发工具了VS了,这一篇文章就教大家怎么创建第一个应用程序. 下面大家跟着我的操作一起来创建自己的第一个应用程序吧 一.打开VS工具点击左上角的文件→新建→项 ...
- C# 使用 csc.exe 实现命令行生成
概述 CSC是什么呢?CSC就是 C-Sharp Compiler (中文就是C#编译器),作用是把我们的 cs 源文件变异成dll 或者是exe , 一般安装完VS 后,就会有这个文件: 这里 ...
- visual studio 的快键键(持续更新)
目录 1. CTRL+ Tab 2. Prop+ Tab 3. CTRL+. 4. 断点相关 5.快速搭建类的构造函数 6.查看需要引用的包 1. CTRL+ Tab 自动生成无参构造函数 2. Pr ...
- Java 多线程应知应会
请简单说说 synchronized 关键字的底层原理 java 说到多线程绝对绕不开 synchronized,很多 java 工程师对 synchronized 是又爱又恨.为什么呢?主要原因包括 ...
- 获取input type=file 的文件内容(纯文本)
一.获取input type=file 的文件内容(纯文本) 1.需求一 通过点击其他事件,来触发 文件选择框(限定格式为 .c 文件),而不是手动鼠标点击触发. [思路:] step1:将 inpu ...
- ubutu tornado python3.7.5 nginx supervisor 部署web api
环境: 1.Ubuntu 服务器 2.python3.7.5 安装 1.python3.7.5 安装的话还是比较简单,流程大致是./configure ->make && mak ...
- angular8自定义管道、指令以及获取dom值
版本: 1.自定义管道: example: 定义一个*ngFor 可以获取key值的管道 keyObject.pipe.ts // key value 管道 import { Pipe, PipeTr ...
- 《精通Python爬虫框架Scrapy》学习资料
<精通Python爬虫框架Scrapy>学习资料 百度网盘:https://pan.baidu.com/s/1ACOYulLLpp9J7Q7src2rVA