菜鸟修炼笔记-音视频开发基础知识-音频帧、视频帧及其同步

本文介绍了音视频帧的基础概念,包括音频帧的帧大小、帧长度、每帧持续时间,视频帧的图片类型、帧类型及GOP。同时,探讨了DTS与PTS的区别及其关系,以及音视频同步的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

初步了解了一些专有名词之后,我在同一个博主处找到“音频帧、视频帧及其同步”的资料,那么接下来就学习整理一下这篇博文,学习音频帧和视频帧的主要参数和分析方法,从而进一步了解音视频的相关知识。
【ps:本文的引用来源,见本文底部的参考资料】

一。音频帧和视频帧的主要参数和分析方法

1. 音频帧

音频帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可以简单的认为一帧就是编码后的一副图像,而音频帧会因编码格式的不同而不同,如 PCM 音频流可以直接进行播放。

1.1 帧大小

(1)原文定义:

帧大小指每帧的采样数,这个值的恒定的。

(2)我的理解:由上一篇博文《菜鸟修炼笔记-音视频开发基础知识-专有名词解析》可知,帧率是指每秒显示的帧数,采样率是每秒的采样数,根据三者定义可得:采样率=帧率*帧大小

1.2 帧长度

(1)原文定义:

  1. 帧长度指压缩时每一帧的长度(字节),包括帧头及填充位。
  2. 帧头:是指每一帧中前面一部分字节,用来储存一些必要的控制信息。
  3. 填充位:作用是用来精准匹配比特率。(意思应该是说:每一帧的长度不一定恰好是比特率的长度倍数,需要填充位来确保帧的长度都是和比特率相匹配的。)每一帧里面有一部分长度是用来填充的,是否有填充位可以在帧头的第九位得知,如果是 0 则无填充位,如果是 1 则有填充位。
  4. 帧长度不是恒定的。

(2)帧长度的计算公式:

 帧长度 = 每帧采样数(帧大小) * 码率(比特率) / 采样率 /8+ 填充位位数 * 每一填充位所占字节

公式的理解:

  1. 比特率 / 采样率 = 每次采样会采样多少比特的数据
  2. 比特率 / 采样率/8 = 每次采样的数据所占字节数
  3. 每帧采样数(帧大小) * 码率(比特率) / 采样率 /8 = 每帧所获得的数据所占字节长度

1.3 每帧持续时间

(1)定义:

即每一帧持续的时间。(单位:ms)

(2)每帧持续时间的计算公式:

 每帧持续时间= 每帧采样数(帧大小) / 采样率 *1000

公式的理解:

  1. 采样率 = 每秒采样数
  2. 每帧采样数(帧大小) / 采样率 = 一帧有多少秒

2. 视频帧

在视频压缩技术中,视频帧采用不同的压缩算法来减少数据量,通常只编码图像之间的差异之处,相同的元素信息则不必重复发送,视频帧的不同算法一般称之为图片类型(picture types)或者帧类型(frame types)

2.1 图片类型

主要的三种图片类型分别是 I、P 和 B:

1. I 帧(帧内编码帧):

(1)特点:

a. 可压缩性最低,无需其他视频帧即可编码。
b. 可以说是一张完整的图片。

(2)用途:

 a. 通常是每个 GOP(下文介绍) 的第一帧;
 b. 通常,I 帧用于随机访问,并用作其他图片解码的参考。

2. P 帧(前向预测帧)(增量帧):

(1)特点:

 a. 相较 I 帧更具压缩性,节省了空间;
 b. 表示与前一帧(I 或 P 帧)之间的差别,需要参考前面的 I 帧或 P 帧才能生成完整的图片

(2)用途:

  a. 通常是每个 GOP(下文介绍) 的节点;

3. B 帧(双向预测编码帧):

(1)特点:

  a. 压缩性最大;
  b. 表示与前后两帧的差异,需要参考前面的 I 帧或 P 帧及后面的 P 帧来生成一张完成的图片

(2)用途:

 a. 在I帧和P帧之间使用,用来节省空间。

PS:

在 H.264 / MPEG-4 AVC 标准中,预测类型的粒度降低到切片(Slice)级别,切片是帧的空间上不同的区域,该区域与同一帧中的任何其他区域分开进行编码,I 切片,P切片和 B 切片取代了 I、P 和 B 帧,这部分内容暂时了解这么多。

2.2 帧类型

原博文无相关内容,待补充。

2.3 GOP(Group of pictures图片组)

GOP的第一帧成为关键帧:IDR

IDR都是I帧,可以防止一帧解码出错,导致后面所有帧解码出错的问题。当解码器在解码到IDR的时候,会将之前的参考帧清空,重新开始一个新的序列,这样,即便前面一帧解码出现重大错误,也不会蔓延到后面的数据中。如下图所示:

GOD示意图

3. DTS与PTS

3.1 DTS(Decoding Time Stamp):

解码时间戳,表示压缩帧的解码时间,相当于告诉播放器什么时候解码这一帧的数据。

3.2 PTS(Presentation Time Stamp):

显示时间戳,表示将压缩帧解码后得到的原始帧的显示时间,相当于告诉播放时什么时候显示这一阵的数据。

3.3 DTS与PTS的关系

对于音频来说,DTS 和 PTS 是相同的,对于视频来说,由于 B 帧是双向预测帧,这就导致 DTS 与 PTS 不同,如果每个 GOP 没有 B 帧,则 DTS 和 PTS 相同,反之则 DTS 与 PTS 不同

二。音视频同步

1. 音视频播放过程简介:

(1)从摄像头和麦克风采集数据。
(2)进行音频、视频编码。
(3)将音视频进行格式封装,生成媒体文件。
(4)需要播放时,获取媒体文件。
(5)对媒体文件进行解复用,将音视频分开。
(6)对音频和视频进行解码。
(7)将音频和视频分开独立播放。

2. 音视频同步过程:

2.1 获取音频和视频的两个相关指标:

(1)音频:采样率。(每秒采样数)
(2)视频:帧率。(每秒帧数)

2.2 计算音频和视频的每帧播放时长:

(1)音频的每帧持续时间的计算方式见上文,即:
每帧持续时间(ms)= 每帧采样数(帧大小) / 采样率 *1000
(2)视频的每帧播放时长:
每帧持续时间(ms) = 1000/帧率

2.3 调整音频和视频以实现同步:

(1)调整音频和视频的每帧播放时间为基本相等。
(2)采用音视频同步方式(其实就是以那个时间为标准进行同步的问题)进行同步:

a.【视频同步到音频】:常采用这种方式,因为对于延迟以及卡顿,人的听觉较视觉更为敏感。
b.【音频同步到视频】
c.【音视频同步到外部时钟】

2.4 采用反馈机制调整音视频速度:

当视频慢于音频就要加快视频的播放速度,可以适当丢帧弥补追上音频,如果已经有延迟减小延迟也可以,反之则减小视频的播放速度。

三。参考资料

  1. 音频帧、视频帧及其同步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值