Extract slide decks from video content
macOS / Linux / Windows
Drop a video file (or paste a URL), pick a similarity threshold, and get a clean set of slides as PNG frames or a single PDF. Frames are compared using per-channel RGB histogram intersection, so only visually distinct slides are kept.
- Smart frame detection - RGB histogram fingerprinting filters out duplicate/similar frames
- Real-time export - PNG frames are written to disk as they're found, not after the full video is processed
- Remote video support - Paste a YouTube or direct URL; yt-dlp downloads it automatically
- PDF export - Flatten kept frames into a single multi-page PDF
- Timestamp overlay - Optional
HH:MM:SSburn-in on each slide (built-in pixel font, no dependencies) - Time range filtering - Process only a slice of the video with start/end timestamps
- Cross-platform - Native desktop app for macOS (Apple Silicon + Intel), Linux, and Windows
Grab the latest build from Releases:
| Platform | File |
|---|---|
| macOS (Apple Silicon) | video2ppt_*_aarch64.dmg |
| macOS (Intel) | video2ppt_*_x64.dmg |
| Windows | video2ppt_*_x64-setup.exe |
| Linux (Debian/Ubuntu) | video2ppt_*_amd64.deb |
| Linux (Fedora/RHEL) | video2ppt_*_x86_64.rpm |
| Linux (AppImage) | video2ppt_*_amd64.AppImage |
macOS note: The app is not signed yet. After installing, run:
sudo xattr -dr com.apple.quarantine /Applications/video2ppt.app
ffmpeg and ffprobe must be on your PATH:
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows (scoop)
scoop install ffmpeg- Probe -
ffprobereads the video's duration and resolution - Sample -
ffmpegdecodes the video at a configurable FPS into a temp directory - Compare - Each frame is fingerprinted (per-channel RGB histogram) and compared against the last kept slide
- Filter - Frames below the similarity threshold are kept as unique slides
- Export - Kept frames are saved as PNGs (real-time) or combined into a PDF
# Prerequisites: Rust 1.77+, Node.js, pnpm, ffmpeg
pnpm install
pnpm tauri:devBuild release binaries:
pnpm tauri:build| Layer | Technology |
|---|---|
| Runtime | Tauri 2 |
| Backend | Rust (image, printpdf, ffmpeg CLI) |
| Frontend | React + TypeScript + Vite |
| UI | shadcn/ui + Tailwind CSS |
| Video | ffmpeg / ffprobe (sidecar) |
| Download | yt-dlp (bundled) |
