Agent Skills: Video Segment Processor

Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses/openings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.

UncategorizedID: benchflow-ai/skillsbench/video-processor

Install this agent skill to your local

pnpm dlx add-skill https://github.com/benchflow-ai/skillsbench/tree/HEAD/tasks/video-silence-remover/environment/skills/video-processor

Skill Files

Browse the full folder contents for video-processor.

Download Skill

Loading file tree…

tasks/video-silence-remover/environment/skills/video-processor/SKILL.md

Skill Metadata

Name
video-processor
Description
Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses/openings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.

Video Segment Processor

Processes videos by removing specified segments and concatenating the remaining parts. Handles multiple removal segments efficiently using ffmpeg's filter_complex.

Use Cases

  • Removing detected pauses and openings from videos
  • Creating highlight reels by keeping only specific segments
  • Batch processing multiple segment removals

Usage

python3 /root/.claude/skills/video-processor/scripts/process_video.py \
    --input /path/to/input.mp4 \
    --output /path/to/output.mp4 \
    --remove-segments /path/to/segments.json

Parameters

  • --input: Path to input video file
  • --output: Path to output video file
  • --remove-segments: JSON file containing segments to remove

Input Segment Format

{
  "segments": [
    {"start": 0, "end": 600, "duration": 600},
    {"start": 610, "end": 613, "duration": 3}
  ]
}

Or multiple segment files:

python3 /root/.claude/skills/video-processor/scripts/process_video.py \
    --input video.mp4 \
    --output output.mp4 \
    --remove-segments opening.json pauses.json

Output

Creates the processed video and a report JSON:

{
  "original_duration": 3908.61,
  "output_duration": 3078.61,
  "removed_duration": 830.0,
  "compression_percentage": 21.24,
  "segments_removed": 91,
  "segments_kept": 91
}

How It Works

  1. Load removal segments from JSON file(s)
  2. Calculate keep segments (inverse of removal segments)
  3. Build ffmpeg filter to trim and concatenate
  4. Process video using hardware-accelerated encoding
  5. Generate report with statistics

FFmpeg Filter Example

For 3 segments to keep:

[0:v]trim=start=600:end=610,setpts=PTS-STARTPTS[v0];
[0:a]atrim=start=600:end=610,asetpts=PTS-STARTPTS[a0];
[0:v]trim=start=613:end=1000,setpts=PTS-STARTPTS[v1];
[0:a]atrim=start=613:end=1000,asetpts=PTS-STARTPTS[a1];
[v0][v1]concat=n=2:v=1:a=0[outv];
[a0][a1]concat=n=2:v=0:a=1[outa]

Dependencies

  • ffmpeg with libx264 and aac support
  • Python 3.11+

Limitations

  • Processing time: ~0.3× video duration (e.g., 20 min for 65 min video)
  • Requires sufficient disk space (output ≈ 70-80% of input size)
  • May have frame-accurate cuts (not sample-accurate)

Example

# Process video with opening and pause removal
python3 /root/.claude/skills/video-processor/scripts/process_video.py \
    --input /root/lecture.mp4 \
    --output /root/compressed.mp4 \
    --remove-segments /root/opening.json /root/pauses.json

# Result: 65 min → 51 min (21.2% compression)

Performance Tips

  • Use -preset medium for balanced speed/quality
  • Use -crf 23 for good quality at reasonable size
  • Process on machines with 2+ CPU cores for faster encoding

Notes

  • Preserves video quality using CRF encoding
  • Maintains audio sync throughout
  • Handles edge cases (segments at start/end of video)
  • Generates detailed statistics for verification