initial comment

This commit is contained in:
2026-01-24 17:43:28 -05:00
commit fe40adfd38
72 changed files with 19614 additions and 0 deletions

239
config-nvidia.yaml Normal file
View File

@@ -0,0 +1,239 @@
# =============================================================================
# ENCODERPRO CONFIGURATION - NVIDIA GPU
# =============================================================================
# Optimized configuration for NVIDIA GPUs using NVENC hardware encoding
# =============================================================================
# DIRECTORY PATHS
# =============================================================================
# When running in Docker, these paths are mapped from host
movies_dir: /movies
archive_dir: /archive
work_dir: /work
state_db: /db/state.db
log_dir: /logs
# =============================================================================
# PARALLEL PROCESSING
# =============================================================================
parallel:
# NVIDIA GPU concurrent encode recommendations:
# RTX 4000 series: 2-3 workers
# RTX 3000 series: 1-2 workers
# RTX 2000 series: 1-2 workers
# GTX 1000 series: 1 worker
max_workers: 2
# NVIDIA GPU encode slots
# Most consumer NVIDIA GPUs: 1-2 concurrent encodes
# Professional cards (A4000, A5000): 3+ concurrent encodes
gpu_slots: 1
# CPU fallback slots
cpu_slots: 2
# =============================================================================
# ENCODING PROFILES
# =============================================================================
profiles:
# Default profile - NVIDIA sweet spot for best quality/compression
default: sweetspot_gpu
definitions:
# --- RECOMMENDED SWEET SPOT PROFILE ---
# BEST CHOICE: Perfect balance of quality, compression, and speed
sweetspot_gpu:
encoder: nvidia_nvenc_h265
preset: p5 # Slower preset for better quality
quality: 21 # CRF 21 = visually transparent for most content
audio_codec: copy
hdr_handling: preserve
description: "⭐ RECOMMENDED - Visually transparent quality at excellent compression"
# --- NVIDIA NVENC PROFILES ---
# Balanced H.265 encoding (good for general use)
balanced_gpu:
encoder: nvidia_nvenc_h265
preset: p4
quality: 23
audio_codec: copy
hdr_handling: preserve
description: "Balanced quality/speed H.265 encoding"
# Fast H.264 encoding (maximum compatibility)
fast_gpu:
encoder: nvidia_nvenc_h264
preset: p1 # Fastest NVENC preset
quality: 26
audio_codec: copy
description: "Fast H.264 encoding, universal compatibility"
# High quality H.265 for archival
quality_gpu:
encoder: nvidia_nvenc_h265
preset: p7 # Slowest/best NVENC preset
quality: 19 # Near-lossless quality
audio_codec: copy
hdr_handling: preserve
description: "Maximum NVENC quality for archival"
# H.264 sweet spot (for older devices)
sweetspot_h264:
encoder: nvidia_nvenc_h264
preset: p5
quality: 21
audio_codec: copy
description: "H.264 sweet spot for maximum compatibility"
# --- CPU FALLBACK PROFILES ---
sweetspot_cpu:
encoder: cpu_x265
preset: slow
quality: 21
audio_codec: copy
description: "CPU fallback sweet spot"
balanced_cpu:
encoder: cpu_x265
preset: medium
quality: 23
audio_codec: copy
description: "Balanced CPU H.265 encoding"
fast_cpu:
encoder: cpu_x264
preset: fast
quality: 26
audio_codec: copy
description: "Fast CPU H.264 encoding"
# =============================================================================
# PROCESSING SETTINGS
# =============================================================================
processing:
file_extensions:
- mkv
- mp4
- avi
- m4v
- ts
- m2ts
# Skip files without subtitles (change to false to process all files)
skip_without_subtitles: false # Deprecated - all files now scanned, use dashboard filters
# Clean up abandoned work files on startup
cleanup_stale_work: true
# =============================================================================
# QUALITY CHECKING
# =============================================================================
quality_check:
# Enable pre-encoding quality analysis to detect quality degradation
enabled: true
# Warning threshold - warn if quality will drop by this many points (0-100 scale)
# Example: Source quality 85 → Target quality 70 = 15 point drop (warning)
warn_threshold: 10.0
# Error threshold - fail/skip if quality will drop by this many points
# Example: Source quality 85 → Target quality 60 = 25 point drop (error)
error_threshold: 20.0
# Automatically skip files where encoding would degrade quality
# Set to false to warn but continue encoding anyway
skip_on_degradation: false
# Prompt user for confirmation when warnings detected (CLI only)
prompt_on_warning: true
# =============================================================================
# ADVANCED OPTIONS
# =============================================================================
advanced:
# Hardware detection
auto_detect_encoder: true
fallback_to_cpu: true
# Resolution-based rules (optional)
resolution_rules:
enabled: false
rules:
- max_width: 1920 # 1080p
profile: fast_gpu
- max_width: 3840 # 4K
profile: sweetspot_gpu
- max_width: 7680 # 8K
profile: quality_gpu
# HDR handling
hdr:
detect_hdr: true
preserve_metadata: true
tone_mapping: false # Set to true to convert HDR to SDR
# Audio options
audio:
default_codec: copy
max_channels: 8
normalize: false
# =============================================================================
# NVIDIA-SPECIFIC NOTES
# =============================================================================
#
# NVIDIA NVENC Encoder Capabilities:
# - Hardware H.264 and H.265 (HEVC) encode/decode
# - Up to 8K encoding support (RTX 4000 series)
# - Multiple concurrent encode sessions (varies by GPU)
# - HDR10 and Dolby Vision support (RTX 2000+)
# - Excellent encoding speed
#
# Preset Guide (p1-p7):
# - p1-p2: Fastest, lower quality, larger files
# - p3-p4: Balanced speed/quality (p4 recommended for general use)
# - p5-p6: Slower, better quality (p5 is the sweet spot)
# - p7: Slowest, best quality (minimal improvement over p6)
#
# Quality Guide (CRF):
# - 18-19: Near-lossless, very large files
# - 20-21: Visually transparent (sweet spot!)
# - 22-24: Excellent quality, good compression
# - 25-28: Good quality, smaller files
#
# Recommended Profiles by Use Case:
# - Best overall: sweetspot_gpu (H.265, preset p5, CRF 21)
# - Fastest: fast_gpu (H.264, preset p1, CRF 26)
# - Maximum compatibility: sweetspot_h264 (H.264, preset p5, CRF 21)
# - Archival: quality_gpu (H.265, preset p7, CRF 19)
#
# Performance Expectations (1080p content):
# - RTX 4090: 300-400 fps
# - RTX 4080: 250-350 fps
# - RTX 4070: 200-300 fps
# - RTX 3090: 250-350 fps
# - RTX 3080: 200-300 fps
# - RTX 3070: 150-250 fps
# - RTX 3060: 120-200 fps
# - RTX 2080: 150-250 fps
# - RTX 2070: 120-200 fps
# - RTX 2060: 100-180 fps
# - GTX 1660: 100-150 fps
# - GTX 1650: 80-120 fps
#
# Why CRF 21 is the Sweet Spot:
# - Visually indistinguishable from source for most content
# - Excellent file size reduction (40-60% smaller)
# - Fast encoding (p5 preset still very fast on GPU)
# - Future-proof quality for archival
# - Perfect for 1080p, 4K, and HDR content
# =============================================================================