Media File Info (duration, size, codec, bitrate)
MediaEverything runs locally in your browser — nothing is uploaded
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
- Drop a video or audio file onto the dashed box
- The details appear below in monospace, copyable row by row
- For a portrait video, check the Rotation and Display size rows
- 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
Video to GIF
MediaTurn part of a video into a GIF with adjustable frame rate, width, colours and looping. Pick the range from the preview; nothing is uploaded.
Video Trim
MediaCut a segment out of a video and re-encode it as MP4 (H.264 + AAC), ready for chat apps or an editor. Everything runs locally in your browser.
Image Info
ImagesRead everything an image carries: format details, camera settings and where it was taken. GPS is called out separately; the report exports as text or JSON.
Video Frame
MediaExport the exact frame at any moment, at the video's own resolution, as PNG, JPEG or WebP. Sharper than a screenshot: no controls, no display scaling.
Audio to WAV
MediaConvert MP3 / M4A / FLAC and more to WAV, with an optional sample rate (16k speech, 48k video), mono downmix and peak normalisation. All in the browser.
Trim Audio
MediaCut a section out of an audio file by start and end time, with optional fades to remove the click at the cut. Mark points while previewing, export as WAV.