Android车载应用开发与分析(6)- 车载多媒体(一)- 音视频基础知识与MediaPlayer

本文深入讲解了车载多媒体应用中的音视频基础知识,包括编码格式、播放组件MediaPlayer的生命周期管理,以及音频焦点的策略。涵盖了状态转换、音频编码、视频帧、音频帧和专业术语等内容,适合Android车载应用开发者参考。

多媒体应用是车载信息娱乐系统的一个重要组成部分,一般包含音视频播放、收音机、相册等。车载应用多媒体系列初步计划分为六篇,这是第一篇。

参考资料
视频和视频帧:视频和帧基础知识整理
百度百科 - 声道百度百科 - 量化精度
管理音频焦点  |  Android 开发者  |  Android Developers
Android音视频开发 - 何俊林
MediaPlayer  |  Android Developers
MediaPlayer 概览  |  Android 开发者  |  Android Developers

1. 音视频基础知识

1.1 视频编码

视频编码就是指通过特定的压缩技术,将某个视频格式文件转换成另一种视频格式文件的方式。
视频编码分为以下两个系列:
MPEG系列:由ISO[国际标准化组织]下属的MPEG[动态影像专家组]开发。视频编码方面主要是MPEG1(VCD使用)、MPEG2(DVD使用)、MPEG4(DVD RIP使用的都是它的变种,如DivX、XviD等)、MPEG4 AVC(目前最常用)。其还有音频编码方面,主要有MPEG Audio Layer1/2、MPEG Audio Layer 3(MP3)、MPEG-2 AAC、MPEG4-AAC等。DVD音频没有采用MPEG。
H.26X系列:由ITU[国际电传视讯联盟]主导,侧重网络传输,但只有视频编码。包括H.261、H.262、H.263、H.263+、H.263++、H.264(与MPEG4 AVC合作的产物)。

1.2 音频编码

常见的音频编码格式有AAC、MP3、AC3。
AAC:AAC,全称Advanced Audio Coding,是一种专为声音数据设计的文件压缩格式。与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的“性价比”。利用AAC格式,可使人感觉声音质量没有明显降低的前提下,更加小巧。苹果ipod、诺基亚手机支持AAC格式的音频文件。**优点:**相较于mp3,AAC格式的音质更佳,文件更小。**不足:**AAC属于有损压缩的格式,与时下流行的APE、FLAC等无损格式相比音质存在“本质上”的差距。加之,传输速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC头上“小巧”的光环不复存在。
MP3:MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III),简称为MP3。它被设计用来大幅度地降低音频数据量。利用 MPEG Audio Layer 3 的技术,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的文件,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。
MP3是利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号)对低频信号使用小压缩比,保证信号不失真。这样一来就相当于抛弃人耳基本听不到的高频声音, [1] 只保留能听到的低频部分,从而将声音用1∶10甚至1∶12的压缩率压缩。由于这种压缩方式的全称叫MPEG Audio Player3,所以人们把它简称为MP3。
根据MPEG规范的说法,MPEG-4中的AAC(Advanced audio coding)将是MP3格式的下一代。
最高参数的MP3(320Kbps)的音质较之CD的,FLAC和APE无损压缩格式的差别不多,其优点是压缩后占用空间小,适用于移动设备的存储和使用。
AC3:全称Audio Coding3(音频编码3)是杜比数码(Dolby Digital)的同义词,杜比数码是一种高级音频压缩技术,它最多可以对6个比特率最高为448kbps的单独声道进行编码。杜比AC-3提供的环绕声系统由5个全频域声道和1个超低音声道组成,被称为5.1声道。5个声道包括左前、中央、右前、左后、右后。低音声道主要提供一些额外的低音信息,使一些场景,如爆炸、撞击等声音效果更好。

1.3 多媒体播放组件

在Android系统中多媒体播放组件包含MediaPlayer、MediaCodec、OMX、StageFright、AudioTrack 。

  • MediaPlayer:将系统提供的解码器封装后提供给应用开发者使用音视频播放组件,一般支持多种多媒体格式。
  • MediaCodec:音视频编解码 。
  • OMX:多媒体部分采用的编解码标准。
  • Stagefright:Stagefright是位于原生层的媒体播放引擎,内置了基于软件的编解码器,可用于处理热门媒体格式。它是用来替代之前OpenCore框架,主要做了一层OMX层,仅仅对OpenCore的omx-component部分做了引用。Stagefright是在MediaPlayerService这一层加入的,和OpenCore是并列的。StageFright在Android中以共享库的形式存在(libstagefright.so),其中的Module - NuPlayer/AwesomePlayer可用来播放音视频。NuPlayer/AwesomePlayer提供了许多的API,可以让上层的应用程序(Java/JNI)调用。
  • AudioTrack:音频播放组件,与MediaPlayer不同的是,AudioTrack仅支持非压缩编码(PCM)的音频。

1.4 音视频中的专业术语

1.4.1 帧率

帧率(frame rate)是用于测量显示帧数的度量。测量单位为“每秒显示帧数”(frame per secondFPS)或“赫兹”,一般来说FPS用于描述视频、电子绘图或游戏每秒播放多少帧。
每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。

1.4.2 分辨率

视频分辨率,是用于度量图像内数据量多少的一个参数,通常表示成ppi。
视频的320X180是指它在横向和纵向上的有效像素,窗口小时ppi值较高,看起来清晰;窗口放大时,由于没有那么多有效像素填充窗口,有效像素ppi值下降,就模糊了。

1.4.3 刷新率

刷新率是指电子束对屏幕上的图像重复扫描的次数。刷新率越高,所显示的图像(画面)稳定性就越好。
刷新率分为垂直刷新率和水平刷新率,一般提到的刷新率通常指垂直刷新率。垂直刷新率表示屏幕的图像每秒钟重绘多少次,也就是每秒钟屏幕刷新的次数,以Hz(赫兹)为单位。刷新率越高越好,图像就越稳定,图像显示就越自然清晰,对眼睛的影响也越小。刷新频率越低,图像闪烁和抖动的就越厉害,眼睛疲劳得就越快。一般来说,如能达到80Hz以上的刷新频率就可完全消除图像闪烁和抖动感,眼睛也不会太容易疲劳。

1.4.4 编码格式

编码的目的就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式,主要目标是压缩数据量。常用的编码格式有MPEG和H.26X两种。

1.4.5 封装格式

封装格式(也叫容器),就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳。常见的封装格式有:
AVI:微软在90年代初创立的封装标准,是当时为对抗quicktime格式(mov)而推出的,只能支持固定CBR恒定比特率编码的声音文件。
FLV:针对于h.263家族的格式。
MKV:万能封装器,有良好的兼容和跨平台性、纠错性,可带 外挂字幕。
MOV:MOV是Quicktime封装。
MP4:主要应用于mpeg4的封装 。
RM/RMVB:Real Video,由RealNetworks开发的应用于rmvb和rm 。
TS/PS:PS封装只能在HDDVD原版。
WMV:微软推出的,作为市场竞争。

1.4.6 码率

比特率又称“二进制位速率”,俗称“码率”。表示单位时间内传送比特的数目。用于衡量数字信息的传送速度,常写作bit/sec。根据每帧图像存储时所占的比特数和传输比特率,可以计算数字图像信息传输的速度。码率越高,消耗的带宽越多。
文件大小(b) = 码率(b/s) X 时长(s)

1.4.7 画质&码率

通常我们有一个错误的认识,码率越大画质越好!实际上视频质量和码率、编码算法都有关系。

1.4.8 DTS&PTS

DTS:解码时间标签(Decoding Time Stamp)。主要用于标识读入内存中的比特流在什么时候开始送入解码器中进行解码。
PTS:演示时间标签(Presentation Time Stamp)。主要用于度量解码后的视频帧什么时候被显示出来。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值