325 lines
9.3 KiB
YAML
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
|