音视频面试题集锦第 1 期

想要学习和提升音视频技术的朋友,快来加入我们的【音视频技术社群】,加入后你就能:

  • 1)下载 30+ 个开箱即用的「音视频及渲染 Demo 源代码」
  • 2)下载包含 500+ 知识条目的完整版「音视频知识图谱」
  • 3)下载包含 200+ 题目的完整版「音视频面试题集锦」
  • 4)技术和职业发展咨询 100% 得到回答
  • 5)获得简历优化建议和大厂内推

现在加入,送你一张 20 元优惠券:点击领取优惠券

微信扫码也可领取优惠券

前些时间,我在知识星球上创建了一个音视频技术社群:关键帧的音视频开发圈,在这里群友们会一起做一些打卡任务。比如:循序渐进地归纳总结音视频技术知识,绘制一幅音视频知识图谱,你可以看看《音视频知识图谱 2022.03》。再比如:周期性地整理音视频相关的面试题,汇集一份音视频面试题集锦

下面是 2022.04 月音视频面试题集锦内容的节选:

1)RTMP 消息分优先级的设计有什么好处?

RTMP 的消息优先级是:控制消息 > 音频消息 > 视频消息。当网络传输能力受限时,优先传输高优先级消息的数据。

要使优先级能够有效执行,分块也很关键:将大消息切割成小块,可以避免大的低优先级的消息(如视频消息)堵塞了发送缓冲从而阻塞了小的高优先级的消息(如音频消息或控制消息)。

2)什么是 DTS 和 PTS?它们有什么区别?

DTS 是解码时间戳;PTS 是显示时间戳。

虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的。

当视频流中没有 B 帧时,通常 DTS 和 PTS 的顺序是一致的。但如果有 B 帧时,就回到了我们前面说的问题:解码顺序和播放顺序不一致了。DTS 告诉我们该按什么顺序解码这几帧图像,PTS 告诉我们该按什么顺序显示这几帧图像。

3)什么是 IDR 帧?它和 I 帧有什么区别?

IDR 帧全称叫做 Instantaneous Decoder Refresh,是 I 帧的一种。IDR 帧的作用是立刻刷新,重新算一个新的序列开始编码,使错误不致传播。

IDR 帧有如下特性:

  • IDR 帧一定是 I 帧,严格来说 I 帧不一定是 IDR 帧(但一般 I 帧就是 IDR 帧);
  • 对于 IDR 帧来说,在 IDR 帧之后的所有帧都不能引用任何 IDR 帧之前的帧的内容。与此相反,对于普通的 I 帧来说,位于其之后的 B 和 P 帧可以引用位于普通 I 帧之前的 I 帧(普通 I 帧有被跨帧参考的可能);
  • 播放器永远可以从一个 IDR 帧播放,因为在它之后没有任何帧引用之前的帧。因此,视频开头的 I 帧一定是 IDR 帧;一个封闭类 GOP 的开头的 I 帧也一定是 IDR 帧。

所以,在直播场景通常每个 I 帧都是 IDR 帧,这样服务端下发流数据的时候总是从一个 I 帧开始,播放器就可以立即开始播放。

4)什么是 SPS 和 PPS?它们有什么区别?

SPS,Sequence Paramater Set,保存了一组编码后的图像序列所依赖的全局参数。

PPS,Picture Paramater Set,保存了每一帧编码后的图像所依赖的参数。

SPS 中的信息至关重要,如果其中的数据丢失,解码过程就可能失败。SPS 和 PPS 通常作为解码器的初始化参数。一般情况,SPS 和 PPS 所在的 NAL 单元位于整个码流的起始位置,但是在某些场景下,在码率中间也可能出现这两种结构:

  • 解码器要在码流中间开始解码。比如,直播流。
  • 编码器在编码过程中改变了码率的参数。比如,图像的分辨率。

5)什么是 SEI?我们可以用它来做什么?

SEI 即补充增强信息(Supplemental Enhancement Information),属于码流范畴,它提供了向视频码流中加入额外信息的方法,是 H.264 标准的特性之一。

SEI的基本特征如下:

  • 并非解码过程的必须选项;
  • 可能对解码过程(容错、纠错)有帮助;
  • 集成在视频码流中。

在直播场景,我们通常使用 SEI 来携带推流端的信息,一直随着直播流传输到播放端。由于 SEI 是绑定着视频帧,所以它可以支持诸如:

  • 统计直播推流端到播放端延时。
  • 支持和视频帧绑定的内容交互。比如,直播答题在播放端的弹窗等。

6)什么是 MP4 的 moov Box?我们在封装 MP4 时通常怎么处理它?为什么?

moov Box 即 Movie Box,MP4 中存储所有媒体数据的索引信息的 Box。moov Box 可以说是 MP4 文件中最重要的 Box,一般播放器的实现都需要读取到 moov 的数据才能开始播放流程。

对于通过网络播放 MP4 视频的场景,都建议将视频处理为 moov 前置。因为 moov 前置后,从网络读取和播放 MP4 文件时,就可以较快获取到 moov 的数据并开始播放。


本文转自微信公众号 关键帧Keyframe,推荐您关注来获取音视频、AI 领域的最新技术和产品信息

微信扫码关注我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值