piapia123
en

Media File Info (duration, size, codec, bitrate)

Media

Everything runs locally in your browser — nothing is uploaded

Drop a file here, or click to choose

One file · processed entirely on your device

The file is read inside your browser only — nothing is uploaded. It keeps working offline.

Drop in a video or audio file and it tells you what the file actually is: whether the container is MP4 or WebM, how long it runs, how big the picture is, which codec, frame rate and bitrate. It reads only the file header — not a single byte is decoded — so even a multi-gigabyte video answers instantly. The result comes in three blocks: file (container and brand, size, duration, overall bitrate, creation time), each track (codec, dimensions, frame rate, sample rate, channels, bit depth) and tags (title and artist, when present). The output can be switched to JSON for a script or a ticket. Why does this deserve its own tool? Because every video tool on this site has to decode before it can work, while "what is this file" is exactly what you want to know before touching it — whether to transcode, whether it is portrait, whether the bitrate blows the budget. ⚠️ Four traps, all spelled out by the tool: · A portrait video has swapped dimensions. A phone held upright still records a landscape frame (1920×1080); what makes it portrait is a rotation flag in the container. Players honour that flag and turn the picture, but plenty of tools ignore it — so the same file shows 1080×1920 here and 1920×1080 elsewhere. That is why "stored size" and "display size" are listed separately, with the rotation angle called out. · An MP4 index can sit at the end of the file. An MP4 without faststart puts moov (the track index) after mdat (the data), so reading only the start of the file suggests it has no tracks. This tool walks the whole file. · Opus is always 48000 Hz. An Opus header carries an "input sample rate", but that is just a note about the original recording rate (it can even be 0); Opus always decodes at 48 kHz. Reporting the raw value would also throw off the duration. · VBR duration can only be estimated. An MP3 with a Xing / Info header has an exact duration; without one it can only be estimated from the bitrate, and the tool labels that "estimated" instead of passing a guess off as exact.

Features

  • Duration, file size and overall bitrate (bytes × 8 ÷ duration)
  • Per-track codec: H.264 / H.265 / AV1 / VP9 / AAC / MP3 / Opus / FLAC …
  • Stored size and display size listed separately, with the rotation angle
  • Frame rate, sample rate, channel count and bit depth
  • ⚠️ A 90° portrait video: the coded width and height are landscape, the player turns it
  • ⚠️ An MP4 whose moov sits at the end of the file still reads fine
  • ⚠️ Opus is always 48 kHz; the header input rate is not trusted
  • Exports to JSON, ready for a script or a ticket
  • Read-only: the file is not modified and nothing is uploaded

How to use

  1. Drop a video or audio file onto the dashed box
  2. The details appear below in monospace, copyable row by row
  3. For a portrait video, check the Rotation and Display size rows
  4. Switch the output to JSON and use Copy to feed a script

FAQ

Why do stored size and display size differ?
Because a portrait video is stored as a landscape frame. When you hold a phone upright, the sensor still records a landscape image, and the container adds a "rotate 90° clockwise" flag that a player reads to turn it the right way up. So the real pixels are 1920×1080 (stored size) while it is meant to be shown at 1080×1920 (display size). Many tools honour only the width and height and ignore the rotation flag, which is how footage ends up sideways or squashed in an editor or a converter — when these two numbers disagree, check whether the target tool understands rotation.
Why can this tool read an MP4 that another tool cannot?
Almost always the position of moov. An MP4 keeps its tracks and duration in the moov box, and that box may be placed at the start of the file (faststart, good for streaming) or at the end (write the data first, append the index — common in recording software). A tool that reads only the start of the file reports "no metadata" for the latter. This tool walks the entire file, so both layouts read correctly.
Why does Opus always show 48000 Hz?
Because the Opus format specifies a decode output of 48000 Hz. The header does carry an "input sample rate" field, but that only records the original recording rate for reference; it may be 0 or anything else, while the actual decode rate is always 48 kHz. Reporting the header value would throw off the duration as well.
How accurate is an "estimated" duration?
Right order of magnitude, but the exact figure varies. For a variable-bitrate MP3, a Xing / Info header records the total frame count and the duration is exact; without that header the tool can only estimate from "audio bytes × 8 ÷ average bitrate", and an average bitrate does not hold for music that swells and fades. So it says "estimated" in that case rather than passing a guess off as precise. For an exact figure, a decoder has to actually run through the file.

Related tools