Skip to content

Repository files navigation

Video Slideshow Maker

CI

A desktop GUI for building MP4 video slideshows from your photos and videos, with music, transitions, captions, and more. No subscription, no watermark — runs entirely on your machine.

Windows users: grab a pre-built installer from the Releases page — no Python or ffmpeg install required.


Features

Media

  • Mix photos (JPG, PNG, GIF, BMP, WEBP, TIFF, HEIC/HEIF) and videos (MP4, MOV, AVI, MKV, etc.)
  • Drag-and-drop reorder, or Cut (Ctrl+X) / Paste (Ctrl+V)
  • Per-item captions
  • Optional title card image at the start
  • Blurred-background fill for portrait photos on a landscape canvas

Music

  • Multiple audio tracks (MP3, WAV, AAC, M4A, OGG, FLAC, WMA)
  • Crossfade between songs and end fade-out
  • Music ducking under video clips
  • Auto-fit photo duration to music length, or snap to BPM

Transitions

  • Crossfade, Fade to Black, Cut, Zoom In, Zoom Out, Wipe Left, Wipe Right
  • Adjustable transition duration

Output

  • Resolutions: 1080p, 720p, 4K, Vertical/Reels (1080×1920), Square (1080×1080)
  • Auto-detect hardware encoding (NVIDIA, Intel, AMD) with software fallback
  • Quality presets: Fast, Balanced, High Quality
  • Save and reload projects (.ssproj)

Download (Windows)

Download SlideshowMaker-<version>-windows.zip from the latest release, unzip, and run SlideshowMaker.exe. ffmpeg is bundled — nothing else to install.


Run from Source

Requirements

  • Python 3.9 or later (standard library only — no pip install needed for the app itself)
  • ffmpeg available on PATH
    • Windows: winget install ffmpeg
    • macOS: brew install ffmpeg
    • Linux: sudo apt install ffmpeg
git clone https://github.com/owenaslin/slideshowmaker.git
cd slideshowmaker
python -m slideshowmaker
# or: python slideshow_maker.py

Build a Standalone Executable (Windows)

Produces a self-contained folder in dist/SlideshowMaker/ with ffmpeg bundled.

pip install pyinstaller

# Copy ffmpeg.exe and ffprobe.exe into vendor/ffmpeg/
mkdir vendor\ffmpeg
# (download from https://ffmpeg.org/download.html and copy the two .exe files here)

pyinstaller SlideshowMaker.spec

Project Structure

slideshowmaker/
  app.py          — main window and UI layout
  media.py        — media list, drag-reorder, cut/paste
  music.py        — music playlist and BPM estimator
  preview.py      — thumbnail previews
  rendering.py    — ffmpeg encode pipeline
  ffmpeg_utils.py — encoder detection and probing
  settings.py     — timing controls and output picker
  project.py      — save/load .ssproj project files
  constants.py    — file types, resolutions, config
  theme.py        — dark-theme colour tokens
  widgets.py      — reusable UI components
tests/
  test_timing.py  — unit tests for clip timing and fit-to-music logic

License

MIT © Owen Aslin

About

Desktop GUI for building MP4 video slideshows from photos, videos, and music — Python + ffmpeg + tkinter

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages