MP4 MP4 Analyzer by MediaOnDeck

// how it works

How it works

Bitstream analysis used to be the domain of desktop software: install a toolchain, pay for a license, and hand your file over first. This tool puts the analysis inside a browser tab — nothing to install, nothing uploaded, no account.

What it lets you see

ViewWhat you get
Box tree The ISOBMFF skeleton: field-level detail and a hex dump for every box
Frame list Index, type (I / P / B), size and byte offset for every frame
QP heatmap Per-block compression strength as color — see at a glance where bits were spent
Motion vectors Reference offsets for each inter-predicted block, drawn as arrows over the picture
Block grid The block boundaries and block sizes the encoder actually chose
Hex search Locate bytes by text or byte sequence, in any box or in a whole frame

All of it lives in one interface: from container structure down to per-frame coding decisions, with no exporting files between tools.

The three numbers behind every block

The encoder makes three decisions for every block in the picture, and the tool draws them all:

  • QP — how hard this block was compressed. Higher QP means coarser quantization, fewer retained details and fewer bits; lower QP means the opposite;
  • MV — where this block matched in the reference frame, and through which reference list: L0 for past frames, L1 for future frames;
  • Block size and position — the partitioning the encoder ended up choosing.

H.264 vs H.265

H.264 partitions fixed 16×16 macroblocks (further split down to 8×8), while H.265 uses coding tree units (CTUs) up to 64×64, recursively split quadtree-style down to 8×8. That makes H.265 block structure far more variable within a single frame — flat areas may use 64×64 while detailed areas drop to 8×8, one reason for its higher compression efficiency.

Bi-directional prediction in B frames

B frames can reference both past and future frames, so their motion vectors come in two groups — L0 (forward) and L1 (backward) — drawn in different colors, one arrow per reference. This is also why B frames usually cost the fewest bits: their prediction is the most accurate.

Your file never leaves your device

Parsing, decoding and block-level computation all happen inside your browser tab. The site has no upload endpoint — the server never receives, stores or processes your video, and no frame data or analysis result is sent anywhere.

That is not something you have to take on faith; you can verify it. Open a file, then disconnect your network (or switch on airplane mode) and keep switching frames, zooming the heatmap and inspecting blocks. Everything still works. If processing happened on a server, it would stop at the first step.

The only thing this site ever writes on your device is one interface-language preference in browser local storage, so it remembers whether you picked Chinese or English. It is never sent to a server.

Performance and limitations

  • Analysis runs in the tab, so speed depends on the compute the browser can give it — slower than native desktop tools, but fast enough for interactive per-frame inspection;
  • Larger files and higher resolutions take longer to parse and decode, and use more memory;
  • Frame preview uses the browser's built-in hardware decoder and needs a recent Chrome or Edge; other browsers still analyze bitstream and block data, just without the picture preview;
  • Block-level analysis currently covers H.264 and H.265; AV1 / VP9 are not supported yet;
  • Audio tracks can be inspected at the container and sample-table level, but not at the bitstream level.

Open source licensing

Analysis is built on FFmpeg (LGPLv3). As LGPLv3 requires, the FFmpeg sources used by this project and the full license are published: sources and license notes.