B-results-Media-Builder

Author

Yahya Nazer

Published

2026.06.18

B-Results Media Builder

A desktop tool that turns a folder of images into shareable deliverables. Point it at a folder of pictures

— typically a painting-output subfolder under your c-Results folder — tick the outputs you want, and it builds them back into the same parent folder, each named with a fixed prefix:

PPTX-<folder>.pptx     a PowerPoint deck, one image per slide
Mp4-<folder>.mp4       a 1920x1080 H.264 slideshow (optional MP3 music)
CS-<folder>/           a self-contained web contact sheet (index.html)

It merges three earlier tools into one window: the Folder-to-PPTX builder, the Folder-to-MP4 slideshow builder, and the web contact sheet builder.


What it does

You select one folder of images and choose any combination of three outputs. Each output is written next to the source folder (in its parent — your c-Results folder) with a PPTX-, Mp4-, or CS- prefix in front of the source folder name. You can build one, two, or all three in a single run.


Requirements

  • Python 3.9+
  • Core libraries (needed to launch the app and to build PowerPoint and contact-sheet outputs):
python3 -m pip install pillow numpy python-pptx
  • MP4-only libraries (needed only if you build MP4 slideshows):
python3 -m pip install imageio imageio-ffmpeg

The program loads the MP4 libraries lazily, so it runs fine with just the core libraries — PowerPoint and the contact sheet work without imageio. If you tick MP4 without those libraries installed, the tool shows a clear message telling you the install command instead of crashing. imageio-ffmpeg downloads a small ffmpeg binary the first time you build an MP4.

Works on Windows, macOS, and Linux (Tkinter ships with the standard Python installer; on Linux install python3-tk if needed).


Running it

python F-CResults-Media-Builder_V01.py

Or open it in VS Code and run with Code Runner. A window titled “C-Results Media Builder” opens.


Using the window

  1. Source image folder — click Browse… and pick the folder of images (e.g. a c-Results/<name>-<timestamp> subfolder from the painter).
  2. Outputs to build — tick any of:
    • PowerPoint → PPTX-<folder>.pptx
    • MP4 slideshow → Mp4-<folder>.mp4
    • Web contact sheet → CS-<folder>/
  3. Options — adjust the per-output settings (below).
  4. Generate — builds the selected outputs and opens the destination folder.
  5. Open Output Folder / Quit — jump to the results, or close.
  6. Status line — shows progress and the destination path.

Options

Option Applies to Default Effect
Filename caption PPTX on Prints each image’s filename under the slide image
Filename overlay (top-left) MP4 on Burns the filename onto each frame with a readable outline
Use MP3 in folder as music MP4 on If an .mp3 is in the folder, it’s muxed in as the soundtrack
Seconds/image MP4 5 How long each still is held
FPS MP4 30 Frames per second of the video

Where the output goes

The destination is the parent of the folder you selected. So if you pick …/c-Results/test-2026-06-16--11-00/, the outputs are written into …/c-Results/ as:

c-Results/
  test-2026-06-16--11-00/          <- the folder you selected (unchanged)
  PPTX-test-2026-06-16--11-00.pptx
  Mp4-test-2026-06-16--11-00.mp4
  CS-test-2026-06-16--11-00/
    index.html
    thumbnails/
    (copies of the images, and the MP3 if present)

Re-running overwrites the matching prefixed output for that folder.


The three outputs in detail

PowerPoint (PPTX-…) — one slide per image on a blank layout. Each image is scaled to fit the slide while preserving its aspect ratio (no stretching) and centered, with the filename as an optional caption below.

MP4 slideshow (Mp4-…) — a 1920×1080 H.264 video (yuv420p, web/QuickTime-friendly with +faststart). Each image is letterboxed onto a black canvas with its aspect ratio preserved and EXIF orientation honored. The filename can be overlaid at the top-left. If an MP3 is found in the folder, it’s added as background music (AAC), trimmed to the shorter of video or audio.

Web contact sheet (CS-…/) — a self-contained folder with index.html, a thumbnails/ folder, and flat copies of the images so the page is portable (you can zip and share the whole CS-… folder). The page offers a slideshow with play/pause, shuffle, jump-to dropdown, a download button, a contact-sheet grid view with selectable grid sizes, fullscreen, and an EXIF info list for each image. Keyboard shortcuts: Space play/pause, Left/Right navigate, C toggle contact sheet, Esc exit fullscreen.


Supported files

  • Images: .jpg .jpeg .png .webp .bmp .tif .tiff
  • Audio (MP4 music / contact sheet): .mp3

Images are read directly from the selected folder (not from sub-folders) and sorted naturally, so img-2 comes before img-10.


Notes and customizing

  • Console messages are plain ASCII; the generated web page keeps its icon-based design and is written as UTF-8.
  • Video defaults live near the top of the file: TARGET_SIZE (1920×1080), OUTPUT_CODEC, and the ffmpeg flags. Thumbnail size is THUMB_SIZE (200×200). The output prefixes are PREFIX_PPTX, PREFIX_MP4, and PREFIX_CS.
  • Set PRINT_FLAG = False to silence the [DEBUG] console messages.

Troubleshooting

  • “No module named pptx / PIL / numpy” — install the core libraries: python3 -m pip install pillow numpy python-pptx.
  • “No module named imageio” — this only blocks the MP4 output. Either install python3 -m pip install imageio imageio-ffmpeg, or leave MP4 unticked and use the PowerPoint / contact-sheet outputs, which don’t need it.
  • Installed a package but Python still says it’s missing (common on macOS / VS Code) — VS Code’s Code Runner may use a different Python than your terminal. Install into the interpreter VS Code is actually using: open VS Code’s integrated terminal (or check the Python version in the status bar) and run the python3 -m pip install ... command there.
  • MP4 step is slow or pauses the first time — that’s ffmpeg downloading; ensure internet access on the first run.
  • No outputs / “No image files found” — make sure the folder you selected contains images directly (not only sub-folders).
  • Web page shows broken images when moved — move or share the whole CS-… folder (it contains the images and thumbnails it references).
  • Can’t find the results — click Open Output Folder, or read the path in the status line after a run.