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)
| File | Size | Uploaded | |
|---|---|---|---|
| dav2mkv-1.0.4.tar.gz | 21.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|