agentic-video Gallery

QA a clip for a silent gap before posting

ReviewLectureVerified
0:20CC0 · Andrew Krizhanovsky (Alexander Kirillov, lecturer)

Proof frames

Click a frame to seek

Tool calls

1 calls · agentic-video 0.3.1
review_videobox · 1699 ms

Arguments

{
  "source": "$CLIP"
}

Result

{
  "ok": true,
  "data": {
    "metadata": {
      "source_path": "~/work/cards/review-lecture/clip.mp4",
      "duration_sec": 19.986633,
      "width": 640,
      "height": 480,
      "fps": 27.968692409426968,
      "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
      "size_bytes": 2423991,
      "has_audio": true,
      "audio_codec": "aac",
      "video_codec": "h264",
      "fingerprint": "e8be8e97e5c34a42807d",
      "has_video": true
    },
    "contact_sheet": {
      "file_path": "<cache>/e8be8e97e5c34a42807d/contact_sheets/sheet_24samples_4cols_f822f7.jpg",
      "sample_count": 24,
      "rows": 6,
      "cols": 4,
      "start_sec": 0.416,
      "end_sec": 19.57,
      "timestamps": [
        0.416,
        1.249,
        2.082,
        2.915,
        3.747,
        4.58,
        5.413,
        6.246,
        7.079,
        7.911,
        8.744,
        9.577,
        10.41,
        11.242,
        12.075,
        12.908,
        13.741,
        14.574,
        15.406,
        16.239,
        17.072,
        17.905,
        18.737,
        19.57
      ],
      "frame_width": 768,
      "frame_height": 576,
      "tool_file": {
        "_tag": "ToolFile",
        "name": "sheet_24samples_4cols_f822f7.jpg",
        "mimeType": "image/jpeg",
        "encoding": "base64",
        "data": "<1339760 base64 chars dropped>",
        "byteLength": 1004818
      }
    },
    "cuts": [
      {
        "timestamp_sec": 4.938267,
        "score": 1,
        "kind": "cut"
      },
      {
        "timestamp_sec": 5.839167,
        "score": 1,
        "kind": "cut"
      },
      {
        "timestamp_sec": 8.35,
        "score": 0.394307,
        "kind": "transition"
      },
      {
        "timestamp_sec": 10.5,
        "score": 0.390672,
        "kind": "transition"
      },
      {
        "timestamp_sec": 12.45,
        "score": 0.38657,
        "kind": "transition"
      }
    ],
    "cuts_total": 5,
    "loudness": {
      "average_rms_dbfs": -19.577,
      "peak_dbfs": -3.365,
      "peak_sec": 0.847,
      "window_sec": 0.25,
      "silence_threshold_dbfs": -60,
      "silence_gaps": [
        {
          "start_sec": 14.25,
          "end_sec": 15.74,
          "duration_sec": 1.49,
          "threshold_dbfs": -60
        }
      ],
      "silence_gaps_total": 1,
      "outliers_total": 75,
      "fault_outliers_total": 0,
      "outliers": [
        {
          "start_sec": 15.5,
          "end_sec": 15.75,
          "band": "low_mid",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -60.553,
          "fault_level": false
        },
        {
          "start_sec": 15.5,
          "end_sec": 15.75,
          "band": "mid",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -54.01,
          "fault_level": false
        },
        {
          "start_sec": 15.5,
          "end_sec": 15.75,
          "band": "sub",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -37.998,
          "fault_level": false
        },
        {
          "start_sec": 19.75,
          "end_sec": 20.010667,
          "band": "low_mid",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -22.84,
          "fault_level": false
        },
        {
          "start_sec": 20,
          "end_sec": 20.010667,
          "band": "sub",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -21.528,
          "fault_level": false
        },
        {
          "start_sec": 4,
          "end_sec": 4.75,
          "band": "low_mid",
          "direction": "cut",
          "shape": "step",
          "delta_db": -18.793,
          "fault_level": false
        },
        {
          "start_sec": 20,
          "end_sec": 20.010667,
          "band": "high",
          "direction": "cut",
          "shape": "transient",
          "delta_db": -17.772,
          "fault_level": false
        },
        {
          "start_sec": 0.75,
          "end_sec": 1.5,
          "band": "high",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 17.62,
          "fault_level": false
        },
        {
          "start_sec": 1,
          "end_sec": 1.5,
          "band": "air",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 17.579,
          "fault_level": false
        },
        {
          "start_sec": 17,
          "end_sec": 17.25,
          "band": "mid",
          "direction": "boost",
          "shape": "transient",
          "delta_db": 16.118,
          "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 14.25 to 15.74 seconds, lasting 1.49 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 19.50 s, and muted its sound (volume 0, digital silence) from 14.24 to 15.73 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
CC0
Author
Andrew Krizhanovsky (Alexander Kirillov, lecturer)
Source
commons.wikimedia.org
This file is made available under the Creative Commons CC0 1.0 Universal Public Domain Dedication.