Agent Skills

raw-video-processing

videozc2775841213.7K installs

Post-process raw screen recordings by removing silent segments and applying speed adjustments. Uses FFmpeg-based Python scripts to optimize video pacing automatically.

Install

npx skills add https://github.com/zc277584121/marketing-skills --skill raw-video-processing
SKILL.md

Skill: Raw Video Processing

Post-process raw screen recordings to improve pacing — remove silent segments, then speed up the result.

Prerequisite: FFmpeg and uv must be installed.


When to Use

The user has recorded a screencast and wants to clean it up before publishing. Typical issues in raw recordings:

  • Long pauses / dead air while thinking or waiting for loading
  • Keyboard typing sounds and other low-level background noise that should be treated as silence
  • Overall pacing feels slow and could benefit from a slight speed boost

Default Workflow

When the user provides a raw video file, run both scripts in sequence by default:

Step 1: Remove Silent Segments

uv run --python 3.12 /path/to/skills/raw-video-processing/scripts/remove_silence.py <input.mp4> -t="-20dB" -d 0.5

This detects and cuts out silent portions (including keyboard sounds), producing <input>_nosilence.mp4.

Always pass these parameters (tuned for screen recordings with keyboard noise):

  • -t="-20dB" — aggressive threshold that filters out keyboard typing and background noise (use = syntax to avoid argparse treating negative values as flags)
  • -d 0.5 — remove short silences too (0.5s minimum)
  • -p 0.2 — seconds of breathing room kept around speech boundaries (default, usually no need to pass)

The script prints a detailed summary: number of silent segments found, total silence removed, and all kept segments with timestamps. Review this output to confirm the result looks reasonable.

Step 2: Speed Up the Video

uv run --python 3.12 /path/to/skills/raw-video-processing/scripts/speed_video.py <input>_nosilence.mp4

This applies a speed multiplier to the silence-removed video, producing <input>_nosilence_1.2x.mp4.

Default parameters:

  • --speed 1.2 — 1.2x playback speed (a subtle boost that doesn't feel rushed)

Script Options

remove_silence.py

Flag Default Description
-o, --output <input>_nosilence.mp4 Custom output path
-t, --threshold -30dB Silence threshold in dB (higher = more aggressive). Always use -20dB for screencasts — pass as -t="-20dB" to avoid argparse issues with negative values
-d, --duration 0.8 Minimum silence duration in seconds to remove. Use 0.5 for screencasts
-p, --padding 0.2 Padding kept around non-silent segments
--dry-run off Only print detected segments, don't export

speed_video.py

Flag Default Description
-o, --output <input>_<speed>x.mp4 Custom output path
-s, --speed 1.2 Playback speed multiplier

Custom Scenarios

  • Only remove silence — run just Step 1.
  • Only speed up — run just Step 2 directly on the input file.
  • Conservative cleanup — use -t="-30dB" -d 0.8 if the default is cutting too much speech.
  • Extra aggressive cleanup — use -t="-15dB" -d 0.3 and --speed 1.5 for maximum compression.
  • Preview before committing — use --dry-run on remove_silence.py to see what would be cut without creating a file.
  • Custom output name — use -o on either script to control the output path.

Important Notes

  • Always run remove_silence before speed_video. Silence detection works on the original audio; speeding up first would alter the audio characteristics and make silence detection less accurate.
  • For long videos (>30 min), the silence removal step may take a few minutes as it processes each segment individually.
  • Both scripts preserve video quality — remove_silence uses stream copy (no re-encoding), while speed_video re-encodes with FFmpeg defaults.

Related skills

video-editgenmedia-labs715KEdit existing video on RunComfy — this skill is a smart router that matches the user's intent to the right edit model in the RunComfy catalog. Picks Wan 2.7 Edit-Video (general restyle / background swap / packaging swap, identity + motion preservation), Kling 2.6 Pro Motion Control (transfer precise motion from a reference video to a target character), or Lucy Edit Restyle (lightweight identity-stable restyle / outfit swap). Bundles each model's documented prompting patterns so the skill gets shai-video-generationgenmedia-labs714KGenerate AI videos on RunComfy via the `runcomfy` CLI — a smart router across the full video-model catalog: HappyHorse 1.0 (Arena #1, native in-pass audio), Wan-AI Wan 2-7 (open weights, audio-driven lip-sync), ByteDance Seedance v2 / 1-5 / 1-0 (multi-modal cinematic), Kling 3.0 / 2-6, Google Veo 3-1, MiniMax Hailuo 2-3, ByteDance Dreamina 3-0. Covers text-to-video (t2v), image-to-video (i2v), and Veo's video-extend endpoint. The skill picks the right model for the user's intent (Arena-#1 qualitai-musicgenmedia-labs714KGenerate AI music on RunComfy via the `runcomfy` CLI — a smart router across the music-model catalog. Routes to ElevenLabs AI Music Generation (premium 44.1 kHz stereo vocal tracks, 5 s–5 min, $0.0083/s) and ACE Step / ACE Step 1.5 (StepFun-AI open-weights, tag-driven composition, multilingual lyrics, $0.0002–0.0003/s, ~27× cheaper), plus ACE Step audio-inpaint (regenerate a time range inside an existing track) and ACE Step audio-outpaint (extend a track before or after). Picks the right model fimage-to-videogenmedia-labs713KAnimate any still image on RunComfy — this skill is a smart router that matches the user's intent to the right i2v model in the RunComfy catalog. Picks HappyHorse 1.0 I2V (Arena #1, native audio, identity preservation) for general animations, Wan 2.7 with `audio_url` for custom-voiceover lip-sync, or Seedance 2.0 Pro for multi-modal animation from image + reference video + reference audio. Bundles each model's documented prompting patterns so the caller gets sharper output without burning iterat

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers