Skip to main content

Resolve Converter

Batch-convert video both ways between MP4 and MOV — a native PyQt6 desktop app for Linux:

  • MP4 → MOV — turn standard H.264/H.265 + AAC videos into DaVinci-safe MJPEG video + PCM 16-bit audio inside a QuickTime .mov, so the free tier of DaVinci Resolve can import them.
  • MOV → MP4 — convert those DaVinci-safe .movs back into compact, broadly playable H.264 + AAC .mp4 files for normal playback and sharing.
# forward: into DaVinci Resolve
ffmpeg -i input.mp4 -c:v mjpeg -q:v 3 -c:a pcm_s16le output.mov
# reverse: back to a shareable file
ffmpeg -i input.mov -c:v libx264 -crf 18 -c:a aac output.mp4
Direction Video Audio Why
MP4 → MOV MJPEG (-q:v 3) PCM s16le DaVinci free reads both natively
MOV → MP4 H.264 (-crf 18) AAC 192k compact, plays anywhere

DaVinci Resolve's free version on Linux cannot decode H.264/H.265 — the codecs almost every phone / camera / recorder produces. Drop in a folder of .mp4s to get them into Resolve, then send the finished .movs back through the app for shareable .mp4s again.

Features

  • Add .mp4 and .mov files — batch, individually, or mixed in one queue. Each file's direction is picked from its own format (.mp4.mov, .mov.mp4), so there's nothing to configure
  • Add via buttons, a whole folder, or drag & drop
  • 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 .mp4 / .mov files onto the window) — a mixed list is fine, each file converts to its counterpart.
  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 output file 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

  • Forward output is big. MJPEG is a JPEG per frame and PCM is uncompressed — a DaVinci-safe .mov is typically 5–10× its .mp4 source. Import straight to Resolve, edit, then use the MOV → MP4 pass to get a compact, shareable file back.
  • Reverse output is small. libx264 + AAC shrink that MJPEG/PCM .mov dramatically — expect a file close to the original .mp4's size.
  • Encoding defaults live in the RESOLVE_MODE / PLAYBACK_MODE objects (encode_args) in src/resolve_converter/__init__.py. Forward quality is -q:v 3 (2 = better, 4+ = smaller); reverse is libx264 -crf 18 (lower = better quality, larger file) with -movflags +faststart for streaming.
  • 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.1.0.tar.gz (19.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.1.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: resolveconverter-1.1.0.tar.gz
  • Upload date:
  • Size: 19.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.1.0.tar.gz
Algorithm Hash digest
SHA256 09a3dc8a41dc79a9f42c0208b8356d862c0f8e10ed4862e3300d3cb9f8d00900
MD5 39888df5de2a6dd6b82acaa755641076
BLAKE2b-256 5f9413c6e1bfeed54293e1afc82c5f53db7a75f09870c5ebfbf867a89301efc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for resolveconverter-1.1.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.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for resolveconverter-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b86f79c2bf96b441031b845a4c47108eec2912d3eebd9cf0563e488eb64c75fc
MD5 9a36460190d61478fca3c13c349d4418
BLAKE2b-256 7a4a90d9728ae6c41a0308df108fbbeecf2a01aa5194719b0dafe4f726774577

See more details on using hashes here.

Provenance

The following attestation bundles were made for resolveconverter-1.1.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

This release

1.1.0 This release

2 files

1.0.0

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