peepshow/ compare/ ffmpeg-manual

Reel #V-02 Frame-extraction CLI vs DIY ffmpeg + glue

peepshow / compare / ffmpeg-manual

peepshow vs writing your own ffmpeg + glue scripts

peepshow's hot path is ffmpeg. You could write the same thing yourself — many of us did, once. Honest comparison: when is the DIY route worth it, when does peepshow's bundled pipeline save weeks?

Side-by-side

 peepshowHand-rolled ffmpeg + bash + glue scripts
Setup`npm i -g peepshow`Write + maintain ~500 lines of glue
Scene detection✅ tuned + duration-aware fallbackffmpeg's select=gt(scene,T) — needs tuning per video
Perceptual dedup✅ phash + hamming thresholdRoll your own
Whisper integration✅ auto-detects whisper.cpp + 4 cloud providersWire up yourself
Sinks (SQL, vector, chat, etc.)✅ 71 built-inWrite each one
Run history + report✅ ndjson + report.html per runRoll your own
Cross-platform✅ macOS / Linux / Windows testedWatch for shell-quoting bugs
Telemetry / opt-out✅ opt-out via env or confign/a
MaintenanceUpdated regularlyOn you — ffmpeg flag drift hurts
FlexibilityPure-CLI — pipe to anythingMaximum — but you write everything

Pick peepshow when…

  • You want a working pipeline today.
  • Multiple destinations (SQL, vector, chat, observability) need the same artifact.
  • Whisper transcription is part of the workflow.
  • Run history / audit trail / report HTML matter.

Pick Hand-rolled ffmpeg + bash + glue scripts when…

  • You need extraction in a language without Node (pure Python / Go / Rust).
  • Single-purpose pipeline with no future requirements.
  • Want zero npm dependencies in the project.
  • Need bleeding-edge ffmpeg features (latest filter graphs) that peepshow doesn't expose yet.

Verdict

Hand-rolled is fine for a one-off. peepshow exists because hand-rolling the same pipeline for the fifth time was the cue to build it once, correctly. If you're going to use video → LLM more than twice, install peepshow.