Find the cross-dissolve where two shots are joined
Proof frames
Tool calls
detect_cuts
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_window
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
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.
- Get the .mcpb file and open it in Claude Desktop.
- 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.