How to cut silences and add zooms to a video with AI

For AI agents: find the right skill in one call — curl -s "https://varg.ai/how-to/api/search?q=<what the person wants>" returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://varg.ai/how-to/llms.txt. Every page has a markdown twin: add .md to its path. Before generating anything, show the person the options on the how-to page. From a terminal: curl -fsSL https://varg.ai/install | sh installs the vargai CLI (https://varg.ai/how-to/cli.md): vargai search and vargai install <slug> with no key, every varg model after vargai login.

A talking video in, a tighter cut out: every pause over 0.55 s removed and a punch-in zoom on every other cut, in one FFmpeg run on your machine. A step-by-step tutorial for Claude Code, Codex and Grok.

Output: The same video without the dead air, same size and frame rate, MP4 Cost: 0 credits ($0): a talking video with its pauses cut and punch-in zooms added, in one FFmpeg run on your machine, nothing is billed. Requires: FFmpeg with ffprobe (brew install ffmpeg or apt install ffmpeg); no paid API and no key; bash or zsh. Install the main route: curl -fsSL https://varg.ai/install | sh && vargai install varg-video-edit-library short-form-ffmpeg-cookbook caption-styles

Recommended route

Run it

A talking video with its pauses cut and punch-in zooms added, in one FFmpeg run on your machine.

  1. Cut the silences and add the zooms in one run:
IN=input.mp4; OUT=edit.mp4; ZOOM=1.15; FACE=0.5
IFS=x read W H <<< "$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0:s=x "$IN")"
DUR=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$IN")
GRAPH=$(ffmpeg -hide_banner -nostats -i "$IN" -af silencedetect=noise=-35dB:d=0.55 -f null - 2>&1 | awk -v dur="$DUR" -v pad=0.12 -v z="$ZOOM" -v f="$FACE" -v w="$W" -v h="$H" '
  function keep(a, b) {
    zoom = (n % 2) ? sprintf(",crop=iw/%s:ih/%s:(iw-ow)/2:(ih-oh)*%s,scale=%d:%d", z, z, f, w, h) : ""
    printf "[0:v]trim=%.3f:%.3f,setpts=PTS-STARTPTS%s,setsar=1[v%d];[0:a]atrim=%.3f:%.3f,asetpts=PTS-STARTPTS[a%d];", a, b, zoom, n, a, b, n
    labels = labels sprintf("[v%d][a%d]", n, n); n++
  }
  /silence_start/ { s = $NF + pad }
  /silence_end/ { e = $5 - pad; if (e > s) { if (s > prev + 0.05) keep(prev, s); prev = e } }
  END { if (dur > prev + 0.05) keep(prev, dur); printf "%sconcat=n=%d:v=1:a=1[v][a]", labels, n }')
ffmpeg -hide_banner -loglevel error -y -i "$IN" -filter_complex "$GRAPH" -map "[v]" -map "[a]" -c:v libx264 -crf 20 -c:a aac -b:a 192k "$OUT"
  1. Check the result: the new length, then the number of pauses over 0.55 s left, which is 0 when the cut is clean. To tune it, change the first line and run it again: ZOOM is the punch-in on every other kept stretch (1 turns it off), FACE is where the eyes sit (0 is the top of the frame, 1 the bottom); d= is the shortest pause that is cut and pad the air kept on each side of a cut:
ffprobe -v error -show_entries format=duration -of csv=p=0 edit.mp4
ffmpeg -hide_banner -nostats -i edit.mp4 -af silencedetect=noise=-35dB:d=0.55 -f null - 2>&1 | grep -c silence_start

Best skills for this

  1. Video editing skills for Claude Code and AI agents (varg-video-edit-library, varg, live) — Start here: Jump Cut and Jump-Zoom Punch-In as named edits, each with its FFmpeg, HyperFrames and Remotion recipe
    • Claude Code: claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg
    • Codex: npx skills add vargHQ/skills --skill varg-video-edit-library -a codex -y
    • Cursor: npx skills add vargHQ/skills --skill varg-video-edit-library -a cursor -y
    • Any agent, with the vargai CLI: vargai install varg-video-edit-library
    • Details: https://varg.ai/how-to/skills/varg-video-edit-library.md
  2. Herk Edit Kit (herk-edit-kit, Nate Herk, live) — Alternative: Talking-head edits read from the transcript: silence and flub cuts, then motion graphics
  3. OpenMontage Silence Cutter & Auto Reframe (openmontage-jump-cut-reframe, Calesthio, live) — Alternative: Automatic jump cuts from silencedetect, plus a face-tracked 16:9 to 9:16 reframe
  4. SmartCut (capcut-ai-editor) (capcut-smartcut-mcp, mrbuslov, live) — Alternative: Cuts silences and duplicate takes inside your CapCut project, when you finish the edit there
  5. FFmpeg Skill (ffmpeg-skill, Shogo Kajiyama, live) — Alternative: 42 FFmpeg tools for agents with a machine-readable contract
  6. Short-form FFmpeg cookbook: copyable commands for Reels (short-form-ffmpeg-cookbook, varg, live) — Adds: The next commands: crop to 9:16, burn captions, music under the voice
    • Claude Code: claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg
    • Codex: npx skills add vargHQ/skills --skill short-form-ffmpeg-cookbook -a codex -y
    • Cursor: npx skills add vargHQ/skills --skill short-form-ffmpeg-cookbook -a cursor -y
    • Any agent, with the vargai CLI: vargai install short-form-ffmpeg-cookbook
    • Details: https://varg.ai/how-to/skills/short-form-ffmpeg-cookbook.md
  7. Caption Styles: 17 pro caption looks with presets (caption-styles, varg, live) — Adds: Word-timed captions on the tightened cut

Ask the person first

Put these choices in front of the person before spending anything. Paste the example link next to each option: people pick a look by seeing it.

How tight?

Zoom?

After the cut?

How to cut silences and add zooms to a video: step by step

  1. Check the take with ffprobe (size, frame rate, length) and never overwrite the source: every step writes a new file
  2. Find the pauses from the audio, not from the transcript: silencedetect at -35 dB for 0.55 s or longer; on a noisy room raise the floor to -30 dB
  3. One FFmpeg run: keep every stretch of speech with 0.12 s of air on each side, and scale every other kept stretch to 115% so each jump cut reads as a change of camera
  4. Set FACE to where the eyes sit (0 is the top of the frame, 1 the bottom) so the zoom holds the eye line; stay at 130% or less on 1080p, past that the picture goes soft
  5. Watch every join once with sound; a pause right before a number or a punchline is a beat, so bring it back by raising the minimum pause
  6. Ums, retakes and flubs are not pauses: cut those from the transcript next (How to edit your own video footage), then captions and export

Set up varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

Related tutorials