一、音视频基础知识

1.1 视频编码

视频编码指的就是通过特定的压缩技术,将某个视频格式文件转换成另一种视频格式的文件的方式。

视频流传输中最重要的编解码标准有国际电联的H.261、H.263、H.264和国际标准化组织运动图像专家组的MPEG系列标准。

MPEG系列:(由ISO[国际标准化组织]下属的MPEG[运动图像开发专家组]开发) 视频编码方面主要是MPEG1(VCD)、MPEG2(DVD)、           MPEG4、MPEG4 AVC(正热门)。音频编码方面主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(MP3) 、 MPEG-2AAC、 MPEG-4 AAC等。

H.26X系列: (由 ITU[国际电传视讯联盟]主导,侧重网络传输,只有视频编码)  H.261、H.262、H.263、H.263+、H.263++、H.264(与MPEG4  AVC 合作的结晶)

1.2音频编码

常见的音频编码格式有AAC、MP3、AC3
MP3:是一种音频压缩技术,它被设计用来大幅度地降低音频数据量。将音乐以1:10 甚至1:12的压缩率,压缩成容量较小的文件,而对于大多数的用户来说,重放的音质于最初不压缩的音频相比没有明显下降。 MP3的特点是,利用人耳对高频信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频信号使用大压缩率(甚至忽略信号),对低频信号使用小压缩率,保证信号不失真。这样一来就相当于抛弃人耳基本听不到的高频声音,只保留能听到的低频部分,从而将声音用1:10甚至1:12的压缩率压缩。

AAC:一种专门为声音数据设计的文件压缩格式,与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的”性价比“,在感觉声音在没有明显降低的前提下,可使文件更加小巧。AAC的优点是,相对于MP3,AAC的音质更加文件更小。AAC缺点是,AAC是属于有损压缩格式,与时下流行的APE、FLAC等无损压缩格式相比音质存在本质上的差距。

AC3:有损音频编码格式。被广泛应用与5.1声道。AC3普及程度很高,唱片、电影院。AC3提供的环绕声系统由5个全频域声道和1个超低音声道组成。

1.3多媒体播放组件

MediaPlayer: 播放控制

MediaCodec: 音视频编解码

OMX: 多媒体部分采用的编解码标准

StageFright:它是一个框架,替代之前的OpenCore,主要是做了一个OMX层,仅仅对OpenCore的omx-component部分做了引用。StageFright是在MediaPlayerService这一层加入的,和OpenCore是并列的。StageFright在Android 中是以共享库的形式存在的(libstegefright.so),其中model----NuPlayer/AwesomePlayer可以用来播放音视频。

AudioTrack : 音频播放。

1.4 常见的多媒体框架及解决方案

VLC : Video LAN Client,是一款自由、开源的跨平台多媒体播放器及框架。

FFmpeg : 多媒体解决方案,不是多媒体框架,广泛用于音视频开发中。

GStreamer : 一套构建流媒体应用的开源多媒体框架。

1.5 相关知识点

1.5.1 帧率

是用于测量显示帧数的量度。所谓的测量单位为每秒显示的帧数。每秒显示帧数或者帧率表示图形处理器处理场时每秒能够更新的次数。30fps就是可以接受的,60fps则可以明显提升交互感和逼真感,但超过75fps就不容易察觉有明显的流畅度提升了。如果帧率超过屏幕刷新率,则会浪费图像的处理能力。

1.5.2  刷新率

刷新率是指屏幕每秒画面被刷新的次数,刷新率分为垂直刷新率和水平刷新率,一般提到的刷新率通常是指垂直刷新率。垂直刷新率表示屏幕上图像每秒重绘多少次,也就是每秒屏幕刷新的次数,以Hz为单位。刷新率越高,图像就越稳定,图像显示就越自然清晰,对眼睛的影响也越小。达到80Hz以上的刷新率就可以完全消除图像闪烁和抖动感。

1.5.3 编码格式

编码的目的是压缩数据量,采用编码算法压缩冗余数据。(MPEG、H.26X)

1.5.4 封装格式

把编码后的音视频数据以一定格式封装到一个容器中,封装格式有mkv、avi、ts等。

1.5.5 码率

码率也就是比特率,比特率是单位时间播放连续的媒体(如压缩后的音频或视频)的比特数量。比特率越高,带宽消耗得越多。比特(bit)0或1

                                                    文件大小(b) =  码率(b/s) * 时长(s)

1.5.6 画质与码率

视频质量和码率、编码算法都有关系。

1.5.7 DTS 与 PTS

DTS: 即 Decode Time Stamp,主要是用于标示读入内存中比特率在什么时候开始送入解码器中进行解码

PTS: 即Presentation Time Stamp,主要用于度量解码后的视频帧什么时候被显示出来

1.5.8 视频帧和音频帧

常见的视频帧有I、P、B帧等

I 帧表示关键帧,可以理解为这一帧画面的完整保留,解码时只需要本帧数据就可以完成(因为包含完整画面)

P 帧表示的是这一帧和之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)

B 帧是双向差别帧,也就是B帧记录的是本帧和前后帧的差别,通过前后画面数据与本帧数据的叠加取得最终的画面。B帧压缩率高,但解码时CPU比较吃力。

音频帧的概念没有那么清晰,跟音频编码格式相关,它是各个编码标准自己实现的。

PCM(未经编码的音频数据)来说,它根本就不需要帧的概念,根据采样率和采样精度就可以播放,比如采样率为44.1kHz,采样进度为16位的音频,你可以算出比特率是4410016kb/s,每秒的音频数据是固定的4410016/8字节。

AMR 帧比较简单,它规定每20ms的音频为一帧,每一帧音频都是独立的,有可能采用不同的编码算法以及不同的编码参数。

MP3帧较复杂,包含更多信息,比如采样率、比特率等各种参数。音频数据帧个数由文件大小和帧长决定,每一帧的长度可能不固定,也可能固定,由比特率决定,每一帧又分为帧头和数据实体两部分,帧头记录了MP3的比特率、采样率、版本等信息,每一帧之间相互独立。

1.5.9 量化精度

表示可以将模拟信号分成多少个等级,量化精度越高,音乐的声压振幅越接近原音乐。量化精度的单位是bit(比特) 。也可以理解为一个采样点用多少比特表示(8/16/24/32bit)。CD-->16bit , DVD-->24bit。

1.5.10 采样率

每秒音频采样点个数(8000/44100Hz),采样单位用Hz表示。

1.5.11 声道

声道是指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,所以声道数也就是声音录制时的音源数量或者回放时相应的扬声器数量。单声道、立体声道、4声道、5.1声道、7.1声道等。

你可能感兴趣的:(一、音视频基础知识)