文章目录

音视频回放系统学习笔记

适合目标:系统掌握音视频回放与点播系统的架构设计、录制存储、切片索引、拖拽播放与播放控制。
学习定位:这一份偏“录制、回放、点播、播放控制”。
学习原则:先分清直播与回放的目标差异,再理解存储、切片和播放索引。


目录

  1. 回放系统是什么
  2. 回放系统和直播系统的区别
  3. 回放系统总体架构
  4. 录制、切片、索引、存储
  5. 回放播放链路
  6. 拖拽、倍速、清晰度切换
  7. 高频面试题
  8. 一页总结

1. 回放系统是什么

回放系统本质上是在解决:

  1. 已经产生的音视频内容如何存下来
  2. 后续如何稳定播放
  3. 如何支持拖拽、倍速、断点续播和多清晰度切换

2. 回放系统和直播系统的区别

直播更强调:

  1. 实时性
  2. 持续流式传输

回放更强调:

  1. 存储
  2. 索引
  3. 控制
  4. 稳定播放体验

3. 回放系统总体架构

直播或会议录制
  -> 转封装 / 转码
  -> 切片
  -> 存储到对象存储/CDN
  -> 播放端根据索引拉取片段回放

4. 录制、切片、索引、存储

4.1 录制

来源可以是:

  1. 直播录制
  2. 会议录制
  3. 本地录制上传

4.2 切片

把长音视频切成小段,有利于:

  1. CDN 分发
  2. 拖拽定位
  3. 断点续播

4.3 索引

索引记录:

  1. 片段时间范围
  2. 片段地址
  3. 清晰度信息

4.4 存储

常见:

  1. 对象存储
  2. CDN 回源

5. 回放播放链路

用户请求播放
  -> 获取播放地址和索引
  -> 播放器按需请求片段
  -> 解封装、解码
  -> 播放渲染

6. 拖拽、倍速、清晰度切换

6.1 拖拽

本质上是:

  1. 根据目标时间定位对应片段
  2. 从新位置继续拉取播放

6.2 倍速

要考虑:

  1. 音频变速不变调
  2. 解码与播放同步

6.3 清晰度切换

依赖:

  1. 多码率文件
  2. 切换时序
  3. 缓冲衔接

7. 高频面试题

7.1 回放和直播最大的差异是什么

直播看实时,回放看存储、索引和播放控制。

7.2 回放为什么要切片

为了提高拖拽、缓存、分发和播放稳定性。

7.3 回放系统核心模块有哪些

  1. 录制
  2. 转码/转封装
  3. 切片
  4. 索引
  5. 存储
  6. 播放器

8. 一页总结

8.1 回放系统关键词

录制、切片、索引、存储、拖拽、倍速、清晰度切换。

8.2 记忆口诀

直播看实时,回放看文件组织和播放控制。