247 lines
8.0 KiB
YAML
247 lines
8.0 KiB
YAML
# =============================================================================
|
|
# ENCODERPRO CONFIGURATION - CPU ONLY
|
|
# =============================================================================
|
|
# Optimized configuration for software encoding (no GPU)
|
|
|
|
# =============================================================================
|
|
# 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:
|
|
# CPU encoding recommendations by core count:
|
|
# 16+ cores: 3-4 workers
|
|
# 8-12 cores: 2-3 workers
|
|
# 4-6 cores: 1-2 workers
|
|
# Note: Each worker uses significant CPU resources
|
|
max_workers: 2
|
|
|
|
# GPU slots not used for CPU encoding
|
|
gpu_slots: 0
|
|
|
|
# CPU slots - adjust based on your CPU
|
|
# Rule of thumb: physical cores / 2
|
|
cpu_slots: 4
|
|
|
|
# =============================================================================
|
|
# ENCODING PROFILES
|
|
# =============================================================================
|
|
|
|
profiles:
|
|
# Default profile - CPU sweet spot
|
|
default: sweetspot_cpu
|
|
|
|
definitions:
|
|
# --- RECOMMENDED SWEET SPOT PROFILE ---
|
|
|
|
# BEST CHOICE: Perfect balance of quality and compression (slow but worth it!)
|
|
sweetspot_cpu:
|
|
encoder: cpu_x265
|
|
preset: slow
|
|
quality: 21 # CRF 21 = visually transparent quality
|
|
audio_codec: copy
|
|
description: "⭐ RECOMMENDED - Excellent quality, slow but worth the wait"
|
|
|
|
# --- CPU ENCODING PROFILES ---
|
|
|
|
# Balanced H.265 encoding (faster, still good quality)
|
|
balanced_cpu:
|
|
encoder: cpu_x265
|
|
preset: medium
|
|
quality: 23
|
|
audio_codec: copy
|
|
description: "Balanced CPU encoding - good quality/speed tradeoff"
|
|
|
|
# Fast H.264 encoding (quickest option, larger files)
|
|
fast_cpu:
|
|
encoder: cpu_x264
|
|
preset: fast
|
|
quality: 26
|
|
audio_codec: copy
|
|
description: "Fast CPU encoding with H.264 - larger files"
|
|
|
|
# Maximum quality H.265 (very slow, best quality)
|
|
quality_cpu:
|
|
encoder: cpu_x265
|
|
preset: veryslow
|
|
quality: 19
|
|
audio_codec: copy
|
|
description: "Maximum CPU quality - extremely slow, near-lossless"
|
|
|
|
# H.264 sweet spot (for maximum compatibility)
|
|
sweetspot_h264:
|
|
encoder: cpu_x264
|
|
preset: slow
|
|
quality: 21
|
|
audio_codec: copy
|
|
description: "H.264 sweet spot - universal compatibility"
|
|
|
|
# Quick test profile (fastest possible)
|
|
test_fast:
|
|
encoder: cpu_x264
|
|
preset: veryfast
|
|
quality: 28
|
|
audio_codec: copy
|
|
description: "Very fast test encoding - lower quality"
|
|
|
|
# =============================================================================
|
|
# 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:
|
|
# No GPU detection needed
|
|
auto_detect_encoder: false
|
|
fallback_to_cpu: true # Already using CPU
|
|
|
|
# Resolution-based rules (optional)
|
|
resolution_rules:
|
|
enabled: false
|
|
rules:
|
|
- max_width: 1920 # 1080p
|
|
profile: fast_cpu
|
|
- max_width: 3840 # 4K
|
|
profile: sweetspot_cpu
|
|
- max_width: 7680 # 8K
|
|
profile: balanced_cpu
|
|
|
|
# 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
|
|
|
|
# =============================================================================
|
|
# CPU ENCODING NOTES
|
|
# =============================================================================
|
|
#
|
|
# CPU Encoding Characteristics:
|
|
# - MUCH slower than GPU encoding (10-50x slower)
|
|
# - Better quality per bitrate than GPU encoding
|
|
# - Uses significant CPU resources
|
|
# - Perfect for quality-focused archival
|
|
# - No hardware limitations or compatibility issues
|
|
#
|
|
# Preset Guide (fastest to slowest):
|
|
# - ultrafast: Very fast, poor compression
|
|
# - superfast/veryfast: Fast, moderate compression
|
|
# - faster/fast: Good speed, decent compression
|
|
# - medium: Balanced (default for most encoders)
|
|
# - slow: Better compression, recommended sweet spot
|
|
# - slower: Excellent compression, very slow
|
|
# - veryslow: Best compression, extremely slow (2-3x slower than slow)
|
|
#
|
|
# 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 quality/size: sweetspot_cpu (H.265, slow, CRF 21)
|
|
# - Faster encoding: balanced_cpu (H.265, medium, CRF 23)
|
|
# - Maximum compatibility: sweetspot_h264 (H.264, slow, CRF 21)
|
|
# - Archival quality: quality_cpu (H.265, veryslow, CRF 19)
|
|
# - Testing: test_fast (H.264, veryfast, CRF 28)
|
|
#
|
|
# Performance Expectations (1080p content):
|
|
# 16-core CPU (H.265, slow): 5-10 fps (2-4 hours per movie)
|
|
# 8-core CPU (H.265, slow): 3-7 fps (3-6 hours per movie)
|
|
# 4-core CPU (H.265, slow): 2-4 fps (5-10 hours per movie)
|
|
#
|
|
# 16-core CPU (H.264, fast): 10-20 fps (1-2 hours per movie)
|
|
# 8-core CPU (H.264, fast): 7-15 fps (1.5-3 hours per movie)
|
|
# 4-core CPU (H.264, fast): 4-10 fps (2-5 hours per movie)
|
|
#
|
|
# Tips for CPU Encoding:
|
|
# 1. Use sweetspot_cpu for best quality/size balance
|
|
# 2. Process overnight or during idle times
|
|
# 3. Don't run too many workers (max_workers: 1-2 recommended)
|
|
# 4. Use balanced_cpu or fast_cpu if speed is important
|
|
# 5. Software encoding produces better quality than GPU at same bitrate
|
|
# 6. Consider upgrading to a GPU if you encode frequently
|
|
#
|
|
# Why Use CPU Encoding?
|
|
# - No GPU available
|
|
# - Want absolute best quality
|
|
# - Small library (encode time doesn't matter)
|
|
# - Testing/learning the system
|
|
# - GPU incompatibility or driver issues
|
|
#
|
|
# Worker Count Recommendations:
|
|
# - High-end CPU (16+ cores): max_workers: 2-3
|
|
# - Mid-range CPU (8-12 cores): max_workers: 1-2
|
|
# - Budget CPU (4-6 cores): max_workers: 1
|
|
# - Always leave CPU headroom for system operations
|
|
#
|
|
# Encoding Time Examples:
|
|
# sweetspot_cpu (H.265, slow, CRF 21):
|
|
# - 1080p 2-hour movie on 8-core: 3-5 hours
|
|
# - 4K 2-hour movie on 8-core: 8-12 hours
|
|
#
|
|
# balanced_cpu (H.265, medium, CRF 23):
|
|
# - 1080p 2-hour movie on 8-core: 2-3 hours
|
|
# - 4K 2-hour movie on 8-core: 5-8 hours
|
|
#
|
|
# fast_cpu (H.264, fast, CRF 26):
|
|
# - 1080p 2-hour movie on 8-core: 1-2 hours
|
|
# - 4K 2-hour movie on 8-core: 3-5 hours
|
|
# =============================================================================
|