📄 一句话概括
视频 = 一串静止画面,所以数据量是【一帧大小 × 帧率】——1080p30 未压缩约 1.5 Gbps,家用宽带根本扛不住。
📝 本节和前面几节的关系
5.1.1 和 5.1.2 讲了【一帧】怎么存,这一节把帧串起来,成为视频。
一、视频的本质是一串图
视频没有新东西:它就是一秒钟内闪过很多张图。 人眼有视觉暂留,每秒闪过 24 张以上,就会觉得是连续的。 所以描述视频只比描述图片多一个参数:每秒多少帧(fps)。
二、数据量怎么算
每帧大小 = 宽 × 高 × 每像素字节 每秒数据 = 每帧大小 × 帧率 总大小 = 每秒数据 × 时长 拿 1080p30 算一遍:1920 × 1080 × 3 × 30 ≈ 178 MB/秒,也就是约 1.5 Gbps。
三、这个数字意味着什么
家用宽带常见是 100~1000 Mbps,1.5 Gbps 已经超过大多数家庭的上限。 更麻烦的是:这还只是 30 帧、还没有声音。如果上 4K60,就是 12 Gbps。 所以对视频来说,【不压缩】不是省不省钱的问题,是根本传不了。
四、和音频对照着记
音频的数据量 = 采样率 × 位深 × 声道。 视频的数据量 = 分辨率 × 帧率 × 每像素字节。 两个公式是同一个思路:把三个参数一乘,就是它每秒要吃多少数据。 记住这个思路,后面算任何媒体的体积都不会卡住。
五、动手 Demo:视频为什么是【像素 x 帧率】的乘积
视频就是一串静止画面。数据量 = 每帧大小 × 每秒多少帧。
for res, w, h, fps in [("720p", 1280, 720, 30), ("1080p", 1920, 1080, 30),
("1080p", 1920, 1080, 60), ("2160p", 3840, 2160, 30)]:
print("%-7s %2d fps %.0f Mbps" % (res, fps, w * h * 3 * fps * 8 / 1000.0 / 1000))
实跑输出:
--------------------------------------------------------------------
视频为什么是【像素 x 帧率】的乘积
--------------------------------------------------------------------
视频就是一串静止画面。数据量 = 每帧大小 x 每秒多少帧。
分辨率 帧率 未压缩码率
---------------------------------
720p 30 fps 664 Mbps
1080p 30 fps 1493 Mbps
1080p 60 fps 2986 Mbps
2160p 30 fps 5972 Mbps
1080p30 的未压缩码率约 **1.5 Gbps**——
而家用宽带通常只有 100~1000 Mbps,**连一帧都传不顺畅**。
所以视频不压缩,根本没有【能不能播】这一说。
1080p30 的未压缩码率约 1.5 Gbps—— 而家用宽带通常只有 100~1000 Mbps,连一帧都传不顺畅。 所以视频不压缩,根本没有【能不能播】这一说。
30 秒实验
- 算一下 4K60 的未压缩码率,和 1080p30 比一下倍数。
- 再查一下你家的宽带上限,看差了多少。
常见误区
- 以为高帧率【只是更流畅】。它同时让数据量成比例上去了。
- 只算分辨率不算帧率。两个都要乘,缺一个都算不准。
自测三问(点开对答案)
1. 1080p30 的未压缩码率大约是多少? —— 约 1.5 Gbps(178 MB/s)。 2. 视频数据量的三个乘数是什么? —— 分辨率(每帧大小)、帧率、时长。 3. 为什么视频必须压缩? —— 未压缩码率远超传输与存储能力,根本传不了、存不下。- ☐ 下一节(5.1.4 视频的基础概念)
相关笔记
- 图像与像素 — 一帧有多大
- 视频压缩 — 这么大的数据怎么压下去
- 音频使用场景及应用 — 场景决定参数的同一个逻辑
- 🎬 FFmpeg入门详解 · 索引