音视频开发学习--01音视频基础知识

目录

一、视频中的主要概念:

1、视频码率:

2、视频帧率:

3、视频分辨率:

二、I帧、 P帧、 B 帧、GOP帧

1、I 帧(Intra coded frames):

2、P帧 (Predicted frames):

3、B帧(Bi-directional predicted frames):

4、GOP( group of pictures)

5、DTS、PTS 的概念

三、音频中的一些概念

1、采样频率:每秒钟采样的点的个数。

2、采样量化:

采样精度(采样深度):每个样本点的大小,常见的大小为8bit、16bit、24bit.

通道数:单声道、双声道、四声道、5.1声道

比特率:每秒传输的bit数,单位为:bps(Bit Per Scecond)

码率:

1.帧

 2.帧长

四:关于封装格式的一些知识

封装格式

音视频同步问题



一、视频中的主要概念:

1、视频码率

kb/s  是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流精度就越高。

2、视频帧率

fps 通常说的一个视频60帧  即1秒显示25张图

3、视频分辨率

分辨率就是常说的640*480   1920*1080

二、I帧、 P帧、 B 帧、GOP帧

1、I 帧(Intra coded frames):

I帧不需要参考其他画面而生成,解码时仅靠自己就能重构完整图像。 I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是I帧,因为它是关键帧。I帧是P帧和B帧的参考帧,且I帧是周期性出现在图像序列中,出现频率可以由编码器来设置。I帧是帧组GOP 的基础帧即第一帧,在一组中只有一个I帧。

2、P帧 (Predicted frames):

根据本帧与相邻的前一帧(I帧或P帧)的不同来压缩本帧数据,P帧为向前预测,参考的是前面最靠近的I帧或P帧。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依耐性,因此对传输错误非常敏感。

3、B帧(Bi-directional predicted frames):

B帧图像采用双向时间预测,可以提高压缩倍数

4、GOP( group of pictures)

指的是两个I帧之间的间隔. 比较说GOP为120,如果是720 p60 的话,那就是2s一次I帧。

5、DTS、PTS 的概念
 

DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。
PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。
需要注意的是:虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的。
 

三、音频中的一些概念

我们都知道课本中用来便是声音会有这样一个波形图

音视频开发学习--01音视频基础知识_第1张图片

但是计算机并不能用这样连续的、光滑曲线来表示声音。解决办法是通过每隔固定的时间对波形的大小进行采样。如图所示

这里用到了PCM脉冲编码调制(Pulse Code Modulation),脉冲编码调制。人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号。

1、采样频率:每秒钟采样的点的个数。

如:常见的采样频率  22000(22kHz):无线广播

                                  96000(96Khz):蓝光,高清DVD

根据奈奎斯特采样定理(详见这一篇博客奈奎斯特采样定理(Nyquist) - MyCPlusPlus - 博客园 (cnblogs.com))

要从采样中完全恢复原始信号波形,我们所需要的采样频率必须至少是信号中最高频率的两倍时才能解决离散信号能够重建出连续信号的问题。、

例如:人耳能听到的频率范围是20Hz~20KHz,所以采样频率至少为44.Khz才能保证经过数字化处理后,人耳能听到的声音质量不会降低

2、采样量化:

音视频开发学习--01音视频基础知识_第2张图片

为了更高效地保存和传输每个采样点的数值,将这些振幅值进行规整,这一过程称为量化。

量化的过程会损失一定的精度,按照精度可以将量化分为8位量化、16位量化、32位量化等。

注:量化的精度等于相邻两个整数所表示的实数的差值(标准),如果两个实数之间的差距小于这个差值,他们便会被量化为同一个整数。(可以看文章开头的那张图,连续的信号号最后被转变为了阶梯状的图像)

音视频开发学习--01音视频基础知识_第3张图片

下图是一个3位量化的示意图,可以看出3位量化只能表示8个值:0.75,0.5,0.25,0,─0.25,─0.5,─0.75和   ─1,因而量化位数越少,波形就越难辨认,还原后的声音质量也就越差(可能除了一片嗡嗡声之外什么都没有)

音视频开发学习--01音视频基础知识_第4张图片

  1. 采样精度(采样深度):每个样本点的大小,常见的大小为8bit、16bit、24bit.

  2. 通道数:单声道、双声道、四声道、5.1声道

  3. 比特率:每秒传输的bit数,单位为:bps(Bit Per Scecond)

用来衡量声音质量的一个标准

没有压缩的音频数据的比特率= 采样频率*采样精度*通道数

  1. 码率

就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。常见的码率 128-160kbps:一般质量的音频

192kbps:CD质量

       码率越大。压缩效率越低,音质越好,压缩后数据越大

       码率=音频文件大小/时长

音视频开发学习--01音视频基础知识_第5张图片

1.帧

每次编码的的采样单元数。例:MP3  将1152个采样点作为一编码单元,ACC通常是1024个采样点作为一个编码单元。

 2.帧长

就是指数据帧的长度。

所谓数据帧(Data frame),就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包。

数据在网络上是以帧为单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧一般由网络驱动程序生成,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。

也指每帧播放的持续时间:每帧持续时间(秒) = 每帧采样点数/采样频率(Hz)

比如:Mp3  48K  1152个采样点 每帧24毫秒

  1. 交错模式:数字音频信号的存储方式。数据以连续帧的方式存放,即首先记录帧1的左声道样本和右声道样本,在开始记录帧2的记录

音视频开发学习--01音视频基础知识_第6张图片

LRLRLRLRLRLRLRLRL

非交错模式:首先记录的是一哥周期内的所有帧的左声道样本,再记录所有右声道样本

音视频开发学习--01音视频基础知识_第7张图片

LLLLLLLLLLLRRRRRRRRRR

1帧

1204个L  1024个R

NOTE: 视频压缩编码和音频压缩编码的基本原理_雷霄骅(leixiaohua1020)的专栏-CSDN博客_音频编码 音频压缩编码通过去除冗余信息来实现对音频数字信息的压缩

一些常见的音频编解码器选型:OPUS MP3 ACC AC3和EAC3(杜比公司的方案)

四:关于封装格式的一些知识

  1. 封装格式

音视频开发学习--01音视频基础知识_第8张图片

封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中。如下图:

封装格式一览

名称

推出机构

流媒体

支持的视频编码

支持的音频编码

目前使用领域

AVI

Microsoft Inc.

不支持

几乎所有格式

几乎所有格式

BT下载影视

MP4

MPEG

支持

MPEG-2, MPEG-4, H.264, H.263

AAC, MPEG-1 Layers I, II, III, AC-3

互联网视频网站

TS

MPEG

支持

MPEG-1, MPEG-2, MPEG-4, H.264

MPEG-1 Layers I, II, III, AAC,

IPTV,数字电视

FLV

Adobe Inc.

支持

Sorenson, VP6, H.264

MP3, ADPCM, Linear PCM, AAC

互联网视频网站

MKV

CoreCodec Inc.

支持

几乎所有格式

几乎所有格式

互联网视频网站

RMVB

Real Networks Inc.

支持

RealVideo 8, 9, 10

AAC, Cook Codec, RealAudio Lossless

BT下载影视

H264+ACC 封装为FLV 或MP4 这是主流的形式

  1. 音视频同步问题

DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。

PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。

Audio Master:同步视频到音频

Video Master:同步音频到视频

External Clock Master:同步音频和视频到外部时钟

你可能感兴趣的:(音视频学习,音视频,ffmpeg)