🎬 第二章 音视频入门
📄 一句话概括

短、竖、快、互动四条里,对技术最狠的是【快】——用户手指滑走了,你就是零,所以绝大部分优化都花在【第一帧多快出来】上。

📝 本节和前面几节的关系

2.5.1 介绍了短视频,这一节拆开它的四个特点,看每条对应什么技术要求。

一、特点一:短

15 秒到 3 分钟,意味着首帧必须极快、码率必须极低。 长视频可以慢慢缓冲,短视频没这个机会——用户看不到第一帧就已经滑走了。 所以短视频普遍把码率压到 3~6 Mbps,用质量换加载速度。

二、特点二:竖

竖屏是全屏占满的形态,分辨率比例与影视标准完全不同(1080 × 1920 而不是 1920 × 1080)。 这对转码流水线有直接影响:同一套模板要重新算一遍参数。 而且竖屏画幅更窄,人眼关注的部分更集中——构图变了,编码时关注的区域也变了。

三、特点三:快

上下滑动即换,意味着每次切换都是一次全新的播放请求。 所以短视频平台普遍用预加载:在你还没滑的时候,下一条已经在下了。 对技术最狠的就是这一条——用户手指滑走了,你就是零。

四、特点四:互动

点赞、评论、转发——这些动作要低延迟回传,而且要和服务端状态保持同步。 对音视频本身影响不大,但它意味着播放器不是孤立的,要和一堆业务接口配合。 这也是为什么短视频客户端工程师往往要懂一点后端。

五、动手 Demo:短视频凭什么火——四个特点

四个特点,每个都对应一条明确的技术需求。

traits = [
    ("短", "15 秒~3 分钟", "首帧要快、码率要低"),
    ("竖", "竖屏全屏占满", "分辨率比例反常规"),
    ("快", "上下滑即换",   "秒开、边下边播"),
    ("互动", "点赞、评论、转发", "低延迟回传"),
]
for name, feat, need in traits:
    print("%-4s %-12s -> %s" % (name, feat, need))

实跑输出:

--------------------------------------------------------------------
短视频凭什么火——四个特点
--------------------------------------------------------------------

  特点     具体表现             对技术的需求
  -------------------------------------------------
  短       15 秒~3 分钟         首帧要快、码率要低
  竖       竖屏全屏占满         分辨率比例反常规
  快       上下滑即换           秒开、边下边播
  互动     点赞、评论、转发     低延迟回传

  四条里对技术最狠的是第三条【快】:**用户手指滑走了,你就是零。**
  所以短视频的绝大部分优化,都花在【第一帧多快出来】上。

四条里对技术最狠的是第三条【快】。 用户手指滑走了,你就是零——所以优化几乎都花在首帧上。

30 秒实验

  1. 打开你常用的短视频 App,数一数从点开到画面出现用了多久(心里数秒)。
  2. 再想想:它在你滑动之前,可能已经预载了几条?

常见误区

  1. 以为竖屏只是把画面转个方向。它改变了分辨率比例、构图和编码参数。
  2. 以为【快】只是网络问题。预加载策略与首帧编码同样关键。
自测三问(点开对答案) 1. 短视频四个特点分别是什么? —— 短、竖、快、互动。 2. 哪一条对技术的要求最苛刻?为什么? —— 快——每次滑动都是新请求,用户滑走就等于零。 3. 短视频平台为什么普遍预加载? —— 用后台下载换前台秒开,把等待藏到用户还没滑的时候。

相关笔记