Skip to main content

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


Download files

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

Source Distribution

dav2mkv-1.0.4.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

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

dav2mkv-1.0.4-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

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

Hashes for dav2mkv-1.0.4.tar.gz
Algorithm Hash digest
SHA256 6e7b04eb10421f764311f05e0daf93033c02490a879e3d4d8ae8ffa2d616281f
MD5 16c66b4e528cf5e568afed9ec2d494d7
BLAKE2b-256 27b7e28c5741e91688cb6f0c59d4565d3316fe3b57bc7d3f6b4e1c14fd244db9

See more details on using hashes here.

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

Hashes for dav2mkv-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 cec38f3d18217b95f0726b1225a64373094691316015cbb23f8d6618e2033d08
MD5 a1f8eeef8f6fb93af6ca643820627c53
BLAKE2b-256 7f547e6a4429e912a8899a7b2e2664b1c70e33d5fc9d3e18140bd6d75cf6ff4a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page