QA a clip for a silent gap before posting
0:20CC0 · Andrew Krizhanovsky (Alexander Kirillov, lecturer)
Proof frames
Tool calls
review_video
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.
- Get the .mcpb file and open it in Claude Desktop.
- 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.