音视频回放系统学习笔记
适合目标:系统掌握音视频回放与点播系统的架构设计、录制存储、切片索引、拖拽播放与播放控制。
学习定位:这一份偏“录制、回放、点播、播放控制”。
学习原则:先分清直播与回放的目标差异,再理解存储、切片和播放索引。
目录
- 回放系统是什么
- 回放系统和直播系统的区别
- 回放系统总体架构
- 录制、切片、索引、存储
- 回放播放链路
- 拖拽、倍速、清晰度切换
- 高频面试题
- 一页总结
1. 回放系统是什么
回放系统本质上是在解决:
- 已经产生的音视频内容如何存下来
- 后续如何稳定播放
- 如何支持拖拽、倍速、断点续播和多清晰度切换
2. 回放系统和直播系统的区别
直播更强调:
- 实时性
- 持续流式传输
回放更强调:
- 存储
- 索引
- 控制
- 稳定播放体验
3. 回放系统总体架构
直播或会议录制
-> 转封装 / 转码
-> 切片
-> 存储到对象存储/CDN
-> 播放端根据索引拉取片段回放
4. 录制、切片、索引、存储
4.1 录制
来源可以是:
- 直播录制
- 会议录制
- 本地录制上传
4.2 切片
把长音视频切成小段,有利于:
- CDN 分发
- 拖拽定位
- 断点续播
4.3 索引
索引记录:
- 片段时间范围
- 片段地址
- 清晰度信息
4.4 存储
常见:
- 对象存储
- CDN 回源
5. 回放播放链路
用户请求播放
-> 获取播放地址和索引
-> 播放器按需请求片段
-> 解封装、解码
-> 播放渲染
6. 拖拽、倍速、清晰度切换
6.1 拖拽
本质上是:
- 根据目标时间定位对应片段
- 从新位置继续拉取播放
6.2 倍速
要考虑:
- 音频变速不变调
- 解码与播放同步
6.3 清晰度切换
依赖:
- 多码率文件
- 切换时序
- 缓冲衔接
7. 高频面试题
7.1 回放和直播最大的差异是什么
直播看实时,回放看存储、索引和播放控制。
7.2 回放为什么要切片
为了提高拖拽、缓存、分发和播放稳定性。
7.3 回放系统核心模块有哪些
- 录制
- 转码/转封装
- 切片
- 索引
- 存储
- 播放器
8. 一页总结
8.1 回放系统关键词
录制、切片、索引、存储、拖拽、倍速、清晰度切换。
8.2 记忆口诀
直播看实时,回放看文件组织和播放控制。