常见的音频编码和文件格式

目录:

1、为什么选择FFmpeg?

2、Windows开发环境搭建(包括FFmpeg和Qt)

3、Mac开发环境搭建(包括FFmpeg和Qt)

4、重识图片

5、重识声音

6、重识音频 之 PCM(脉冲编码调制)

7、重识音频 之 音频的编码与解码

8、重识音频之 常见的音频编码和文件格式

1、为什么选择FFmpeg?

        FFmpeg是跨平台的音视频开发库。而且掌握了FFmpeg,可以很快上手其他音视频开发库,因为底层原理都是一样的,最终操作的都是一样的数据,比如MP3、MP4文件。

其他平台开发库简介:iOS:AVFoundation、AudioUnit等;android:MediaPlayer、MediaCodec等;Windows:DriectShow等;

2、Windows开发环境搭建(包括FFmpeg和Qt)

3、Mac开发环境搭建(包括FFmpeg和Qt)

    Qt安装参考https://www.cnblogs.com/GJ-ios/p/15674851.html

    Qt运行不起来:https://blog.csdn.net/qq_35664104/article/details/121480884

    Qt学习:http://c.biancheng.net/view/1817.html

4、重识图片

        包括像素、色深、文件格式(压缩格式)

    1)、RGB颜色模型:将红绿蓝三原色的色光以不同的含量叠加可以合成各种颜色。

    2)、RGB位深度24的含义:每一个像素使用24个二进制位来存储颜色信息;每一个像素的颜色是由RGB 3个颜色通道合成的,因此每个颜色通道都用8bit来表示其“含量”(值)。

       位深度有1、3、8、16、24、32等,这些可以网上查。对于32位深度,是在24的基础上增加了8bit的透明度,可以表示带透明度的颜色。

    3)、颜色数量:2的n次方,n为位深度。位深度24能展示的颜色有1678万种,因此被称为真彩色,即常说的24位真彩。

    4)、LCD屏幕有两层,上层是RGB像素层,用于控制哪个颜色滤光,下层为背光层(发光);OLED屏幕没有背光层了,每一个像素独立发光,更节能,缺点是寿命短。

    5)、图片格式(文件格式):将图片按照一定的恶格式压缩存储。比如50*60像素24位深度的图片原始大小为8.79KB,jpg格式存储后为1.56KB。无损压缩:优点不损失图片质量,缺点压缩率低,体积大,如png、gif。有损压缩:优点压缩率高,体积小,缺点损失图片质量,如jpg。

    6)、jpg、png、gif格式是位图,就是上面介绍的图片;svg是矢量图,上面未介绍。

5、重识声音

        1)、振幅:从平衡位置到最大位移位置之间的距离

        2)、频率(Frequency):物体每秒来回振动的次数。

        2)、周期:完全来回振动一次所花费的时间

        3)、音调:频率越高,音调就越高;频率越低,音调就越低。通常女生讲话时,声带振动的频率就比较高,因此我们听到的音调就高,有时会有点刺耳,而男生讲话时,声带振动的频率就比较低,因此我们听到的音调就低,显得比较低沉。

        4)、响度:常用dB(分贝)来描述。当提高声音的响度(音量,大小)时,振动的幅度会变大。

        5)、音色(Timbre)是指声音的特色。不同的声源由于其材料、结构不同,则发出声音的音色也不同。我们之所以能够根据声音区分出不同的乐器、不同的人,都是因为它们的音色不同。不同音色的声音,即使在同一响度和同一音调的情况下,也能让人区分开来。

        6)、基音、泛音:通常声源的振动产生的并不是单一频率的声波,而是由基音和不同频率的泛音组成的复合声音。当声源的主体振动时会发出一个基音(基本频率,基频,Fundamental Frequency)。同时其余各部分也有复合的声源,这些声源组合产生泛音。泛音(Overtone)其实就是物理学上的谐波(Harmonic)。音调是由基音决定的,而音色主要取决于泛音。

6、重识音频 之 PCM(脉冲编码调制)

        1)、如何把声音(声源的振动)记录下来呢?声音属于模拟信号,但更便于计算机处理和存储的是数字信号(二进制编码),所以需要将模拟信号(Analog Signal)转成数字信号(Digital Signal)后进行存储。这一过程,我们可以称之为:音频数字化。将音频数字化的常见技术方案是脉冲编码调制(PCM,Pulse Code Modulation),主要过程是:采样 → 量化 → 编码。

        2)、采样

模拟信号的波形是无限光滑的,可以看成由无数个点组成,由于存储空间是相对有限的,数字编码过程中,必须要对波形的点进行采样。采样(Sampling):每隔一段时间采集一次模拟信号的样本,是一个在时间上将模拟信号离散化(把连续信号转换成离散信号)的过程。

        (1)、采样率(采样频率,采样速率,Sampling Rate):每秒采集的样本数量。根据采样定理(奈奎斯特–香农采样定理,Nyquist-Shannon sampling theorem)得知:只有当采样率高于声音信号最高频率的2倍时,才能把采集的声音信号唯一地还原成原来的声音。人耳能够感觉到的最高声音频率为20000Hz,因此为了满足人耳的听觉要求,需要至少每秒进行40000次采样(40kHz采样率)。这就是为什么常见的CD的采样率为44.1kHz。电话、无线对讲机、无线麦克风等的采样率是8kHZ。

        3)、量化(Quantization):将每一个采样点的样本值数字化。位深度(采样精度,采样大小,Bit Depth):使用多少个二进制位来存储一个采样点的样本值。位深度越高,表示的振幅越精确。常见的CD采用16bit的位深度,能表示65536个不同的值。DVD使用24bit的位深度,大多数电话设备使用8bit的位深度。

        4)、编码:将采样和量化后的数字数据转成二进制码流。

        5)、声道:单声道产生一组声波数据,双声道(立体声)产生两组声波数据。

        6)、声音大小计算

                采样率44.1kHZ、位深度16bit的1分钟立体声PCM数据有多大?

                采样率 * 位深度 * 声道数 * 时间

                44100 * 16 * 2 * 60 / 8 ≈ 10.34MB

                1分钟10.34MB,这对于大部分用户来说是不能接受的。要想在不改变音频时长的前提下,降低音频数据的大小,只有2种方法:降低采样指标、压缩。降低采样指标是不可取的,会导致音频质量下降,用户体验变差,因此专家们研发了各种压缩方案,即各种编码。

        7)、比特率(Bit Rate),指单位时间内传输或处理的比特数量,单位是:比特每秒(bit/s或bps),还有:千比特每秒(Kbit/s或Kbps)、兆比特每秒(Mbit/s或Mbps)、吉比特每秒(Gbit/s或Gbps)、太比特每秒(Tbit/s或Tbps)。

                采样率44.1kHZ、位深度16bit的立体声PCM数据的比特率是多少?

                采样率 * 位深度 * 声道数

                44100 * 16 * 2 = 1411.2Kbps

                通常,采样率、位深度越高,数字化音频的质量就越好。从比特率的计算公式可以看得出来:比特率越高,数字化音频的质量就越好。

        8)、信噪比(Signal-to-noise ratio,SNR,S/N,讯噪比),指信号与噪声的比例,用于比较所需信号的强度与背景噪声的强度,以分贝(dB)为单位。位深度限制了信噪比的最大值,它们的关系如下表所示。

7、重识音频 之 音频的编码与解码

        1)、编码(Encode)

                PCM数据可以理解为是:未经压缩的原始音频数据,体积比较大,为了更便于存储和传输,一般都会使用某种音频编码对它进行编码压缩,然后再存成某种音频文件格式。压缩分为无损压缩和有损压缩。

                无损压缩:解压后可以完全还原出原始数据;压缩比小,体积大

                有损压缩:解压后不能完全还原出原始数据,会丢失一部分信息;压缩比大,体积小;压缩比越大,丢失的信息就越多,还原后的信号失真就会越大;一般是通过舍弃原始数据中对人类听觉不重要的部分,达成压缩成较小文件的目的。

                压缩比 = 未压缩大小 / 压缩后大小

                编码后为什么要存储为不同的音频文件格式、容器?答案:音视频编码主要是对音视频PCM进行压缩,很多时候音频编码数据、视频编码数据、字幕需要同时展示给用户,因此产生了不同的文件格式,作为容器同时存储多种编码数据。

        2)、解码(Decode)

                当需要播放音频时,先从音频文件中取出压缩数据,解码(解压缩)出PCM数据,然后再进行播放。

8、重识音频之 常见的音频编码和文件格式

        需要注意的是:音频文件格式并不等于音频编码。比如:WAV只是一种文件格式,并不是一种编码;FLAC既是一种文件格式,又是一种编码。

下面对常见的音频编码和文件格式做一个简介,以后有需要时再进行详细介绍。

无损

Monkey's Audio

Monkey's Audio,是一种无损的音频编码和文件格式,文件扩展名为.ape,压缩率一般在55%左右。

FLAC

FLAC(Free Lossless Audio Codec),是一种无损的音频编码和文件格式,文件扩展名为.flac。虽然压缩率稍有不及Monkey's Audio,但FLAC技术更先进,占用资源更低,有更多的平台及硬件产品支持FLAC。

ALAC

ALAC(Apple Lossless Audio Codec),是由Apple开发的一种无损的音频编码,文件扩展名为.m4a、.caf。

有损

MP3

MP3(MPEG Audio Layer III),是非常流行的一种有损音频编码和文件格式,文件扩展名为.mp3。

第1版是:MPEG-1 Audio Layer III,属于国际标准ISO/IEC 11172-3

第2版是:MPEG-2 Audio Layer III,属于国际标准ISO/IEC 13818-3

第3版是:MPEG-2.5 Audio Layer III,并不是由MPEG官方开发的,不是公认的标准

WMA

WMA(Windows Media Audio),是由Microsoft开发的音频编码和文件格式,文件扩展名为.wma。包括4种类型:

WMA:原始的WMA编解码器,作为MP3的竞争者,属于有损音频编码

WMA Pro:支持更多声道和更高质量的音频,属于有损音频编码

WMA Lossless:属于无损音频编码

WMA Voice:属于有损音频编码

AAC

AAC(Advanced Audio Coding),是由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia等公司共同开发的有损音频编码和文件格式,压缩比通常为18:1。

AAC被设计为MP3格式的后继产品,通常在相同的比特率下可以获得比MP3更高的声音质量,是iPhone、iPod、iPad、iTunes的标准音频格式。

AAC编码的文件扩展名主要有3种:

.acc:传统的AAC编码,使用MPEG-2 Audio Transport Stream(ADTS)容器

.mp4:使用了MPEG-4 Part 14的简化版即3GPP Media Release 6 Basic(3gp6)进行封装的AAC编码

.m4a:为了区别纯音频MP4文件和包含视频的MP4文件而由Apple公司使用的扩展名

Apple iTunes对纯音频MP4文件采用了.m4a文件扩展名

M4A的本质和音频MP4相同,故音频MP4文件可以直接更改文件扩展名为.m4a

Vorbis

Vorbis,是由Xiph.Org基金会开发的一种有损音频编码。通常以Ogg作为容器格式,所以常合称为Ogg Vorbis,文件扩展名为.ogg。

Speex

Speex,是由Xiph.Org基金会开发的一种有损音频编码和文件格式,文件扩展名为.spx。

Opus

Opus,是由Xiph.Org基金会开发的一种有损音频编码和文件格式,文件扩展名为.opus。用以取代Vorbis和Speedx。经过多次盲听测试,在任何给定的比特率下都比其他标准音频格式具有更高的质量,包括MP3、AAC。

文件格式

Ogg

Ogg是一种多媒体文件格式,由Xiph.Org基金会所维护,可以纳入各式各样的音视频编码(音频、视频都可以),文件扩展名常为.ogg。

Ogg常用的音频编码有:

有损压缩:Speex、Vorbis、Opus

无损压缩:FLAC

未压缩:PCM

WAV

WAV(Waveform Audio File Format),是由IBM和Microsoft开发的音频文件格式,扩展名是.wav,通常采用PCM编码,常用于Windows系统中。

WAV的文件格式如下图所示,前面有44个字节的文件头,紧跟在后面的就是音频数据(比如PCM数据)。

WAV文件格式

WAV文件格式

NumChannels:声道数

SampleRate:采样率(Hz)

ByteRate:每秒多少个字节(Byte/s)

BitsPerSample:位深度

AIFF

AIFF(Audio Interchange File Format),由Apple开发的音频文件格式,扩展名是.aiff、.aif。跟WAV一样,通常采用PCM编码,常用于Mac系统中。

有损和无损

根据采样率和位深度可以得知:相对于自然界的信号,音频编码最多只能做到无限接近,任何数字音频编码方案都是有损的,因为无法完全还原。目前能够达到最高保真水平的就是PCM编码,因此,PCM约定俗成叫做无损音频编码,被广泛用于素材保存及音乐欣赏,CD、DVD以及常见的WAV文件中均有应用。但并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。我们习惯性的把MP3列入有损音频编码范畴,是相对于PCM编码的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值