Skip to main content

dav2mkv

Convert DAV and other video files to MKV or MP4 with FFmpeg stream copy — no re-encoding, no quality loss.

Quick start

pip install dav2mkv
dav2mkv -f recording.dav -o recording.mkv

Requires Python 3.12+ and FFmpeg (with ffprobe) on your PATH.

A standalone Windows executable is available on GitHub Releases.

Features

  • Lossless conversion via direct stream copy
  • Single-file or batch directory processing with optional recursion
  • Parallel workers for directory mode
  • MKV or MP4 output (default: MKV)
  • Stream and format probing before conversion
  • Cross-platform (Windows, macOS, Linux)

Install FFmpeg

Platform Command
Windows (winget) winget install ffmpeg
Windows (manual) gyan.dev builds — add bin to PATH
macOS brew install ffmpeg
Ubuntu/Debian sudo apt update && sudo apt install ffmpeg

Verify with ffmpeg -version and ffprobe -version.

Installation

pip install dav2mkv

From a clone (development):

pip install -e ".[dev]"

Usage

Single file

dav2mkv -f input.dav -o output.mkv
dav2mkv -f input.dav -o output.mp4 --container mp4

Directory (batch)

dav2mkv -d ./videos -o ./converted
dav2mkv -d ./videos -o ./converted --recursive --container mp4 -c 4

Directory mode scans for common video extensions (.dav, .avi, .mp4, .mkv, .mov, and others).

Positional arguments

Flags are optional — pass paths directly:

dav2mkv input.dav output_folder
python -m dav2mkv ./videos ./converted --container mp4

Options

Option Description
-f, --file Single input file
-d, --directory Input directory for batch conversion
-o, --output Output file or directory
--container mkv or mp4 (default: mkv)
--recursive Include subdirectories (directory mode)
-c, --concurrent Parallel workers (directory mode)
--overwrite / --no-overwrite Overwrite existing outputs (default: overwrite)
--log-level DEBUG, INFO, WARNING, ERROR, CRITICAL
--log-file Write logs to a file
--version Show version and exit

Run dav2mkv --help for full details.

Development

py scripts/verify.py        # lint, type-check, and test
py scripts/verify.py --fix  # apply formatting fixes first

License

Commercial Restricted License (CRL). Issues and pull requests are welcome.

Metadata

Release files for dav2mkv 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dav2mkv 1.0.4
File Size Uploaded
dav2mkv-1.0.4.tar.gz 21.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dav2mkv 1.0.4
File Interpreter ABI Platform
dav2mkv-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 39.2 kB

Release files / dav2mkv-1.0.4.tar.gz

Download URL dav2mkv-1.0.4.tar.gz
Size 21.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6e7b04eb10421f764311f05e0daf93033c02490a879e3d4d8ae8ffa2d616281f
BLAKE2b-256 checksum
How to use checksums
27b7e28c5741e91688cb6f0c59d4565d3316fe3b57bc7d3f6b4e1c14fd244db9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / dav2mkv-1.0.4-py3-none-any.whl

Download URL dav2mkv-1.0.4-py3-none-any.whl
Size 18.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cec38f3d18217b95f0726b1225a64373094691316015cbb23f8d6618e2033d08
BLAKE2b-256 checksum
How to use checksums
7f547e6a4429e912a8899a7b2e2664b1c70e33d5fc9d3e18140bd6d75cf6ff4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.1

2 release 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