agentic-video Gallery

QA a clip for a silent gap before posting

ReviewSyntheticVerified
0:20generated · generated

Proof frames

Click a frame to seek

Tool calls

1 calls · agentic-video 0.3.1
review_videobox · 841 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "metadata": {
      "source_path": "~/work/cards/review-synthetic/clip.mp4",
      "duration_sec": 20,
      "width": 640,
      "height": 360,
      "fps": 15,
      "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
      "size_bytes": 721528,
      "has_audio": true,
      "audio_codec": "aac",
      "video_codec": "h264",
      "fingerprint": "ee1faac165816b180847",
      "has_video": true
    },
    "contact_sheet": {
      "file_path": "<cache>/ee1faac165816b180847/contact_sheets/sheet_24samples_4cols_423fa4.jpg",
      "sample_count": 24,
      "rows": 6,
      "cols": 4,
      "start_sec": 0.417,
      "end_sec": 19.583,
      "timestamps": [
        0.417,
        1.25,
        2.083,
        2.917,
        3.75,
        4.583,
        5.417,
        6.25,
        7.083,
        7.917,
        8.75,
        9.583,
        10.417,
        11.25,
        12.083,
        12.917,
        13.75,
        14.583,
        15.417,
        16.25,
        17.083,
        17.917,
        18.75,
        19.583
      ],
      "frame_width": 768,
      "frame_height": 432,
      "tool_file": {
        "_tag": "ToolFile",
        "name": "sheet_24samples_4cols_423fa4.jpg",
        "mimeType": "image/jpeg",
        "encoding": "base64",
        "data": "<756680 base64 chars dropped>",
        "byteLength": 567509
      }
    },
    "cuts": [
      {
        "timestamp_sec": 0.666667,
        "score": 0.364133,
        "kind": "cut"
      },
      {
        "timestamp_sec": 1.45,
        "score": 0.11646,
        "kind": "transition"
      },
      {
        "timestamp_sec": 2.266667,
        "score": 0.364455,
        "kind": "cut"
      },
      {
        "timestamp_sec": 3.466667,
        "score": 0.910707,
        "kind": "cut"
      },
      {
        "timestamp_sec": 5.466667,
        "score": 0.364578,
        "kind": "cut"
      },
      {
        "timestamp_sec": 6.8,
        "score": 1,
        "kind": "cut"
      },
      {
        "timestamp_sec": 7.4,
        "score": 0.925423,
        "kind": "cut"
      },
      {
        "timestamp_sec": 8.666667,
        "score": 0.364508,
        "kind": "cut"
      },
      {
        "timestamp_sec": 9.45,
        "score": 0.116541,
        "kind": "transition"
      },
      {
        "timestamp_sec": 10.266667,
        "score": 0.364458,
        "kind": "cut"
      },
      {
        "timestamp_sec": 11.466667,
        "score": 0.911102,
        "kind": "cut"
      },
      {
        "timestamp_sec": 13.466667,
        "score": 0.364542,
        "kind": "cut"
      },
      {
        "timestamp_sec": 14.25,
        "score": 0.116553,
        "kind": "transition"
      },
      {
        "timestamp_sec": 15.066667,
        "score": 0.359542,
        "kind": "cut"
      },
      {
        "timestamp_sec": 16,
        "score": 0.906476,
        "kind": "cut"
      },
      {
        "timestamp_sec": 16.666667,
        "score": 0.363916,
        "kind": "cut"
      },
      {
        "timestamp_sec": 18.266667,
        "score": 0.364438,
        "kind": "cut"
      },
      {
        "timestamp_sec": 18.866667,
        "score": 0.925739,
        "kind": "cut"
      },
      {
        "timestamp_sec": 19.866667,
        "score": 0.364615,
        "kind": "cut"
      }
    ],
    "cuts_total": 19,
    "loudness": {
      "average_rms_dbfs": -21.721,
      "peak_dbfs": -9.332,
      "peak_sec": 16.035,
      "window_sec": 0.25,
      "silence_threshold_dbfs": -60,
      "silence_gaps": [
        {
          "start_sec": 10.23,
          "end_sec": 11.71,
          "duration_sec": 1.48,
          "threshold_dbfs": -60
        }
      ],
      "silence_gaps_total": 1,
      "outliers_total": 10,
      "fault_outliers_total": 0,
      "outliers": [
        {
          "start_sec": 20,
          "end_sec": 20.015604,
          "band": "mid",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -57.009,
          "fault_level": false
        },
        {
          "start_sec": 11.5,
          "end_sec": 11.75,
          "band": "air",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -23.831,
          "fault_level": false
        },
        {
          "start_sec": 11.5,
          "end_sec": 11.75,
          "band": "high",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -23.738,
          "fault_level": false
        },
        {
          "start_sec": 7,
          "end_sec": 7.5,
          "band": "low_mid",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 19.724,
          "fault_level": false
        },
        {
          "start_sec": 18.5,
          "end_sec": 19,
          "band": "low_mid",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 19.576,
          "fault_level": false
        },
        {
          "start_sec": 16,
          "end_sec": 16.5,
          "band": "mid",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 18.253,
          "fault_level": false
        },
        {
          "start_sec": 11.5,
          "end_sec": 11.75,
          "band": "sub",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -18.21,
          "fault_level": false
        },
        {
          "start_sec": 3.5,
          "end_sec": 4,
          "band": "mid",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 18.163,
          "fault_level": false
        },
        {
          "start_sec": 11.5,
          "end_sec": 11.75,
          "band": "low_mid",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -18.16,
          "fault_level": false
        },
        {
          "start_sec": 11.75,
          "end_sec": 12,
          "band": "mid",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 17.514,
          "fault_level": false
        }
      ]
    }
  }
}

Question and answer

Question
QA this clip before I post it.
Answer
review_video's longest silent gap in the sound runs from 10.23 to 11.71 seconds, lasting 1.48 seconds.
Check passedIoU 0.99, minimum 0.7

How it was checked

Truth from
constructed
Fixed at

Planted by this recipe: ffmpeg cut 20 s of the source from 2.50 s, and muted its sound (volume 0, digital silence) from 10.21 to 11.71 s of the clip. Only that silent interval is in the truth. The window was screened first: its sound has no run of 10 ms chunks under -60 dBFS (3 in a row) within 20 s, plus 0.1 s either side, so it is the only silent gap review_video can report. IoU tolerance 0.7.

A script muted 1.5 seconds of this clip's sound at a time it chose and put a black box over the picture for 0.9 seconds; review_video has no field that lists black frames, so the answer covers the silent gap only, and the clip has no other quiet stretch.

Try it yourself

Use agentic-video to QA my video before I post it. Call review_video on my file and tell me about any silent gaps in its sound, with where each one starts and ends. 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
generated

Generated for the gallery; no third-party material.