agentic-video Gallery

Find a short frozen picture in a moving clip

Sync and qualitySportsTool missed
0:20CC-BY-4.0 · Alexis Jazz

Proof frames

Click a frame to seek

Tool calls

2 calls · agentic-video 0.3.1
check_frame_cadenceimac · 266 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "frame_rate": 15,
    "frames": 300,
    "held_frames": 0,
    "ranges": [],
    "total": 0
  }
}
frame_atimac · 311 ms

Arguments

{
  "source": "$CLIP",
  "time_sec": 15.15
}

Result

{
  "ok": true,
  "data": {
    "frame_time_sec": 15.133333,
    "width": 640,
    "height": 360,
    "source_width": 640,
    "source_height": 360,
    "crop": null,
    "scale": 1,
    "file_path": "<cache>/10832a1266cf928bfce1/frame_at/frame_at_4529710af2bee921.png",
    "tool_file": {
      "_tag": "ToolFile",
      "name": "frame_at_4529710af2bee921.png",
      "mimeType": "image/png",
      "encoding": "base64",
      "data": "<422892 base64 chars dropped>",
      "byteLength": 317169
    }
  }
}

Question and answer

Question
Is there a freeze in this clip?
Answer
check_frame_cadence listed no stretch of repeated frames in this clip.
Tool returned
[]
Truth
[15.133333]
Check failedprecision 0.00 (min 1), recall 0.00 (min 1), tolerance 0.133333s

How it was checked

Truth from
constructed
Fixed at

Planted by this recipe: ffmpeg kept the first 20 s of the source at 15/1 frames per second and replaced the 4 frames after frame 227 with a copy of frame 227 (freezeframes, in place), so the repeated frames last 0.27 s. The truth is the time the picture stops moving, 15.133 s (frame 227). Frame 227 was chosen by a fixed rule: every pair of frames within 0.5 s either side differs by more than 0.5 grey levels and by less than 40. The tolerance is 2 frames, 0.133 s.

The script repeated one frame for 0.27 s from 15.13 s, so the freeze is planted and is not a fault in the film. check_frame_cadence lists only repeats that last at least 0.5 s, so it may not list a freeze this short.

Try it yourself

Use agentic-video to check my video for frozen or repeated frames. Run check_frame_cadence on my file and tell me each stretch of repeated frames it lists, with its start time. Then run frame_at on that start time, or on 10 seconds if it lists none, and tell me what the frame shows. Use my own file.
  1. Get the .mcpb file and open it in Claude Desktop.
  2. Or: pip install agentic-video

Clip and licence

Licence
CC-BY-4.0
Author
Alexis Jazz
Source
commons.wikimedia.org
This file is licensed under the Creative Commons Attribution 4.0 International license.