📄 一句话概括
MediaInfo 看文件,码流分析看帧——排查【花屏出现在第几秒】这类问题,必须下到帧这一层。
📝 本节和前面几节的关系
3.3 看了容器层的 Tag,这一节再往下一层:看编码后的每一帧。先认识这类工具。
一、码流分析解决什么
前面两个工具都停在【文件】或【Tag】这一层。 但很多问题只有下到帧才能看出来:哪一帧数据异常、GOP 多长、哪一帧是 I 帧。 这类工具统称码流分析器(Stream Analyzer),工作是把压缩后的码流按帧拆开显示。
二、和 MediaInfo 的分界
MediaInfo 看文件:这是什么格式、码率多少、分辨率多少。 码流分析看帧:第 120 帧是 I 帧还是 P 帧、GOP 有多长、哪一帧异常。 一句话分界:一个是【看文件】,一个是【看帧】。
三、为什么必须工具来干
压缩后的码流是二进制,人眼直接看是乱码。 分析器做的事是按标准语法把这段二进制翻译成人能读的结构—— 这一层叫【语法元素】,比如 SPS、PPS、切片头。 没有工具,你面对的就是一堆 0 和 1。
四、什么时候需要它
三类场景:编码结果不对(花屏、卡帧)、参数不符合预期(GOP 太长)、要优化码率(找码率尖峰)。 这三类问题的共同点是:它们都不在【文件】这一层,而在【帧】这一层。 工具的选择永远跟着问题所在的层级走。
五、动手 Demo:为什么还要【码流分析】
MediaInfo 看的是【规格】,码流分析看的是【里面的每一帧】。
rows = [
("这是什么格式", "能", "能"),
("码率多少", "能", "能"),
("第 120 帧是 I 帧还是 P 帧", "不能", "能"),
("GOP 有多长", "不能", "能"),
("哪一帧数据异常", "不能", "能"),
]
for q, a, b in rows:
print("%-20s MediaInfo:%-5s 码流分析:%s" % (q, a, b))
实跑输出:
--------------------------------------------------------------------
为什么还要【码流分析】
--------------------------------------------------------------------
MediaInfo 看的是【规格】,码流分析看的是【里面的每一帧】。
问题 MediaInfo 能答吗 码流分析能答吗
------------------------------------------------------------------
这是什么格式 能 能
码率多少 能 能
第 120 帧是 I 帧还是 P 帧 不能 能
GOP 有多长 不能 能
哪一帧数据异常 不能 能
一句话分界:**MediaInfo 看文件,码流分析看帧。**
排查【花屏出现在第几秒】这类问题,必须下到帧这一层。
一句话分界:MediaInfo 看文件,码流分析看帧。 排查【花屏出现在第几秒】这类问题,必须下到帧这一层。
30 秒实验
- 回想你遇到过的一个播放问题,判断它属于【文件层】还是【帧层】。
- 据此决定该用 MediaInfo 还是码流分析工具。
常见误区
- 所有问题都用 MediaInfo 查。它看不到帧内部。
- 以为码流分析只是给专家用的。它就是一层翻译器,谁都能读。
自测三问(点开对答案)
1. MediaInfo 和码流分析的分界是什么? —— 一个看文件(规格),一个看帧(帧类型、GOP、异常帧)。 2. 为什么必须用工具看码流? —— 压缩后是二进制,分析器把标准语法翻译成人能读的结构。 3. 哪三类问题必须下到帧这一层? —— 编码结果不对、参数不符预期、要优化码率。- ☐ 下一节(3.4.2 功能列表)
相关笔记
- FlvAnalyser — 再上面一层:Tag 结构
- 功能列表 — 这类工具具体能看什么
- 音视频编码 — 为什么码流需要被分析
- 🎬 FFmpeg入门详解 · 索引