公众号旧文

油管把一个视频保存几十个版本,不浪费吗?

作者:胖子阅读 —

很多人第一次用 yt-dlp,看见一个视频能列出几十个 format,都会产生一个直觉:

一个视频保存这么多版本,不浪费存储空间吗?

答案是:

不仅不浪费,而且这是YouTube能支撑全球播放的核心设计。

下面这篇文章,我们不从用户视角,而是从流媒体底层架构,把这件事一次讲透。

一、直觉里的浪费,其实是误会

从表面看,一个视频可能同时存在:

  • 2160p / 1440p / 1080p / 720p
  • 30fps / 60fps
  • AVC / VP9 / AV1

看起来就像:

一个视频 × 十几种版本 = 磁盘爆炸

但这其实是用「本地文件思维」去理解「流媒体系统」,本身就错位了。

二、第一层关键设计:视频和音频是完全分离的

你用 yt-dlp 时一定见过这种情况:

401:只有视频,没有声音

251:只有音频,没有画面

这是因为 YouTube 采用的是DASH(动态自适应流媒体)架构。

这意味着什么?

❌ 不存在“4K60 + 音频”的完整文件

✅ 只有:

多条视频轨(不同分辨率 / 帧率 / 编码)

少数几条音频轨(Opus / AAC)

一条音频轨,可以服务:

720p / 1080p / 4K / 4K60

音频只存一次,就能复用给所有视频规格。

仅这一点,就已经省掉了大量空间。

三、第二层关键设计:不是“存文件”,而是“存切片”

YouTube 实际存的,并不是完整视频文件,而是类似这样的结构:

video_401/
├── seg_0001.m4s
├── seg_0002.m4s
├── seg_0003.m4s

每一段切片的特点

时长通常只有2~5秒

可以独立请求

可以独立缓存

可以独立失效

这带来什么好处?

拖动进度条不卡:只加载目标时间段

CDN缓存命中率极高:热门前 30 秒全球缓存

容错能力强:坏一段不影响整条视频

所以,看起来是很多版本,

但本质上是:

一套可以随意组合的积木,而不是一堆完整成品。

四、第三层关键设计:多编码不是浪费,而是硬件分流

很多人会问:

同一个4K60,为什么还要存AVC、VP9、AV1?

答案是:不同设备,只认不同编码。

用户设备 实际使用的编码
老电视 / 老安卓 AVC (H.264)
2018–2022 年设备 VP9
新显卡 / 新手机 AV1

关键点在这里:

同一个用户,只会用其中一条轨道。

不存在同一个人反复浪费带宽的问题。

YouTube 做的,只是为不同硬件世代准备最合适的一条路。

五、第四层关键设计:格式不是永久保存,而是按热度晋级

你可能不知道的是:

不是所有视频,都会长期保留所有格式。

大致逻辑是:

视频热度 通常保留的规格
冷门视频 1080p AVC
中等热视频 1440p / VP9
热门视频 4K / VP9
顶流内容 4K60 / AV1

也就是说:

AV1是“需要资格”的

能看到 4K60 AV1,本身就说明视频权重不低

YouTube 并不是对每个视频都无脑堆满规格。

六、反直觉但真实:多版本反而更省带宽

假设一个极端情况:

YouTube 只存 4K

你用手机看 1080p

那服务器就必须:

4K → 实时转码 → 下采样 → 发送

这在全球规模下,算力和带宽都会直接爆炸。

现在的做法是:

服务器直接给你1080p VP9

无需转码

CDN 高命中

这比只存一个版本省得多。

七、为什么 yt-dlp 看起来乱?

因为:

yt-dlp 展示的是「机器可用的所有构件」

而不是:

「给某一个人准备的最终成品」

八、一句话总结

YouTube不是在存很多视频而是在存一个视频的所有未来可能性

而当你开始自己看format、选编码、比帧率时——

你已经站在了懂行的人那一侧。

如果你看到这里,会发现:yt-dlp不是下载工具,而是YouTube底层的一扇后门。