# Video comparison wipe

- Human page: https://happytails.ai/en/media-tools/video-comparison-wipe/
- Markdown: https://happytails.ai/en/media-tools/video-comparison-wipe.md
- Structured JSON: https://happytails.ai/agents/en/media-tools/video-comparison-wipe/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `video-comparison-wipe` |
| Category | media-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Runs locally in your browser. Choose two PNG frame grabs of the same size, or two videos up to 2 minutes and 1080p, with 20 MiB of input in total. Drag the preview boundary or step through the shared time range.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

Accepted browser files: `.png,.mp4,.mov,.m4v,.webm,.mkv,image/png,video/mp4,video/quicktime,video/webm,video/x-matroska`. Multiple files are supported.

Browser file-input limit: 20971520 bytes in total. HTTP limits can differ.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `mode` | Comparison | select | "wipe" | Allowed: wipe, difference, side-by-side |
| `position` | Wipe position (0 to 1 from the left or top) | number | "0.5" | min=0 max=1 step=0.01 |
| `direction` | Wipe direction | select | "vertical" | Allowed: vertical, horizontal |
| `lineWidth` | Divider line width (pixels) | number | "2" | min=0 max=16 step=1 |
| `offset` | Second video offset (seconds, videos only) | number | "0" | min=-60 max=60 step=0.001 |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Two PNG images of the same size up to 1920 x 1080 pixels, or two videos up to 2 minutes, 1080p and 20 MiB each. Frame grabs are compared on your device without the video engine; videos use the bundled browser video engine. Nothing is uploaded. Downloads: comparison PNG or MP4, JSON report and metrics CSV.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "video-comparison-wipe",
  "category": "media-tools",
  "built": true,
  "requirements": "Two PNG images of the same size up to 1920 x 1080 pixels, or two videos up to 2 minutes, 1080p and 20 MiB each. Frame grabs are compared on your device without the video engine; videos use the bundled browser video engine. Nothing is uploaded. Downloads: comparison PNG or MP4, JSON report and metrics CSV.",
  "implementation": {
    "fields": [
      {
        "key": "mode",
        "label": "Comparison",
        "value": "wipe",
        "type": "select",
        "values": [
          "wipe",
          "difference",
          "side-by-side"
        ]
      },
      {
        "key": "position",
        "label": "Wipe position (0 to 1 from the left or top)",
        "value": "0.5",
        "type": "number",
        "min": 0,
        "max": 1,
        "step": 0.01
      },
      {
        "key": "direction",
        "label": "Wipe direction",
        "value": "vertical",
        "type": "select",
        "values": [
          "vertical",
          "horizontal"
        ]
      },
      {
        "key": "lineWidth",
        "label": "Divider line width (pixels)",
        "value": "2",
        "type": "number",
        "min": 0,
        "max": 16,
        "step": 1
      },
      {
        "key": "offset",
        "label": "Second video offset (seconds, videos only)",
        "value": "0",
        "type": "number",
        "min": -60,
        "max": 60,
        "step": 0.001
      }
    ],
    "registrationFamily": "video-render-plan-reference",
    "presentation": "metrics",
    "files": true,
    "multiple": true,
    "input": false,
    "accept": ".png,.mp4,.mov,.m4v,.webm,.mkv,image/png,video/mp4,video/quicktime,video/webm,video/x-matroska",
    "maxFileBytes": 20971520,
    "inputErrorCode": "VIDEO_RENDER_PLAN_REFERENCE_TOO_LONG",
    "note": "Runs locally in your browser. Choose two PNG frame grabs of the same size, or two videos up to 2 minutes and 1080p, with 20 MiB of input in total. Drag the preview boundary or step through the shared time range.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Two versions",
      "placeholder": "Choose two frame grabs or two videos",
      "help": "Select both files at once; the first is shown on the left or top. Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Compare two versions of a shot side by side, with a wipe or a difference view. PNG comparisons also measure pixel differences.

### How to use Video comparison wipe

1. Choose two PNG frame grabs of the same size, or two videos.
2. Pick wipe, difference or side by side, and set the wipe position and direction.
3. Run the comparison. For PNG inputs, read the pixel difference figures.
4. Download the comparison PNG with its JSON report and metrics CSV, or the MP4 with its JSON report for video inputs.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

## Useful next steps

- [Image histogram inspector](https://happytails.ai/en/image-tools/image-histogram-inspector/) ([Markdown](https://happytails.ai/en/image-tools/image-histogram-inspector.md))

- [Color picker](https://happytails.ai/en/design-tools/color-picker/) ([Markdown](https://happytails.ai/en/design-tools/color-picker.md))

- [Trim video](https://happytails.ai/en/media-tools/trim-video/) ([Markdown](https://happytails.ai/en/media-tools/trim-video.md))

## Views

Wipe shows the first version on the left (or top) of the divider and the second version on the other side. Difference shows the absolute difference of each red, green and blue value, so identical areas are black. Side by side places the two versions next to each other.

### Difference figures

For frame grabs the tool reports the mean and largest absolute difference of red, green and blue values (0 to 255), the PSNR in decibels (blank when the frames are identical), and how many pixels differ by more than 8 in any channel. These figures compare decoded pixels exactly; they do not judge perceived quality.

### Synchronized preview and video export

The preview keeps both videos within their shared time range and pauses both when the shorter overlap ends. A positive offset starts the second video later on the first video’s timeline. Previous and next preview frame move by one period of the preview frame rate you choose; variable-frame-rate video may not land on an exact source frame. Previews are muted. For exact frame-grab pixel checks, compare PNG images. Video export uses the frame rate and size of the first video, rounds the offset to whole frames, and covers only their overlap. The exported frame count and size are checked before download.
