Files
encoderPro/config.yaml
2026-01-24 17:43:28 -05:00

325 lines
9.3 KiB
YAML

# =============================================================================
# ENCODERPRO CONFIGURATION - PHASE 3
# =============================================================================
# Enhanced configuration with GPU acceleration and parallel processing
# =============================================================================
# DIRECTORY PATHS (same as Phase 2)
# =============================================================================
movies_dir: /mnt/user/movies
archive_dir: /mnt/user/archive/movies
work_dir: /mnt/user/temp/encoderpro-work
state_db: /var/lib/encoderpro/state.db
log_dir: /var/log/encoderpro
# =============================================================================
# PARALLEL PROCESSING (NEW IN PHASE 3)
# =============================================================================
parallel:
# Maximum number of concurrent encoding jobs
# Recommended: 1-2 for GPU, 2-4 for CPU (depending on cores)
max_workers: 2
# GPU slots (how many encodes can use GPU simultaneously)
# Most GPUs: 1-2 concurrent encodes
# High-end GPUs: 2-3 concurrent encodes
gpu_slots: 1
# CPU slots (for CPU encoding fallback)
# Set to number of physical cores divided by 2
cpu_slots: 4
# =============================================================================
# ENCODING PROFILES (NEW IN PHASE 3)
# =============================================================================
profiles:
# Default profile to use if none specified
default: balanced_gpu
# Profile definitions
definitions:
# --- GPU PROFILES (NVIDIA NVENC) ---
# RECOMMENDED: Sweet spot for quality/size/speed balance
sweetspot_gpu:
encoder: nvidia_nvenc_h265
preset: p5 # Slower preset for better quality
quality: 21 # CRF 21 = transparent quality for most content
audio_codec: copy
hdr_handling: preserve
description: "Perfect balance - visually transparent quality at good compression"
balanced_gpu:
encoder: nvidia_nvenc_h265
preset: p4 # p1 (fastest) to p7 (slowest)
quality: 23 # Lower = better quality
audio_codec: copy
hdr_handling: preserve
description: "Good quality/speed balance for general use"
fast_gpu:
encoder: nvidia_nvenc_h264
preset: p1 # Fastest preset
quality: 26
audio_codec: copy
description: "Fast processing, larger files, universal compatibility"
quality_gpu:
encoder: nvidia_nvenc_h265
preset: p7 # Highest quality preset
quality: 19 # Near-lossless
audio_codec: copy
hdr_handling: preserve
description: "Maximum quality for archival (slower, larger files)"
# --- CPU PROFILES (FALLBACK) ---
sweetspot_cpu:
encoder: cpu_x265
preset: slow
quality: 21
audio_codec: copy
description: "CPU sweet spot - excellent quality at good compression (slow)"
balanced_cpu:
encoder: cpu_x265
preset: medium
quality: 23
audio_codec: copy
description: "Balanced CPU encoding"
fast_cpu:
encoder: cpu_x264
preset: fast
quality: 26
audio_codec: copy
description: "Fast CPU encoding with H.264"
quality_cpu:
encoder: cpu_x265
preset: veryslow
quality: 19
audio_codec: copy
description: "Maximum CPU quality (very slow)"
# --- INTEL QSV PROFILES (Arc A-Series & Integrated Graphics) ---
# RECOMMENDED: Sweet spot for Intel Arc
sweetspot_qsv:
encoder: intel_qsv_h265
preset: slow
quality: 21
audio_codec: copy
hdr_handling: preserve
description: "Intel sweet spot - visually transparent quality"
# RECOMMENDED: AV1 sweet spot (Arc A-Series only - best compression!)
sweetspot_av1:
encoder: intel_qsv_av1
preset: medium
quality: 27 # AV1 uses different scale (higher values still good)
audio_codec: copy
hdr_handling: preserve
description: "AV1 sweet spot - best compression with excellent quality"
balanced_qsv:
encoder: intel_qsv_h265
preset: medium
quality: 23
audio_codec: copy
hdr_handling: preserve
description: "Balanced H.265 for general use"
fast_qsv:
encoder: intel_qsv_h264
preset: veryfast
quality: 26
audio_codec: copy
description: "Fast H.264 encoding"
quality_qsv:
encoder: intel_qsv_h265
preset: slower
quality: 19
audio_codec: copy
hdr_handling: preserve
description: "Maximum H.265 quality"
# Intel Arc A-Series supports AV1!
av1_qsv:
encoder: intel_qsv_av1
preset: medium
quality: 30
audio_codec: copy
hdr_handling: preserve
description: "Balanced AV1 encoding"
av1_quality:
encoder: intel_qsv_av1
preset: slow
quality: 24
audio_codec: copy
hdr_handling: preserve
description: "High quality AV1 encoding"
# --- AMD VAAPI PROFILES ---
balanced_vaapi:
encoder: amd_vaapi_h265
preset: medium
quality: 23
audio_codec: copy
# =============================================================================
# PROCESSING SETTINGS
# =============================================================================
processing:
file_extensions:
- mkv
- mp4
- avi
- m4v
# Note: skip_without_subtitles is deprecated - all files are now scanned and marked as "discovered"
# Use the dashboard filters to select files with/without subtitles for encoding
skip_without_subtitles: false # Deprecated - kept for backward compatibility
cleanup_stale_work: true
# =============================================================================
# QUALITY CHECKING
# =============================================================================
quality_check:
# Enable pre-encoding quality analysis
enabled: true
# Warning threshold - warn if quality will drop by this many points
warn_threshold: 10.0
# Error threshold - fail if quality will drop by this many points
error_threshold: 20.0
# Skip encoding if quality degradation detected
skip_on_degradation: false
# Prompt user for confirmation on warnings
prompt_on_warning: true
# =============================================================================
# ADVANCED OPTIONS (NEW IN PHASE 3)
# =============================================================================
advanced:
# Automatically detect available encoders on startup
auto_detect_encoders: true
# Prefer GPU encoders over CPU when available
prefer_gpu: true
# Fallback to CPU if GPU encoder fails or unavailable
fallback_to_cpu: true
# Progress update interval (seconds)
progress_interval: 10
# =============================================================================
# PRESET CONFIGURATIONS
# =============================================================================
# Uncomment one of these sections to quickly switch between common setups
# --- NVIDIA GPU SETUP (Recommended for Unraid with NVIDIA GPU) ---
# parallel:
# max_workers: 2
# gpu_slots: 1
# cpu_slots: 4
# profiles:
# default: balanced_gpu
# --- CPU ONLY SETUP (No GPU) ---
# parallel:
# max_workers: 2
# gpu_slots: 0
# cpu_slots: 4
# profiles:
# default: balanced_cpu
# advanced:
# prefer_gpu: false
# --- HIGH THROUGHPUT SETUP (Multiple workers) ---
# parallel:
# max_workers: 4
# gpu_slots: 2
# cpu_slots: 8
# profiles:
# default: fast_gpu
# --- QUALITY FOCUSED SETUP (Single worker, slow encode) ---
# parallel:
# max_workers: 1
# gpu_slots: 1
# cpu_slots: 1
# profiles:
# default: quality_gpu
# =============================================================================
# ENCODER PRESET REFERENCE
# =============================================================================
# NVIDIA NVENC PRESETS:
# p1 = fastest (lower quality, smallest file)
# p2, p3, p4 = balanced
# p5, p6, p7 = slowest (higher quality, larger file)
#
# NVIDIA NVENC QUALITY (CQ):
# 0-51, lower = better quality
# Recommended: 20-25
# CPU (libx265/libx264) PRESETS:
# ultrafast, superfast, veryfast, faster, fast
# medium (balanced)
# slow, slower, veryslow (higher quality)
#
# CPU CRF:
# 0-51, lower = better quality
# Recommended: 18-24
# INTEL QSV PRESETS:
# veryfast, faster, fast, medium, slow, slower, veryslow
#
# INTEL QSV QUALITY:
# Use global_quality: 18-30
# AMD VAAPI:
# Similar to CPU presets
# Quality controlled by QP value
# =============================================================================
# NOTES
# =============================================================================
# GPU Memory Usage:
# - Each concurrent encode uses GPU VRAM
# - 1080p: ~1-2 GB VRAM per encode
# - 4K: ~3-4 GB VRAM per encode
# - Adjust gpu_slots based on available VRAM
# CPU Usage:
# - CPU encoding is highly CPU-intensive
# - max_workers * cpu_slots should not exceed physical cores
# - Leave some cores for system operations
# Encoding Speed Expectations:
# - NVENC H.265: 100-300+ fps (1080p)
# - NVENC H.264: 150-400+ fps (1080p)
# - CPU H.265: 2-20 fps (1080p, depends on preset/CPU)
# - CPU H.264: 5-50 fps (1080p, depends on preset/CPU)
# Quality Trade-offs:
# - GPU encoders are faster but slightly lower quality at same bitrate
# - For archival quality, consider CPU with slow/slower preset
# - For daily viewing, GPU quality is excellent and much faster