📄 一句话概括
描述一段视频,只要看五个参数:分辨率、帧率、码率、时长、关键帧间隔——前四个决定【有多大】,最后一个决定【能不能拖得动】。
📝 本节和前面几节的关系
前面三节分别讲了像素、颜色、数据量,这一节把描述视频的五个常用概念排齐。
一、五个参数
分辨率:画面有多少像素——决定清晰程度的上限。 帧率:每秒多少帧——决定动作的流畅程度。 码率:每秒多少数据——决定文件大小与画质。 时长:一共多长——和码率相乘就是总体积。 关键帧间隔:多久出现一个可以独立解码的帧。
二、四个参数决定【多大】
前四个是一组:分辨率与帧率决定【原始数据有多少】,码率决定【压完还剩多少】。 这里有个重要区别:分辨率与帧率是【源】,码率是【果】。 同样的分辨率与帧率,码率高的画质好、文件大——这是一个取舍,不是一个优劣。
三、关键帧间隔容易被忽略
关键帧间隔(GOP 长度)说的是:每隔多少帧有一个能独立解码的帧。 间隔长 → 文件更小,但要拖到某个位置播放,就得从更早的关键帧开始解。 所以短视频常用较密的关键帧——用户拖一下就要立刻响应。 反过来,影视存档会放宽间隔,优先换体积。
四、怎么用这五个参数
拿到一段视频,先读这五项,基本就能判断它是什么规格的产物。 遇到问题时也先看这五项——很多问题看一眼参数就知道方向。 比如【拖动很卡】,先看关键帧间隔;【画面糊】,先看码率与分辨率。
五、动手 Demo:描述一段视频,要看哪五个参数
拿到一段视频,先看这五项,基本就能判断它是什么规格。
rows = [("分辨率", "像素", "画面的清晰程度"), ("帧率", "fps", "动作的流畅程度"),
("码率", "bps", "文件大小与画质上限"), ("时长", "秒", "总数据量"),
("关键帧间隔", "帧", "能不能快速拖动定位")]
for a, b, c in rows:
print("%-12s %-6s %s" % (a, b, c))
实跑输出:
--------------------------------------------------------------------
描述一段视频,要看哪五个参数
--------------------------------------------------------------------
拿到一段视频,先看这五项,基本就能判断它是什么规格。
概念 单位 决定什么
-------------------------------------------
分辨率 像素 画面的清晰程度
帧率 fps 动作的流畅程度
码率 bps 文件大小与画质上限
时长 秒 总数据量
关键帧间隔 帧 能不能快速拖动定位
五项里最容易忽略的是**关键帧间隔**——
它长一点,文件小;**但要从中途播就得等更久**。
五项里最容易忽略的是关键帧间隔—— 它长一点,文件小;但要从中途播就得等更久。
30 秒实验
- 用 ffprobe 读一段视频,把这五项参数各抄一个出来。
- 判断它是【点播优化】还是【存档优化】。
常见误区
- 把分辨率当成画质的全部。码率不够时,高分辨率反而更糊。
- 忽略关键帧间隔。它直接决定拖动播放的体验。
自测三问(点开对答案)
1. 描述视频的五个参数是什么? —— 分辨率、帧率、码率、时长、关键帧间隔。 2. 分辨率和码率的分工是什么? —— 分辨率与帧率决定原始数据量,码率决定压完之后的大小与画质。 3. 关键帧间隔长有什么好处和坏处? —— 好处是文件更小,坏处是拖动定位要从更早的地方开始解。- ☐ 下一节(5.1.5 视频格式)
相关笔记
- 数字视频 — 数据量怎么算出来
- 视频编解码流程 — 关键帧是怎么来的
- MediaInfo参数说明 — 这些参数的读法
- 🎬 FFmpeg入门详解 · 索引