Windows desktop app for batch video conversion with a Tkinter GUI and FFmpeg.
- Queue multiple video files for conversion.
- Detect likely 10-bit log footage with
ffprobe. - Optionally apply a
.cubeLUT before export. - Export a single output or dual outputs for messaging and YouTube.
- Encode with CPU (
libx264) or NVIDIA NVENC. - Show live progress based on FFmpeg progress output.
- Persist the last-used settings in
universal_media_engine_config.json.
The repo now uses a cleaner source layout:
main.py: thin root-level launcher for local development.src/universal_media_engine/app.py: Tkinter window, widget events, and UI updates.src/universal_media_engine/app_models.py: application data models.src/universal_media_engine/config_store.py: load and save user settings.src/universal_media_engine/media_probe.py:ffprobewrapper for format and duration detection.src/universal_media_engine/ffmpeg_builder.py: task planning and FFmpeg command construction.src/universal_media_engine/runner.py: subprocess execution, cancellation, and progress reporting.packaging/file_version_info.txt: Windows version metadata for PyInstaller.assets/luts/: optional LUT assets.
- Windows
- FFmpeg installed and available on
PATH - Python 3.14+ for local development
Install FFmpeg with:
winget install ffmpegCreate or repair the virtual environment, then install dependencies:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtRun the app:
python main.pyThe repo includes PyInstaller packaging files:
build_app.pypackaging/file_version_info.txt
Generated output should stay out of source control.