raw-video-processing
Post-process raw screen recordings by removing silent segments and applying speed adjustments. Uses FFmpeg-based Python scripts to optimize video pacing automatically.
By zc277584121 · 3,500 installs
npx skills add zc277584121/marketing-skills --skill raw-video-processing
Source repository · Upstream listing
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
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
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.