📄 一句话概括
拿到陌生文件的第一件事是搞清楚它是什么——MediaInfo 把输出分成容器、视频流、音频流三组,读一遍规格就全清楚了。
📝 本节和前面几节的关系
3.1 讲 VLC(播放与验证),这一节换一个更【客观】的工具:只读文件信息,不做判断。
一、MediaInfo 是什么
MediaInfo 是一款专门读取媒体文件规格的工具。 它不播放、不解码画面,只做一件事:把文件里的元信息读出来给你看。 名字里的 Info 就是它全部的工作——信息,不做别的。
二、输出分三组看
容器:格式、文件大小、时长、总码率——先看这四个。 视频流:编码、分辨率、帧率、码率——决定画面的规格。 音频流:编码、采样率、声道、码率——决定声音的规格。 三组读完,这个文件的全部规格就清楚了——而这是排查一切问题的起点。
三、为什么它是【第一把尺子】
遇到问题时的第一个问题永远是:我手上的东西到底是什么? 不看规格就动手,等于蒙着眼修表。 MediaInfo 的价值就在于它不猜测、不美化,只把元数据读出来。
四、一个实用习惯
养成一个习惯:任何陌生文件,先过一遍 MediaInfo 再动手。 三类信息里,最常出现意外的是【音频流】——很多人以为有画面就有声音。 提前看一眼,能省掉后面很多次【怎么没声音】的返工。
五、动手 Demo:MediaInfo 是怎么把一个文件说清楚的
拿到一个陌生文件,第一件事是搞清楚它到底是什么。 MediaInfo 的输出可以分三组来看:容器、视频流、音频流。
info = {
"容器": ["Format: MPEG-4", "Duration: 3m20s", "Bit rate: 5368 kb/s"],
"视频流": ["Codec: AVC (H.264)", "Size: 1920x1080", "FPS: 30", "Bit rate: 5000 kb/s"],
"音频流": ["Codec: AAC LC", "Sample rate: 44.1 kHz", "Channels: 2", "Bit rate: 128 kb/s"],
}
for group, rows in info.items():
print("【%s】" % group)
for r in rows:
print(" ", r)
实跑输出:
--------------------------------------------------------------------
MediaInfo 是怎么把一个文件说清楚的
--------------------------------------------------------------------
拿到一个陌生文件,第一件事是搞清楚它到底是什么。
MediaInfo 的输出可以分三组来看:容器、视频流、音频流。
【容器】
格式 : MPEG-4
文件大小 : 128 MiB
时长 : 3 分 20 秒
总码率 : 5 368 kb/s
【视频流】
编码 : AVC (H.264)
分辨率 : 1920x1080
帧率 : 30.000 FPS
码率 : 5 000 kb/s
【音频流】
编码 : AAC LC
采样率 : 44.1 kHz
声道 : 2
码率 : 128 kb/s
一行行读下来,**这个文件的全部规格就清楚了**——而这正是排查问题的起点。
三组读完,文件的全部规格就清楚了——这是排查问题的起点。 最常出意外的是【音频流】:很多人以为有画面就有声音。
30 秒实验
- 拿一个你手上的视频,用 MediaInfo 过一遍,把三组信息各抄一行。
- 看有没有哪一项和你原本以为的不一样。
常见误区
- 以为 MediaInfo 能播放。它只读信息,不做播放和判断。
- 只看容器就动手。音频流的意外比视频流还多。
自测三问(点开对答案)
1. MediaInfo 的工作是什么? —— 读取并展示媒体文件的元信息,不播放、不解码。 2. 它的输出可以分哪三组看? —— 容器、视频流、音频流。 3. 为什么说它是【第一把尺子】? —— 遇到任何问题,第一步永远是先确认手上的东西到底是什么。- ☐ 下一节(3.2.2 MediaInfo使用方法)
相关笔记
- VLC播放器 — 播出来看,与读出来看
- MediaInfo使用方法 — 怎么用它
- 音视频容器 — 容器里到底存了什么
- 🎬 FFmpeg入门详解 · 索引