我们在知识星球上创建的音视频技术社群关键帧的音视频开发圈已经运营了一段时间了,在这里大家可以一起交流和分享音视频技术知识和实战方案。我们会不定期整理一些音视频相关的面试题,汇集一份音视频面试题集锦(可进入免费订阅)。也会循序渐进地归纳总结音视频技术知识,绘制一幅音视频知识图谱(可进入免费订阅)。
关注一下,保持联系:
下面一名音视频技术面试官在面试中常用的一些开场基础面试题,包含音视频基础概念、编解码、传输协议、性能优化等方面。
1、I 帧、P 帧和 B 帧的概念及区别?
这三种帧的主要区别在于它们的压缩方式和相互依赖关系:
I 帧(关键帧)
完整编码的独立帧 不依赖其他帧,可独立解码 压缩率最低,但支持随机访问 P 帧(预测帧)
仅包含与前一帧的差异信息 依赖前面的 I 帧或 P 帧 压缩率高于 I 帧 B 帧(双向预测帧)
参考前后两帧进行编码 压缩率最高 需要更多的解码资源
2、视频编码中的码率控制技术有哪些?
码率控制是调节视频编码输出码率的技术:
CBR(固定码率)
保持稳定的码率输出 适合直播等场景 VBR(可变码率)
根据画面复杂度动态调整码率 画质更好 ABR(平均码率)
在一段时间内保持平均码率 兼顾画质和带宽 CQP(固定质量)
保持固定的量化参数 码率会随画面变化
3、音频采样参数有哪些?
音频采样的关键参数:
采样率
8kHz(电话) 44.1kHz(CD音质) 48kHz(专业音频) 每秒采样次数 常见值: 位深度
每个采样点的数据位数 常见值:16bit、24bit、32bit 一般手机通话使用 8kHz/16bit 音乐播放使用 44.1kHz/16bit
4、RTMP 和 HLS 协议各有什么特点?如何选择?
RTMP
基于 TCP 延迟低(1-3秒) 实时性好,适合直播 穿透防火墙能力较弱 HLS
基于 HTTP 兼容性好 延迟较高(>5秒) 自适应码率 支持点播和直播
选择建议:对延迟要求高的场景选择 RTMP,需要跨平台兼容性好的场景选择 HLS。
5、WebRTC 中的 ICE、STUN、TURN 各有什么作用?
ICE(交互式连接建立):收集并尝试各种可能的网络连接路径 STUN:帮助位于 NAT 后的设备获取公网 IP 地址和端口 TURN:当点对点连接失败时,提供中继服务器进行数据转发
6、AAC 编码的 Profile 有什么区别?
AAC-LC
最基本的 Profile 编码效率和音质适中 AAC-HE(AAC+)
在 AAC-LC 基础上增加 SBR 技术 更适合低码率 AAC-HE v2
在 AAC-HE 基础上增加 PS 技术 进一步降低码率 AAC-LD
低延迟版本 适合实时通信
7、视频播放内存优化有哪些方向?
主要优化方向:
使用硬件解码替代软件解码 合理设置解码缓冲区大小 及时释放不需要的解码帧 使用纹理复用机制 控制预加载的数据量 适当降低分辨率和帧率
8、H.264 和 H.265 有哪些区别?
主要区别:
H.265 比 H.264 有更高的压缩率(同画质下码率可降低 50%) H.265 支持更大的编码单元和更灵活的分区 H.265 的计算复杂度更高 H.265 的专利费用较高
选择建议:
对带宽敏感,设备性能足够时选择 H.265 需要广泛兼容性或设备性能受限时选择 H.264
9、你对音视频同步有哪些理解?
时间戳概念:
PTS(显示时间戳):标识帧应该在什么时候显示 DTS(解码时间戳):标识帧应该在什么时候解码
音视频同步方法:
以音频为基准进行同步 通过比较音视频 PTS 调整视频显示时间 设置同步阈值,超出范围时进行追赶或等待
10、弱网环境下的音视频卡顿要如何优化?
主要处理策略:
自适应码率:根据网络状况动态调整码率 丢帧策略:网络拥塞时优先丢弃 B 帧和 P 帧 缓冲区管理:动态调整缓冲区大小 FEC(前向纠错):增加冗余数据用于恢复丢包 NACK(丢包重传):检测到丢包时请求重传 音频优先:确保音频流畅、保证基本的通信体验
上面这些面试题覆盖了音视频开发中的重要概念和实践问题,可以帮助评估候选人的专业知识深度和实战经验。面试官可以根据候选人的回答深度继续追问细节,或者结合实际项目经验展开讨论。
你对哪些方面还想了解更细节的面试题呢?
更多的音视频知识、面试题、技术方案干货可以进群来看: