Skip to main content

Resolve Converter

Batch-convert MP4 → DaVinci Resolve-compatible MOV — a native PyQt6 desktop app for Linux that turns standard H.264/H.265 + AAC videos into MJPEG video + PCM 16-bit audio inside a QuickTime .mov container, so the free tier of DaVinci Resolve can import them.

ffmpeg -i input.mp4 -c:v mjpeg -q:v 3 -c:a pcm_s16le output.mov
Stream Codec Why
Video MJPEG (-q:v 3, near-lossless JPEG) DaVinci free reads it natively
Audio PCM s16le (uncompressed, little-endian) DaVinci free reads it natively
Container QuickTime .mov DaVinci free reads it natively

DaVinci Resolve's free version on Linux cannot decode H.264/H.265 — the codecs almost every phone / camera / recorder produces. This app removes that friction with a folder-drop-and-go batch queue.

Features

  • Add individual .mp4 files, a whole folder, or just drag & drop them in
  • Queue table with per-file status and live progress bars
  • Runs up to 2 ffmpeg jobs in parallel without ever freezing the UI
  • Global progress weighted by file size, plus a live ffmpeg console pane
  • Dark, distraction-free theme that fits Hyprland/Omarchy setups

Install

pip install resolve-converter          # or: pipx install resolve-converter

Runtime dependency: ffmpeg and ffprobe on your PATH.

sudo pacman -S ffmpeg                  # Arch / Omarchy
sudo apt install ffmpeg                # Debian / Ubuntu
sudo dnf install ffmpeg                # Fedora

Register with your desktop launcher

resolve-converter --install-desktop-entry

This installs the .desktop entry and icon into ~/.local/share/... and refreshes the desktop database, so the app shows up in Quickshell, GNOME, KDE, etc. Re-run it after moving to a different Python environment.

Usage

  1. + Add Files… or + Add Folder… (or drag .mp4s onto the window)
  2. Output — leave blank to write each file into a Converted/ subfolder next to its source; or pick one destination folder for everything.
  3. ▶ Start Conversion — up to 2 parallel ffmpeg jobs; the UI never freezes.
  4. ■ Stop terminates running jobs and marks the rest as cancelled.

Status colors: Pending gray · Processing cyan · Completed green · Failed red · Cancelled amber · Skipped dim (when "Overwrite existing files" is off and the .mov already exists).

Development

git clone <your-repo-url> && cd resolve-converter
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
python -m unittest discover -s tests

Building & publishing

pip install build twine
python -m build
python -m twine check dist/*
python -m twine upload --repository testpypi dist/*   # try TestPyPI first
python -m twine upload dist/*                          # then PyPI

Notes & caveats

  • Files get big. MJPEG is a JPEG per frame and PCM is uncompressed — output is typically 5–10× the input size. This is the price of DaVinci-free compatibility; import straight to Resolve, then export your edit.
  • Quality of the video pass is set by -q:v 3 (2 = better, 4+ = smaller). Edit ConvertWorker._convert in src/resolve_converter/__init__.py to change it.
  • Files whose output already exists are overwritten by default — uncheck Overwrite existing files to skip instead.

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resolveconverter-1.0.0.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

resolveconverter-1.0.0-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file resolveconverter-1.0.0.tar.gz.

File metadata

  • Download URL: resolveconverter-1.0.0.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for resolveconverter-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0c670d68233c0038560dd1eadab771719af81412d03cf60e32623edf5486ac34
MD5 a01277b027ffae70ddd90f4f009647b7
BLAKE2b-256 9d63ad6f13b8befd7aed5cbbebac92463ec9b36109d7a5bd9b5275f574ddc8d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for resolveconverter-1.0.0.tar.gz:

Publisher: workflow.yml on CloudSnapManage/resolveconverter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file resolveconverter-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for resolveconverter-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0828e20b2f66a6ddb552adc20447fb0685af65209bdd0438af3067a48c05175
MD5 1830be61f0365ac99ad1816a21299061
BLAKE2b-256 4bfee247900de4455faaf0d8d5cbd244b4c1c9474844ce06e60910cd78b3d028

See more details on using hashes here.

Provenance

The following attestation bundles were made for resolveconverter-1.0.0-py3-none-any.whl:

Publisher: workflow.yml on CloudSnapManage/resolveconverter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.1.0

2 files

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page