# ============================================================================= # 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 # =============================================================================