Accessible Media Converter is a Windows desktop transcoding tool built with wxPython and powered by FFmpeg.
The project is designed with accessibility and keyboard-driven workflows in mind, while still offering enough control for real-world media conversion tasks such as audio extraction, multi-track video handling, stream copy, loudness normalization, and batch processing.
- Accessible desktop UI for Windows
- Application language preference with automatic system detection
- Audio-to-audio and video-to-audio conversion
- Video-to-video conversion for
MP4andMKV - Image conversion (
JPEG,PNG,WebP,TIFF,BMP) with quality/compression controls and resize - Explicit track selection for video, audio, and subtitles
- Audio extraction track selection for multi-audio video files
- Batch conversion with configurable parallel jobs
- Optional streaming normalization at
-16 LUFS - Auto error report dialog with session context
- Built-in support contact flow
- PHP support-report backend for direct email delivery
- Installer-based Windows release pipeline
Input support depends on FFmpeg / ffprobe, but the application currently targets common formats such as:
- Audio:
MP3,WAV,FLAC,AAC,OGG,WMA,M4A - Video:
MP4,MKV,AVI,MOV,WMV,WEBM - Image:
JPEG,PNG,WebP,AVIF,TIFF,BMP
Current output formats:
- Audio:
MP3,AAC,WAV,FLAC,ALAC,OGG,WMA - Video:
MP4,MKV - Image:
JPEG,PNG,WebP,TIFF,BMP
- Format-specific settings with persisted summaries
- Audio mode: re-encode or stream copy
- Video mode: H.264 re-encode or stream copy
- Video CRF presets
- Streaming loudness normalization toggle
- Per-file track management for video outputs
- Per-file audio extraction choice for video-to-audio outputs
- Clipboard import with
Ctrl+V - Select all with
Ctrl+A - Preferences shortcut with
Ctrl+, - Parallel conversions with output conflict handling
- Windows 10 or Windows 11
- Python
3.14recommended for source development FFmpegandffprobebinaries available inbin/
Dependencies are managed with uv and declared in
pyproject.toml (locked in uv.lock):
- Runtime:
wxPython>=4.2.1,accessible_output2>=0.17 - Development / packaging (
devgroup):polib,PyInstaller - Plus
Inno Setup 6(external, for the installer)
- Install uv.
- Create the virtual environment and install all dependencies (runtime + dev):
uv syncuv sync creates .venv from pyproject.toml/uv.lock and installs the
pinned versions. Use uv sync --no-dev to skip the packaging tools.
- Place
ffmpeg.exeandffprobe.exein thebin/folder. - Launch the application:
uv run main.pyThe repository includes a Windows release script that:
- compiles translations
- builds the PyInstaller app folder
- generates Windows version metadata
- builds the Inno Setup installer
Run:
powershell -ExecutionPolicy Bypass -File .\scripts\build_release.ps1Expected outputs:
dist\AccessibleMediaConverter\AccessibleMediaConverter.exedist\AccessibleMediaConverter-Setup.exe
- English is the source language used by the code and the gettext catalogs.
- French is currently shipped as a translation catalog in
locales/fr/LC_MESSAGES/base.po. - Local offline documentation is organized by language under
docs/<lang>/. - The application preference supports
auto,fr, anden.
Translation maintenance commands:
python .\scripts\manage_i18n.py extract
python .\scripts\manage_i18n.py update --lang fr
python .\scripts\manage_i18n.py init --lang esmain.py: application entry pointcore/: probing, conversion, formatting, debug, support, batch logicui/: main window and dialogsserver/: PHP support-report backendinstaller/: Inno Setup installerscripts/: release build tooling
The installed application stores user data outside the application folder:
- configuration:
%APPDATA%\AccessibleMediaConverter - debug data:
%APPDATA%\AccessibleMediaConverter\debug
This means upgrades do not wipe user preferences or debug artifacts by default.
This project is built with accessibility as a core goal, not as an afterthought. Current efforts include:
- keyboard-friendly workflows
- NVDA-oriented control naming and navigation improvements
- explicit menu shortcuts
- simplified support and debug flows for end users
Support contact address:
contact@mathieumartin.ovh
Current public version in the repository metadata:
1.9.1