Desktop app for converting video and audio into game-ready formats, especially ogv for Godot and others engines, plus sprite atlas generation for 2D workflows.
This project is a Python rewrite of the original .NET tool I made some time ago.
- Convert videos to
ogv,mp4,webm, andgif - Convert audio to
ogg,mp3,aac, andwav - Extract audio from video files
- Use Godot-focused OGV presets
- Use Love2D-focused OGV presets
- Generate PNG sprite atlases from video
- Batch process files from a GUI
- Show export summaries and recommendations
- Python
3.11+ ffmpegffprobe
On Windows, the app can use:
bin/ffmpeg.exeandbin/ffprobe.exeGVC_FFMPEG_DIRffmpegandffprobefromPATH
On Linux, ffmpeg and ffprobe should be available in PATH.
The project metadata in pyproject.toml is the source of truth for dependencies.
- Use
pip install -e .for regular development.
- Install Python
3.11+. - Clone or download this repository.
- Create a virtual environment:
python -m venv .venv- Activate it:
.venv\Scripts\Activate.ps1- Install the app in editable mode:
pip install -e .- Make sure FFmpeg (7.1.1 recommended version) is available using ONE of these options:
- Copy
ffmpeg.exeandffprobe.exeintobin/ - Set
GVC_FFMPEG_DIRto the folder that contains both binaries - Add FFmpeg to
PATH
- Run the app:
gvc-gui- Install Python
3.11+. - Install FFmpeg with your package manager.
- Clone or download this repository.
- Create a virtual environment:
python3 -m venv .venv- Activate it:
source .venv/bin/activateIf you use fish, activate it with:
source .venv/bin/activate.fish- Install the app in editable mode:
python -m pip install -e .- Verify FFmpeg:
ffmpeg -version
ffprobe -version- Run the app:
gvc-guiIf the console command is not available for any reason, you can also run:
python -m gvc# Arch / CachyOS
sudo pacman -S ffmpeg python
# Debian / Ubuntu
sudo apt update
sudo apt install ffmpeg python3 python3-venv python3-pip
# Fedora
sudo dnf install ffmpeg python3 python3-pip
# openSUSE
sudo zypper install ffmpeg python3 python3-pipLinux releases can be built in two ways. Neither package includes FFmpeg, so end
users need their distribution's ffmpeg package, with both ffmpeg and
ffprobe available in PATH.
| Build | Output | Best for |
|---|---|---|
| PyInstaller folder | dist/gvc/ |
A conventional executable folder or ZIP download. |
| AppImage | dist/godot-video-converter-<version>-<architecture>.AppImage |
A single portable download for most Linux desktop distributions. |
On a Linux machine, run:
bash scripts/build_linux.shThe script installs the required build dependencies and runs PyInstaller with gvc.spec.
The result is the dist/gvc/ directory. Distribute that whole directory (for
example, as a .zip); users run gvc inside it.
On a Linux machine, run:
bash scripts/build_appimage.shThe build creates dist/godot-video-converter-<version>-<architecture>.AppImage.
It downloads the pinned and SHA-256-verified appimagetool release into
.appimage/tools/ on the first run; alternatively, set APPIMAGETOOL to a local,
trusted executable. The AppImage bundles Python, PySide6, and
the application, but deliberately does not bundle FFmpeg. Users must install
their distribution's ffmpeg package so both ffmpeg and ffprobe are in PATH.
To run a released AppImage:
chmod +x godot-video-converter-*.AppImage
./godot-video-converter-*.AppImageCopy ffmpeg.exe and ffprobe.exe into bin/, then run:
./scripts/build_windows.ps1Output is generated in dist/gvc/. Run dist/gvc/gvc.exe.
The automated unit tests do not need FFmpeg or a graphical session. Install the project first, then run:
python -m pip install -e .
python -m unittest discover -s tests -v