# 4K HDR Mode - Command Line Reference ## Quick Start ### Enable 4K HDR Processing ```bash python main.py "path\to\4k\content" --r 2160 ``` ## New Resolution Option ### `--r 2160` (New) - **Purpose**: Enable 4K/HDR content processing - **Validation**: Source MUST be actual 4K (≥2160p height) - **Non-4K Sources**: Automatically skipped with notification - **Behavior**: - Preserves source resolution if ≥2160p - No upscaling - Enables HDR detection and color profiles - Uses `movie_2160` CQ settings from config - Allows 8-channel audio + high bitrate ### Original Resolution Options (Unchanged) ```bash --r 480 # Force 480p (lowest quality, smallest files) --r 720 # Force 720p (good balance) --r 1080 # Force 1080p (default if source >1080p and no --r specified) # Auto-preserves if source ≤1080p ``` ## Examples by Scenario ### 1. Process 4K HDR Movies ```bash # Basic python main.py "P:\movies\4K_HDR" --r 2160 # With CQ override python main.py "P:\movies\4K_HDR" --r 2160 --cq 25 # With AV1 encoder (8-bit for 4K) python main.py "P:\movies\4K_HDR" --r 2160 --encoder av1 # With HEVC encoder (10-bit for 4K HDR) python main.py "P:\movies\4K_HDR" --r 2160 --encoder hevc ``` ### 2. Batch Process Mixed Content (4K + 1080p) Create `batch.txt`: ``` P:\movies\4K_HDR --r 2160 --cq 25 P:\movies\1080p_Collection --r 1080 --cq 28 P:\tv\anime --r 720 --cq 30 ``` Then run: ```bash python main.py --paths-file batch.txt ``` Output: ``` [BATCH 1] Processing 4K_HDR Source: 3840x2160, 4K mode, HDR detected ✓ Encoded at 4K with HDR color profiles [BATCH 2] Processing 1080p_Collection Source: 1920x1080, Standard 1080p mode ✓ Encoded at 1080p, medium audio bitrate [BATCH 3] Processing anime Source: 1280x720, Standard 720p mode ✓ Encoded at 720p, stereo audio ``` ### 3. Test 4K Content (First File Only) ```bash python main.py "P:\movies\4K_Test" --r 2160 --test ``` Output: ``` 📋 MODE: Smart (Try CQ first, retry with Bitrate if needed) 🎬 Processing: 4K_Movie.mkv Source: 3840x2160p 10-bit HDR content detected (BT.2020 + SMPTE2084) Target: 2160p (4K passthrough) Audio: 6ch → 8ch | EAC3 640kbps Video: HEVC NVENC (CQ=25) | 4K | 10-bit HDR color profile: BT.2020 + SMPTE2084 (HDR10) ✓ Test mode: Processed first 15 minutes only Original: 15.2 GB | Encoded: 4.3 GB | Ratio: 28.3% ``` ### 4. Convert 4K to 1080p (Downscale) ```bash # Force 4K content to downscale to 1080p (default without --r 2160) python main.py "P:\movies\4K_HDR" # Same as: python main.py "P:\movies\4K_HDR" --r 1080 # Explicit downscale with CQ override python main.py "P:\movies\4K_HDR" --r 1080 --cq 28 ``` ### 5. Try 4K on Non-4K Source (Will Skip) ```bash python main.py "P:\movies\1080p_Content" --r 2160 ``` Output: ``` 📁 Processing: Movie_1080p.mkv Source: 1920x1080p ⏭️ Skipping: --r 2160 requested but source is only 1080p (not 4K) ✓ Skipped 1 file ``` ### 6. Travel Mode with 4K (Downscale + Folder) ```bash # Travel mode forces 720p and CQ+2 python main.py "P:\movies\4K_HDR" --travel --output "D:\Travel" # Travel mode overrides --r 2160 (always uses 720p) # Output structure: D:\Travel\4K_HDR\Movie1_[EHX].mkv ``` ### 7. 4K with Custom Audio Settings ```bash # Force specific audio streams and channels python main.py "P:\movies\4K_HDR" --r 2160 \ --audio-select 0,2 \ --audio-titles "0:English,2:Commentary" \ --audio-channels "0:8,2:2" # This will: # - Keep streams 0 and 2 only # - Name stream 0 "English", stream 2 "Commentary" # - Encode stream 0 as 8-channel, stream 2 as 2-channel stereo # - Stream 0: 8ch @ 640kbps high (allowed on 4K) # - Stream 2: 2ch @ 128kbps low (comment tracks always low) ``` ### 8. 4K with Bitrate Mode (Instead of CQ) ```bash # Use bitrate-based encoding instead of CQ python main.py "P:\movies\4K_HDR" --r 2160 --m bitrate # Smart mode will try CQ first, then retry with bitrate if needed python main.py "P:\movies\4K_HDR" --r 2160 ``` ## What Happens with `--r 2160`? ### Validation Phase 1. ✅ Source resolution detected 2. ✅ If ≥2160p: Proceed to 4K processing 3. ❌ If <2160p: Skip with user notification ### Processing Phase (if 4K detected) 1. ✅ Detect HDR (BT.2020 + SMPTE2084) 2. ✅ Use `movie_2160` CQ settings 3. ✅ Allow 8-channel audio (max for 4K) 4. ✅ Allow high bitrate (640 kbps) for multi-channel 5. ✅ Apply HDR color profiles (if detected) 6. ✅ Log: "HDR content detected" or HDR absent ### Output Quality - 4K HDR: Preserves UHD resolution + color metadata - 4K SDR: Preserves UHD resolution (no special color profile) - Original files: Never upscaled ## Configuration Tips ### Default CQ Values (from config.xml) ``` movie_2160 = 29 (AV1) / 25 (HEVC) ← Used for 4K movie_1080 = 32 (AV1) / 28 (HEVC) ← Used for 1080p ``` Adjust in config.xml if needed: ```xml 24 28 ``` ### Audio Bitrate Tips For 4K HDR with 8-channel audio: ```xml 640000 ``` Reduce if files too large: ```xml 512000 ``` ## Troubleshooting ### Error: "Source is only 1080p (not 4K)" - Means: You used `--r 2160` on 1080p content - Solution: Remove `--r 2160` or change to `--r 1080` ### No "HDR content detected" message - Means: 4K source is SDR (standard dynamic range) - This is OK: Will still encode at 4K, just without HDR colors ### File size larger than expected - Check audio settings: 4K allows high bitrate (640 kbps) - Reduce: Use `--m bitrate` instead of CQ mode - Or adjust config.xml multi_channel.high value ### Stuck on "Skipping" messages - Running on non-4K folder with `--r 2160` - Ensure folder contains actual 4K files (≥2160p) ## Performance Notes - **Encoding Time**: 4K ≈ 4-6x slower than 1080p (larger resolution) - **File Size**: 4K HDR typically 2-3x smaller than original (with 8ch audio) - **Disk Space**: Ensure temp processing folder has enough space - **VRAM**: NVENC 4K needs ≥ 4GB VRAM (HEVC/AV1 encoders)