Convert DAV/video files to MKV/MP4 via FFmpeg stream copy
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dav2mkv-1.0.4.tar.gz.
File metadata
- Download URL: dav2mkv-1.0.4.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e7b04eb10421f764311f05e0daf93033c02490a879e3d4d8ae8ffa2d616281f
|
|
| MD5 |
16c66b4e528cf5e568afed9ec2d494d7
|
|
| BLAKE2b-256 |
27b7e28c5741e91688cb6f0c59d4565d3316fe3b57bc7d3f6b4e1c14fd244db9
|
File details
Details for the file dav2mkv-1.0.4-py3-none-any.whl.
File metadata
- Download URL: dav2mkv-1.0.4-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cec38f3d18217b95f0726b1225a64373094691316015cbb23f8d6618e2033d08
|
|
| MD5 |
a1f8eeef8f6fb93af6ca643820627c53
|
|
| BLAKE2b-256 |
7f547e6a4429e912a8899a7b2e2664b1c70e33d5fc9d3e18140bd6d75cf6ff4a
|