工业产品设计+智能产品软硬件开发+模具量产出货


023-68653856

15978927637

详细内容

重庆音视频开发入门必备之基础知识

重庆音视频开发入门必备之基础知识

QQ截图20200814124604.jpg

互联网信息的传达与娱乐方法经历了从文字到图片再到音视频的改变,现如今抖音、快手等短视频更是如日中天,特别是5G年代的到来,笔者相信互联网对音视频开发者的需求会迎来更大的增加需求,况且音视频开发者因为其稀缺性薪酬本来就比较高。

在学习音视频开发之前,咱们先来了解一下音视频的根本知识。

视频文件播映流程图:

视频文件播映流程图

音频

声波的三要素:频率、振幅和波形。频率代表音阶的高低,振幅代表响度,波形代表音色。

频率越高,波长就越短。低频动静的波长则较长,所以其能够更简单地绕过障碍物,因而能量衰减就小,声响就会传得远。人的听力有一个频率规模,大约是20Hz~20kHz。

音频数据的承载方法最常用的是脉冲编码调制,即PCM。

数字信号

在天然界中,声响是接二连三的,是一种模拟信号,那怎样才能把声响保存下来呢?那便是把声响数字化,即转化为数字信号。

将模拟信号数字化,要经过采样、量化和编码三个进程。

音频数字化有一个问题:数字信号并不能接连保存一切时刻点的振幅。

实际上,音频数字化并不需求保存接连的信号,就能够复原到人耳可承受的声响。

采样率

每一秒钟所采样的数目称为采样频率或采率,单位为HZ(赫兹)。采样频率越高所能描绘的声波频率就越高。

依据奈奎斯特定理,按比声响最高频率高2倍以上的频率对声响进行采样,经过数字化处理之后,人耳听到的声响质量不会被下降。所以采样频率一般为44.1kHz。

8khz:电话等运用,关于记载人声已经满足运用。

22.05khz:播送运用频率。

44.1khz:音频CD。

48khz:DVD、数字电视中运用。

96khz-192khz:DVD-Audio、蓝光高清等运用。

量化格局

量化格局也叫采样巨细或采样精度,指的是一个采样运用多少bit寄存,一般是16bit,一个字节是8bit。

编解码

描绘一段PCM数据一般需求以下几个概念:量化格局(sampleFormat)、采样率(sampleRate)、声道数(channel)。

量化格局和采样率上面提到过了,声道数是指支撑能不同发声的音响的个数。不难理解,立体声道的声道数默认为2个声道。

数据比特率,即1秒时刻内的比特数目。

以CD的音质为例,量化格局(位深度)为16比特,样率为44100,声道数为2。

比特率:

比特率 = 采样率 × 采样深度 × 通道数

44100 * 16 * 2 = 1378.123kbps 注意这儿的k表明1024

一分钟音频数据的巨细:1378.125 * 60 / 8 / 1024 = 10.09MB

注意:1个字节等于8位,也便是8比特

这不对啊,咱们平时听的阴影四五分钟也才四五兆,到了你这儿怎样一秒钟就十多兆了呢?这便是编码的功劳了。

咱们先来看看比特率中的数字和字母到底是什么意思?

首先128k的全称“128kbps”,咱们分化一下:128是数字,k是千位符,b是单位,s是秒,ps其实便是“/s”。这样来看,128kbps便是128kb/s。也便是每秒128kb。请注意,这儿的b是小写的b,也便是位。

知道了这个,咱们就能算出来128kb的文件大概占用多少的存储空间:

128*1000=128000b/s÷8=16000B/s÷1024=15.625KB/s

15.625KB/s*60=937.5KB/分钟÷1024=0.9155MB/分钟

所以,128kb的音频文件,大概每分钟长度的巨细都在0.92M或许916kb左右。

注意b和B是不同的概念

编码便是一个紧缩的进程,而紧缩又分为有损紧缩和无损紧缩:

有损紧缩便是去掉冗余信号,冗余信号是指不能被人耳感知到的信号,包含人耳听觉规模之外的音频信号以及被掩蔽掉的音频信号等

无损紧缩便是经过优化摆放方法来达到紧缩目的。

常见的音频编码格局:

WAV(无损)

WAV编码便是在PCM数据格局的前面加上44字节,别离用来描绘PCM的采样率、声道数、数据格局等信息。

特色:音质十分好,大量软件都支撑。

缺陷:因为没用经过紧缩,所以文件占用的储存空间会特别大。

适用场合:多媒体开发的中心文件、保存音乐和音效资料。

MP3(有损)

MP3具有不错的紧缩比,运用LAME编码(MP3编码格局的一种完成)的中高码率的MP3文件,听感上十分接近源WAV文件。现如今市面上的音乐大多是这种编码格局。

特色:音质在128Kbit/s以上体现还不错,紧缩比比较高,大量软件和硬件都支撑,兼容性好。

缺陷:因为技能比较落后,相同码率下音质会比AAC、OGG差一些。

AAC(有损)

AAC是新一代的音频有损紧缩技能,它经过一些附加的编码技能(比方PS、SBR等),衍生出了LC-AAC、HE-AAC、HE-AAC v2三种首要的编码格局。

LC-AAC是比较传统的AAC,相对而言,其首要应用于中高码率场景的编码(≥80Kbit/s);

HE-AAC(相当于AAC+SBR)首要应用于中低码率场景的编码(≤80Kbit/s);

而新近推出的HE-AAC v2(相当于AAC+SBR+PS)首要应用于低码率场景的编码(≤48Kbit/s)。事实上大部分编码器都设置为≤48Kbit/s自动启用PS技能,而>48Kbit/s则不加PS,相当于普通的HE-AAC。

特色:在小于128Kbit/s的码率下体现优异,并且多用于视频中的音频编码。

缺乏:虽然在低码率上体现比MP3好一些,可是还没有达到全面碾压的境地。

适用场合:128Kbit/s以下的音频编码,多用于视频中音频轨的编码。

AAC格局首要分为两种:ADIF、ADTS。

ADIF:Audio Data Interchange Format。音频数据交换格局。这种格局的特征是能够确定的找到这个音频数据的开端,不能在音频数据流中心开端的解码,即它的解码有必要在清晰界说的开端处进行。这种格局常用在磁盘文件中。

ADTS:Audio Data Transport Stream。音频数据传输流。这种格局的特征是它是一个有同步字的比特流,解码能够在这个流中任何方位开端。它的特征类似于mp3数据流格局。

ADTS能够在恣意帧解码,它每一帧都有头信息。ADIF只有一个一致的头,所以有必要得到一切的数据后解码。且这两种的header的格局也是不同的,现在一般编码后的都是ADTS格局的音频流。

Ogg(有损)

Ogg是一种十分有潜力的编码,在各种码率下都有比较优异的体现,尤其是在中低码率场景下。Ogg除了音质好之外,仍是完全免费的,这为Ogg取得更多的支撑打好了基础。Ogg有着十分超卓的算法,能够用更小的码率达到更好的音质,128Kbit/s的Ogg比192Kbit/s乃至更高码率的MP3还要超卓。但现在因为还没有媒体服务软件的支撑,因而基于Ogg的数字播送还无法完成。Ogg现在受支撑的状况还不够好,无论是软件上的仍是硬件上的支撑,都无法和MP3相提并论。

特色:能够用比MP3更小的码率完成比MP3更好的音质,高中低码率下均有杰出的体现。

缺陷:兼容性不够好,流媒体特性不支撑。

适用场合:语音谈天的音频音讯场景。

FLAC(无损)

FLAC是一套著名的自在音频紧缩编码,其特色是无损紧缩。不同于其他有损紧缩编码如MP3 及AAC,它不会损坏任何原有的音频资讯,所以能够复原音乐光盘音质。2012年以来它已被许多软件及硬件音频产品(如CD等)所支撑.

FLAC与MP3不同,MP3是音频紧缩编码,但FLAC是无损紧缩,也便是说音频以FLAC编码紧缩后不会丢失任何信息,将FLAC文件复原为WAV文件后,与紧缩前的WAV文件内容相同。这种紧缩与ZIP的方法类似,但FLAC的紧缩比率大于ZIP和RAR,因为FLAC是专门针对PCM音频的特色规划的紧缩方法。并且能够运用播映器直接播映FLAC紧缩的文件,就象一般播映你的MP3文件相同.

视频

所谓视频其实便是由许多的静态图片组成的。因为人类眼睛的特殊结构,画面快速切换时,画面会有残留,所以静态图片快速切换的时分感觉起来便是连接的动作。这便是视频的原理。

视频帧:

已然视频是由许多静态图片组成的,那么视频的每一张静态图片就叫一帧。

视频帧又分为I帧、B帧和P帧:

I帧:帧内编码帧,大多数状况下I帧便是关键帧,便是一个完好帧,无需任何辅佐就能独立完好显示的画面。

B帧:帧是双向猜测帧。参阅前后图像帧编码生成。需求前面的 I/P 帧或许后面的 P 帧来协助构成一个画面。

P帧:前向猜测编码帧。是一个非完好帧,经过参阅前面的I帧或P帧生成画面。

所以 I 帧是很关键的存在,紧缩 I 帧就能够很简单限制掉空间的巨细,而紧缩P帧和B帧能够紧缩掉时刻上的冗余信息 。所以在视频 seek 的时分,I 帧很关键,假如视频 seek 之后发生往前的跳动,有或许便是你要seek到的方位没用关键帧,这就需求处理了。如同Android自带的播映器就会有这个问题,有时分无法精确地seek到某个方位。

还有一个叫 IDR 帧的概念,IDR都是I帧,能够防止一帧解码犯错,导致后面一切帧解码犯错的问题。

因为 H264 选用的是多帧猜测,导致 I 帧不能作为独立的观察条件,所以多出一个叫  IDR 帧的特殊 I 帧用于参阅,IDR 帧最关键的概念便是:在解码器进程中一旦收到 IDR 帧,就会立即清空参阅帧缓冲区,并将IDR帧作为被参阅帧。这样,即使前面一帧解码呈现严重错误,也不会蔓延到后面的数据中。

注:关键帧都是I帧,可是I帧纷歧定是关键帧 这是为什么?求高人指点!!!

DTS全称:Decoding Time Stamp。标明读入内存中数据流在什么时分开端送入解码器中进行解码。也便是解码次序的时刻戳。

PTS全称:Presentation Time Stamp。用于标明解码后的视频帧什么时分被显示出来。

在没有B帧的状况下,DTS和PTS的输出次序是相同的,一旦存在B帧,PTS和DTS则会不同。  因为解码的次序和播映的次序或许是纷歧致的。

GOP(Group Of Picture)便是两个 I 帧之间的距离,一般 GOP 设置得越大,画面的效果就会越好,到那时需求解码的时刻就会越长。所以假如码率固定而 GOP 值越大,P/B帧 数量会越多,画面质量就会越高。

帧率:

帧率,即单位时刻内帧的数量,单位为:帧/秒 或fps(frames per second)。帧率越高,每秒切换的图片就越多,画面越顺滑,过渡越天然。

帧率的一般以下几个典型值:

24/25 fps:1秒 24/25 帧,一般的电影帧率。

30/60 fps:1秒 30/60 帧,游戏的帧率,30帧能够承受,60帧会感觉愈加流畅逼真。Android系统的高性能渲染便是以60帧为规范。

85 fps以上人眼根本无法察觉出来了,所以更高的帧率在视频里没有太大含义。

颜色空间:

咱们都知道RGB是三原色,经过RGB三种基础色,能够混合出一切的颜色。

还有一张是YUV,这种颜色空间并不是咱们熟悉的。这是一种亮度与色度别离的颜色格局。

早期的电视都是是非的,即只有亮度值,即Y。有了彩色电视今后,加入了UV两种色度,构成现在的YUV,也叫YCbCr。

Y:亮度,便是灰度值。除了表明亮度信号外,还含有较多的绿色通道量。

U:蓝色通道与亮度的差值。

V:赤色通道与亮度的差值。

因为人眼对亮度灵敏,对色度不灵敏,因而削减部分UV的数据量,人眼却无法感知出来,这样能够经过紧缩UV的分辨率,在不影响观感的前提下,减小视频的体积。大大提高传输的功率和节约带宽。

关于YUV这儿我就不多说了,后面我会专门写一篇文章介绍。比方YUV444,YUV422,YUV420和YUV420sp以及YUV和RGB怎么转化的等等。

视频编码格局:

视频编码格局有许多,比方H26x系列和MPEG系列的编码,这些编码格局都是为了习惯年代发展而呈现的。

其中,H26x(1/2/3/4/5)系列由ITU(International Telecommunication Union)国际电传视讯联盟主导的。

MPEG(1/2/3/4)系列由MPEG(Moving Picture Experts Group, ISO旗下的组织)主导。

H264是现在最主流的视频编码规范,现在大多数的视频和流媒体都是运用这种编码格局。

H264编码算法是十分复杂,不是片言只语能够讲清楚的,也不在我的才能规模只能,咱们要做到的便是知道怎样运用就好了。

编解码

编码:编码便是将原始音频数据也便是PCM紧缩的一个进程;或许是将原始的视频数据RGB或YUV紧缩的一个进程。

解码:解码便是编码一个逆进程,比方将编码后的数据AAC解码成PCM给播映器播映;或许将编码后的H264数据解码成YUV或RGB给播映器渲染的进程。

编解码又分为硬件编解码和软件编解码。

软件编解码便是指使用CPU的计算才能来进行编解码码,一般假如CPU的才能不是很强的时分,一则编解码速度会比较慢,二则手机或许呈现发热现象。可是,因为运用一致的算法,兼容性会很好。

硬件编解码解码,指的是使用手机上专门的解码芯片来加速解码。一般硬解码的解码速度会快许多,可是因为硬解码由各个厂家完成,质量良莠不齐,十分简单呈现兼容性问题。

封装格局

封装格局业界也有人称音视频容器,比方咱们经常看到的视频后缀名:mp4、rmvb、avi、mkv、mov等便是音视频的容器,它们将音频和视频乃至是字幕一同打包进去,封装成一个文件。

结语

关于音视频的基础知识今天先介绍到这儿,假如你对音视频开发感兴趣可扫码关注,后续咱们共同探讨,共同进步。

本文由重庆音视频开发整理

生产中心:重庆市蔡家盈田光电工谷22幢3楼

研发中心:重庆市九龙坡区兴胜路4 号清研理工创业谷1508


hjzcxkj@163.com
023-68653856

重庆智能硬件开发,重庆软件开发,重庆工业设计,重庆产品设计,重庆外观设计,重庆结构设计,重庆物联网开发,重庆智能垃圾桶开发,重庆MTK方案商,重庆高通方案商,重庆单片机方案商,重庆系统开发,重庆智能手环开发,重庆工业设备开发,重庆音视频开发,重庆医疗设备开发请咨询重庆环洁智创新科技。

解决方案

官方微信
技术支持: 重庆冠辰科技-网站建设-专业网络优化 | 管理登录