Back to Skills

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.

Updated 7/2/2026

Security Assessment

Safe(100/100)
Security Score100/100

About raw-video-processing

Clean up raw screen recordings before publishing by removing dead air and tightening the pacing. Screencasts tend to accumulate long pauses while thinking or waiting for things to load, plus low-level keyboard and background noise, and they often feel a touch slow. This skill addresses all three with two FFmpeg-based Python scripts run through uv, and FFmpeg and uv are the only prerequisites.

By default both scripts run in sequence. First, remove_silence.py detects and cuts silent portions, invoked with an aggressive `-t="-20dB"` threshold, where the `=` syntax avoids argparse misreading the negative value as a flag, and `-d 0.5` to remove even short silences, producing an `<input>_nosilence.mp4`. It prints a summary of the segments found, total silence removed, and the kept segments with timestamps so the result can be sanity-checked. Second, speed_video.py applies a playback multiplier, `--speed 1.2` by default as a subtle boost that does not feel rushed, producing `<input>_nosilence_1.2x.mp4`.

Order matters: silence removal must come before the speed pass, because detection works on the original audio and speeding up first would distort the audio and reduce accuracy. Both scripts expose options for custom output paths, and each supports tuning, such as conservative cleanup with `-t="-30dB" -d 0.8`, extra-aggressive cleanup with `-t="-15dB" -d 0.3` plus `--speed 1.5`, or a `--dry-run` preview that lists what would be cut without writing a file. Quality is preserved throughout, since remove_silence uses stream copy with no re-encoding while speed_video re-encodes with FFmpeg defaults. Long videos over 30 minutes may take a few minutes to process.

FAQ

What are the prerequisites for this skill?

FFmpeg and uv must both be installed. The scripts are run through `uv run` and rely on FFmpeg for the underlying processing.

What does the default workflow do?

It runs both scripts in sequence: remove_silence.py with `-t="-20dB" -d 0.5` to cut silence, then speed_video.py with `--speed 1.2` to apply a subtle speed boost.

Why must silence removal run before speeding up?

Silence detection works on the original audio, so speeding up first would alter the audio characteristics and make silence detection less accurate.

Can I preview what will be cut without exporting?

Yes. Use `--dry-run` on remove_silence.py to print the detected segments without creating an output file.

Does processing reduce video quality?

Both scripts preserve quality. remove_silence uses stream copy with no re-encoding, and speed_video re-encodes with FFmpeg defaults.

All Files

3 files
scripts/speed_video.py2.9 KB
View
scripts/remove_silence.py7.2 KB
View
SKILL.md3.9 KB
View

Install raw-video-processing

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill