initial comment
This commit is contained in:
246
config-cpu.yaml
Normal file
246
config-cpu.yaml
Normal file
@@ -0,0 +1,246 @@
|
||||
# =============================================================================
|
||||
# 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
|
||||
# =============================================================================
|
||||
Reference in New Issue
Block a user