Hardware Acceleration
mkv2cast supports hardware-accelerated encoding for faster conversions.
Supported Backends
NVENC - NVIDIA GPU encoding (fastest)
AMF - AMD GPU encoding (AMD VCE/VCN)
QSV - Intel Quick Sync Video
VAAPI - Video Acceleration API (AMD, Intel)
CPU - Software encoding with libx264 (most compatible)
Backend Selection
Automatic detection (default):
mkv2cast --hw auto
The auto mode tests backends in order: NVENC → AMF → QSV → VAAPI → CPU
Force specific backend:
mkv2cast --hw nvenc # NVIDIA GPU
mkv2cast --hw qsv # Intel Quick Sync
mkv2cast --hw vaapi # Intel/AMD VAAPI
mkv2cast --hw cpu # Software encoding
NVIDIA NVENC
NVENC provides the fastest encoding on NVIDIA GPUs (GTX 600+ series).
Enable NVENC:
mkv2cast --hw nvenc
Quality parameter (0-51, lower = better):
# High quality
mkv2cast --hw nvenc --nvenc-cq 20
# Default quality
mkv2cast --hw nvenc --nvenc-cq 23
# Lower quality, faster
mkv2cast --hw nvenc --nvenc-cq 28
Requirements:
NVIDIA GPU (GTX 600+ series, or RTX)
NVIDIA drivers installed
FFmpeg compiled with NVENC support
VAAPI Configuration
VAAPI is used for AMD and Intel GPUs.
Default device:
mkv2cast --hw vaapi
Custom device:
mkv2cast --hw vaapi --vaapi-device /dev/dri/renderD129
Quality parameter:
# Lower QP = better quality
mkv2cast --hw vaapi --vaapi-qp 20
Intel Quick Sync (QSV)
Enable QSV:
mkv2cast --hw qsv
Quality parameter:
# Lower value = better quality
mkv2cast --hw qsv --qsv-quality 20
CPU Encoding
Software encoding is the most compatible but slowest.
Presets (faster → better quality):
ultrafast
superfast
veryfast
faster
fast
medium
slow (default)
slower
veryslow
mkv2cast --hw cpu --preset fast
mkv2cast --hw cpu --preset veryslow
CRF quality (0-51, lower = better):
# High quality
mkv2cast --hw cpu --crf 18
# Default quality
mkv2cast --hw cpu --crf 20
# Lower quality, smaller file
mkv2cast --hw cpu --crf 24
Checking Hardware Support
mkv2cast --check-requirements
This will show:
Available encoders (h264_vaapi, h264_qsv)
VAAPI device status
GPU detection
Performance Comparison
Approximate encoding speed on typical hardware:
Backend |
Speed (fps) |
Quality |
|---|---|---|
NVENC |
300-500 |
Good |
AMF |
250-450 |
Good |
QSV |
200-400 |
Good |
VAAPI |
150-300 |
Good |
CPU slow |
10-30 |
Excellent |
CPU fast |
50-100 |
Good |
Troubleshooting
NVENC not detected:
Check NVIDIA driver:
nvidia-smiCheck encoder:
ffmpeg -encoders | grep nvencInstall CUDA toolkit if needed
AMF not detected:
Check AMD GPU:
lspci | grep -i amdCheck encoder:
ffmpeg -encoders | grep amfEnsure FFmpeg is compiled with AMF support
VAAPI not detected:
Check device exists:
ls -la /dev/dri/Check permissions:
groups | grep videoAdd user to video group:
sudo usermod -aG video $USER
QSV not working:
Ensure Intel GPU is available
Install Intel media driver
Check with:
vainfo
Fallback to CPU:
If hardware encoding fails, mkv2cast falls back to CPU automatically.