MP4 MP4 Analyzer by MediaOnDeck

// alternatives / ffmpeg-debug-qp

ffmpeg-debug-qp alternative

There is essentially one ready-made answer to "what is the QP of each macroblock": ffmpeg-debug-qp. It gives you exact numbers, and the price is getting it to run first. This page covers where it is strong, where it stalls, and when a browser is simply the faster path — and when it is not.

1. What ffmpeg-debug-qp is

It is maintained by Werner Robitza and others — the same circle behind the VMAF video-quality tooling — under the MIT license. At its core is a small C program that hooks the decoder and prints each macroblock's QP to standard error, plus a Python parser that turns that wall of digits into JSON or CSV.

  • Codecs: MPEG-2, MPEG-4 Part 2, H.264/AVC;
  • Containers: MP4, plus H.264 Annex B elementary streams;
  • Output: per-frame, per-macroblock QP values;
  • Form: command line only; Linux / macOS / Windows (recent versions ship pre-built static binaries).

2. Where it genuinely wins

This is not a formality — if your requirement is in this table, use it and not this tool:

CapabilityDetail
Exact per-macroblock numbersNot a heatmap — digits you can drop straight into a dataset
ScriptableJSON / CSV output that slots into batch pipelines and CI
No GUI dependencyPure command line; runs on servers and headless machines
Standard in research pipelinesAn existing piece of encoder-comparison and rate–quality workflows

Batch work, dataset feeding, server-side runs — use it; this tool cannot do any of that.

3. Where it stalls

These are also facts, and they are why most people land on this page:

  • It tracks the decoder's internal interface. It broke after FFmpeg 5.x historically — the README said outright "does not work with ffmpeg 5.x or above" — and the current version follows a newer API. Meaning: you need a build that matches, or you compile one yourself.
  • The authors call it a hack. Their own README: relies upon a hack, not guaranteed to work with all videos. It reads internal decoder state, not an output the standard promises.
  • QP is a stream of digits, not a picture. Typical output is line after line of 1111111111… in a terminal. To find out why the bottom-right of a frame looks bad, you mentally lay that stream back out onto a macroblock grid first.
  • No frame preview, no motion vectors, no container structure. Which frame it is, MV arrows, a glance at the box tree — none of that is in scope.
  • It has to run on your machine. A locked-down work laptop, a client's machine, a Chromebook, a tablet: all out.

4. Where this tool differs

  • QP laid directly over the picture. Colour intensity is each block's deviation from the frame's base QP, so spotting the anomalous region needs no mental grid mapping.
  • Click and read. Click a block, get its value — instead of counting positions in a stderr stream.
  • Motion vector arrows and the box tree live in the same window. No exporting files back and forth between tools.
  • Zero install, zero configuration. Open a URL, drop in a file, no version to match.
  • The trade, stated plainly: no batch mode and no CSV/JSON export. On that it is clearly the stronger tool, and that is not changing soon.

5. Side by side

Capabilityffmpeg-debug-qpMP4 Analyzer
Per-macroblock QP valuesYes (text / JSON / CSV)Yes (heatmap plus click-to-read)
Frame previewNoYes
Motion vectorsNoYes
MP4 box structureNoYes (interactive tree + hex)
Batch / scriptingYesNo
CSV / JSON exportYesNo
Compile or match a versionRequiredNot required
CodecsMPEG-2 / MPEG-4 Part 2 / H.264H.264 / H.265
Runs onA machine with a shellA modern browser
PriceFree, open source (MIT)Free, no account

Facts here reflect the project's public README and releases as of 2026. This page is not affiliated with that project or its authors and uses no project marks; the name is referenced descriptively. The two tools share an upstream dependency — see source & license for the attribution.

6. Which to pick

Your situationPick
Batch hundreds of files into a datasetffmpeg-debug-qp
You need CSV / JSON outputffmpeg-debug-qp
Headless runs on a server or in CIffmpeg-debug-qp
You just want to see where an MP4's QP goes wrongThis tool
You would rather not install anything or match versionsThis tool
You want frame, MV and box tree togetherThis tool

In one line: automation and numeric export go to ffmpeg-debug-qp; open-it-and-look goes to this tool. The division of labour is clean. For the wider picture, see the full comparison.