agentic-video Gallery

Find the cross-dissolve where two shots are joined

Cuts and editsGamingTool missed
0:08CC-BY-SA-4.0 · PantheraLeo1359531

Proof frames

Click a frame to seek

Tool calls

2 calls · agentic-video 0.3.1
detect_cutsimac · 569 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "cuts": [
      {
        "timestamp_sec": 5.25,
        "score": 0.290396,
        "kind": "transition"
      },
      {
        "timestamp_sec": 6.75,
        "score": 0.215019,
        "kind": "transition"
      }
    ],
    "total": 2
  }
}
inspect_windowimac · 374 ms

Arguments

{
  "source": "$CLIP",
  "start_sec": 2.4,
  "end_sec": 5.44,
  "fps": 2
}

Result

{
  "ok": true,
  "data": {
    "source_path": "~/hill/gallery/repo/cards/dissolve-gaming/clip.mp4",
    "start_sec": 2.4,
    "end_sec": 5.44,
    "fps": 2,
    "frames": [
      {
        "index": 1,
        "timestamp_sec": 2.4,
        "timecode": "00:00:02.400",
        "file_path": "<cache>/b3c15e5a1e56ee694c0f/dense_bae1b67e7f4505030fe4/frame_0001.jpg",
        "width": 640,
        "height": 360,
        "requested_timestamp": 2.4,
        "decoded_timestamp": null,
        "timestamp_delta": null
      },
      {
        "index": 2,
        "timestamp_sec": 2.9,
        "timecode": "00:00:02.900",
        "file_path": "<cache>/b3c15e5a1e56ee694c0f/dense_bae1b67e7f4505030fe4/frame_0002.jpg",
        "width": 640,
        "height": 360,
        "requested_timestamp": 2.9,
        "decoded_timestamp": null,
        "timestamp_delta": null
      },
      {
        "index": 3,
        "timestamp_sec": 3.4,
        "timecode": "00:00:03.400",
        "file_path": "<cache>/b3c15e5a1e56ee694c0f/dense_bae1b67e7f4505030fe4/frame_0003.jpg",
        "width": 640,
        "height": 360,
        "requested_timestamp": 3.4,
        "decoded_timestamp": null,
        "timestamp_delta": null
      },
      {
        "index": 4,
        "timestamp_sec": 3.9,
        "timecode": "00:00:03.900",
        "file_path": "<cache>/b3c15e5a1e56ee694c0f/dense_bae1b67e7f4505030fe4/frame_0004.jpg",
        "width": 640,
        "height": 360,
        "requested_timestamp": 3.9,
        "decoded_timestamp": null,
        "timestamp_delta": null
      },
      {
        "index": 5,
        "timestamp_sec": 4.4,
        "timecode": "00:00:04.400",
        "file_path": "<cache>/b3c15e5a1e56ee694c0f/dense_bae1b67e7f4505030fe4/frame_0005.jpg",
        "width": 640,
        "height": 360,
        "requested_timestamp": 4.4,
        "decoded_timestamp": null,
        "timestamp_delta": null
      },
      {
        "index": 6,
        "timestamp_sec": 4.9,
        "timecode": "00:00:04.900",
        "file_path": "<cache>/b3c15e5a1e56ee694c0f/dense_bae1b67e7f4505030fe4/frame_0006.jpg",
        "width": 640,
        "height": 360,
        "requested_timestamp": 4.9,
        "decoded_timestamp": null,
        "timestamp_delta": null
      }
    ],
    "contact_sheet_path": "/private<cache>/b3c15e5a1e56ee694c0f/contact_sheets/sheet_6samples_4cols_22c2a6.jpg",
    "estimated_vision_tokens": 1548,
    "tool_file": {
      "_tag": "ToolFile",
      "name": "sheet_6samples_4cols_22c2a6.jpg",
      "mimeType": "image/jpeg",
      "encoding": "base64",
      "data": "<565372 base64 chars dropped>",
      "byteLength": 424029
    }
  }
}

Question and answer

Question
Is there a fade between shots? Where is it?
Answer
The tool reports a transition at 5.25 seconds, where the two shots meet.
Tool returned
5.25
Truth
3.92
Check failedanswer 5.25, expected 3.92 ±1.0

How it was checked

Truth from
constructed
Fixed at

Planted by this recipe before any tool ran: shot A is 4.92 s of 0ad-gameplay-test-2019 from 39.8 s; shot B is 5.24 s of stk-benchmark-base-profile from 23.16 s (another source of the same domain; neither shot has a hard cut inside). ffmpeg joined them with one 2.0 s cross-dissolve (xfade fade) from 2.92 s to 4.92 s of the clip. The truth is the fade midpoint 3.92 s, with tolerance 1 s (half the fade), so a cut time anywhere inside the fade passes. The window given to inspect_window is the fade plus 0.5 s either side, fixed here.

A script joined two shots, one from '0 A.D. base and battle gameplay, camera pans, no sound' and one from another clip of the same kind, with a planted 2.0 s cross-dissolve and no sound, so the answer is one time inside that fade (not its start and end); the card does not show whether detect_cuts finds other cuts.

Try it yourself

Use agentic-video on my video. Run detect_cuts on the whole video, then run inspect_window over the part where the picture fades into the next shot. Tell me the time of the fade.
  1. Get the .mcpb file and open it in Claude Desktop.
  2. Or: pip install agentic-video

Clip and licence

Licence
CC-BY-SA-4.0
Author
PantheraLeo1359531
Source
commons.wikimedia.org
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International, 3.0 Unported, 2.5 Generic, 2.0 Generic and 1.0 Generic license.

Also uses (insert 1)

Licence
CC-BY-SA-4.0
Author
SuperTux Kart-Autoren
Source
commons.wikimedia.org
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.