piapia123
zh

媒体文件信息(时长、尺寸、编码、码率)

音视频

所有处理都在浏览器本地完成,数据不上传服务器

把文件拖到这里,或点击选择

单个文件 · 全程在本机处理

文件只在你的浏览器里读取,不会上传到任何服务器。断网也能正常用。

把一个视频或音频文件拖进来,直接告诉你它到底是什么:容器是 MP4 还是 WebM、时长多久、画面多大、什么编码、帧率与码率。全程只读文件头,一个字节都不解码,所以一个几 GB 的视频也是瞬间出结果。 结果分三块:文件(容器与品牌、大小、时长、整体码率、创建时间)、每一轨(编码、尺寸、帧率、采样率、声道、位深)、标签(标题与艺术家,有才列)。产物可以切成 JSON,喂给脚本或贴进工单。 为什么值得单独有一个工具?因为站内的视频工具都得先解码才能干活,而「这文件到底是什么」恰恰是你在动手之前最想知道的事——要不要转码、是不是竖屏、码率有没有超预算。 ⚠️ 四个容易踩的坑,工具里都替你说清楚了: · 竖屏视频的尺寸是反的。 手机竖着拍的视频,文件里记录的编码尺寸其实是横的(1920×1080),真正让它变竖的只是容器里的一个旋转标记。播放器认这个标记会自动转,但很多工具不认——于是同一个文件在这里是 1080×1920、到别处变成 1920×1080。所以「存储尺寸」与「显示尺寸」分开列,旋转角单独标出来。 · MP4 的索引可能在文件末尾。 没做过 faststart 优化的 MP4 会把 moov(轨道索引)放在 mdat(数据)之后,所以只读文件开头会以为它没有轨道。这个工具会遍历整个文件。 · Opus 永远是 48000 Hz。 Opus 的头里有一个「输入采样率」,那只是原始录音速率的备注(甚至可以是 0);Opus 解码出来恒为 48 kHz。报原始值会让时长也跟着算错。 · VBR 的时长只能估。 MP3 若有 Xing / Info 头,时长是精确的;没有就只能按码率估算,此时会明确标注「估算」,不会把一个估值当成精确值卖给你。

功能

  • 时长、文件大小与整体码率(字节数 × 8 ÷ 时长)
  • 每一轨的编码:H.264 / H.265 / AV1 / VP9 / AAC / MP3 / Opus / FLAC …
  • 存储尺寸与显示尺寸分开列,并标出旋转角
  • 帧率、采样率、声道数、位深
  • ⚠️ 旋转 90° 的竖屏视频:解码器里的宽高是横的,播放器会帮你转
  • ⚠️ MP4 的 moov 即使排在文件末尾也读得到
  • ⚠️ Opus 恒为 48 kHz,不采信头里的输入采样率
  • 可导出 JSON,便于喂给脚本或贴进工单
  • 只读不写:不修改文件,也不上传任何数据

使用方法

  1. 把视频或音频文件拖进虚线框
  2. 信息出现在下面,等宽显示、可逐行复制
  3. 竖屏视频重点看「旋转」与「显示尺寸」两行
  4. 要喂给脚本就把产物形式切成 JSON,再点复制

常见问题

为什么「存储尺寸」和「显示尺寸」不一样?
因为竖屏视频的编码尺寸本来就是横的。手机竖着录像时,传感器记录的仍是一幅横向画面,容器里另外存一个「顺时针旋转 90°」的标记,播放器读到它才把画面转正。所以文件的真实像素是 1920×1080(存储尺寸),而它应该被显示成 1080×1920(显示尺寸)。很多工具只认宽高、忽略旋转标记,剪辑或转码时就会出现画面横躺、或者被压扁的问题——看到这两个数不一致时,就要留意目标工具认不认旋转。
为什么有的 MP4 在这个工具里能读、在别处读不出?
多半是 moov 的位置问题。MP4 的轨道、时长这些信息全在 moov 这个盒子里,而它可能被放在文件开头(做了 faststart 优化,适合在线播放)或者末尾(先写完数据再补索引,录制软件常见)。只读文件开头的工具遇到后者就会说「读不出元数据」。这个工具会遍历整个文件,两种布局都能读。
为什么 Opus 一律显示 48000 Hz?
因为 Opus 这个编码格式规定了解码输出恒为 48000 Hz。文件头里确实有一个「输入采样率」字段,但它只是记录原始录音的速率作为参考,可以是 0,也可以是任意值——真正的解码率永远是 48 kHz。如果报成头里的值,时长也会跟着算错。
标着「估算」的时长准吗?
量级准,具体数字会有出入。MP3 是变比特率(VBR)时,文件里若有 Xing / Info 头就记着总帧数,时长是精确的;没有这个头,只能拿「音频字节数 × 8 ÷ 平均码率」来估,而平均码率对一段忽高忽低的音乐并不成立。所以工具会在这种情况下明确写「估算」,而不是假装它是精确值。要精确时长,还是得让解码器实际走一遍。

相关工具