Video Metadata

Read a clip's container, codecs, timing and rotation out of the file's own headers — without uploading it.

Runs on your deviceVideoWorkingNo account needed

What this tool does

Video Metadata opens the file's container structure and reports what is written there, rather than inferring anything from the extension. MP4, M4V, 3GP and QuickTime MOV files are walked as ISO base media boxes; WebM and Matroska are walked as EBML elements. Out of that comes the container and its major brand, the duration, the frame size and aspect ratio, the rotation recorded in the track's display matrix, and a list of every track in the file — video, audio and subtitle — each with its codec, the identifier written for it (a four-character MP4 code, or a Matroska CodecID such as V_VP9), its language tag and, for audio, the channel count and sample rate.

The parsing happens in this browser tab, and the video is not uploaded. The header read is deliberately narrow: the first four megabytes, where containers keep their headers, plus the last four megabytes when an MP4 turns out to have written its moov index at the end, which cameras and export presets often do. With the player check switched off, a multi-gigabyte master is therefore inspected about as quickly as a short clip, because the bulk of it is never touched; leave the check on and the browser's own decoder reads as much of the file as it wants to. Several files can be queued and each is parsed in turn into its own JSON report, though the summary and fields shown on the page describe whichever file was processed last.

One setting decides whether the file is also opened in a video element: Also open the file in the player. With it on, the tool reports whether this browser could decode the file at all — a header can describe an HEVC track that the machine in front of you has no decoder for, which is a different question from what the container claims. The check gives up after thirty seconds, which is why the help text suggests switching it off for very large files. What the player measures is used only to fill gaps: where a container is one the parsers do not read, its duration and pixel size are the only figures there are, and where the header supplies them, the header's numbers are the ones you see.

What it does not do is worth stating plainly. AVI, FLV and MPEG streams are recognised from their signature bytes and named back to you, but their internals are not parsed, so no codec or track list appears for them — and WMV, TS and OGV are accepted without being recognised at all, reporting an unrecognised container. A MOV carrying a QuickTime brand is a further gap: the second read that rescues an index stored at the end of a file is applied to MP4 only, so such a clip names its container and lists no tracks. The frame rate is an average — in MP4 the sample count over the summed sample durations, in Matroska the default frame duration when the file records one — so variable-rate footage reports its mean rather than what any given second is doing. The bitrate is the overall figure, file size in bits over duration, covering audio and container overhead together; per-track bitrates would need a full demux of every sample table and are left out rather than estimated. Rotation is read from the ISO display matrix, so Matroska files report none. And this reads technical structure only: recording dates, camera models, GPS positions and title or comment tags are not extracted, and nothing in the file is altered.

How to use it

  1. Add one or more videos. MP4, M4V, MOV, 3GP, WebM and MKV are the containers parsed in full. AVI, FLV and MPEG files are named from their signature without being parsed, and WMV, TS and OGV are accepted but come back as an unrecognised container. Each file is inspected in turn and produces its own report.
  2. Decide about the player check. Also open the file in the player is on by default and confirms this browser can decode what you gave it. Turn it off for very large files, or when the header detail is all you are after.
  3. Read the summary and the fields beside it. One line names the container, resolution, duration and codecs. The fields add the frame rate, the overall bitrate in kbps and any rotation the file asks players to apply. With several files queued, these describe the last one; the per-file detail is in the downloads.
  4. Take the JSON away. The full report downloads as the original name with -metadata and a .json extension, per-track list included, so two files can be compared or a record kept of what a master contained.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

A file an editor or a phone refuses to open

A codec check usually settles it in seconds. HEVC and AV1 are the common culprits, and knowing which one you have tells you whether Convert Video is the fix.

Footage that plays sideways

The rotation field gives the clockwise turn written into the display matrix. A clip that looks upright in one player and rotated in another carries that value, and one of the two is ignoring it.

Deciding whether a clip is worth compressing

Duration and overall bitrate together explain a file's size far better than the megabyte count does, and show whether re-encoding would actually gain you anything.

Checking that an export did what was asked

Put the result of a conversion back through and read the container, codec and frame size, rather than trusting that the settings you chose were the settings applied.

Cataloguing supplied masters

A folder of client footage can hold ProRes, H.264 and HEVC across three different containers. One pass gives each file its own JSON report, with the caveat that a QuickTime MOV keeping its index at the end will name the container and little else.

Questions

Does the clip leave this machine to be inspected?
No. The container is parsed by JavaScript in this tab, so the file is not transmitted or stored. The header read touches only the first and last few megabytes; the optional player check hands the file to your browser's own decoder, which reads more of it, still on this machine. The page keeps working with the network disconnected.
Does this run ffprobe?
No. ffprobe is the usual command-line answer to this question and the container fields here line up with what it reports, but the work is done in the page by code that reads MP4 boxes and Matroska elements directly. Nothing is demuxed or decoded to produce the numbers.
Why does my AVI or FLV show almost nothing?
Those containers are identified from their signature bytes but not parsed further, so there is no codec or track list for them, and WMV, TS and OGV files are not identified at all — they report an unrecognised container. Whatever you do see for any of them, a duration or a pixel size, came from the player check rather than from the header.
My MOV names the container but lists no tracks
That index — the moov box describing the tracks — can sit at the end of a file rather than the front. The extra read that catches it is applied to files identified as MP4, not to a MOV that carries a QuickTime brand, so those come back with the container named and the track list empty. Leaving the player check on at least recovers a duration and a frame size.
Is the frame rate exact?
It is an average across the track, taken from the sample timing in MP4 or from the default frame duration in Matroska. Constant-rate footage reads true; variable-rate recordings from phones and screen capture report their mean instead.
Why is there no bitrate for the video track on its own?
Splitting the total between streams means reading every sample table in the file, which this tool does not do. The figure shown covers video, audio and container overhead together, and is labelled as the overall rate rather than divided up by guesswork.
Does it show when the video was recorded, or where?
No. This reads the technical structure — containers, tracks, codecs, timing — and not the descriptive fields, so recording dates, camera models and GPS positions are not listed. For music files and their ID3 tags, Audio Metadata is the tool.
Can it remove metadata from a video?
No. It only reads. The original is left exactly as it was and the download is a JSON report, not a cleaned copy. Stripping identifying fields out of a file is what File Metadata Scrubber does.
It says this browser cannot play the file. Is the file broken?
Not necessarily. That line reports what your browser's decoders manage today, not the health of the file. HEVC, ProRes and older MPEG-4 formats routinely fail the check while remaining perfectly good files a desktop player opens without complaint.

Related tools