5.2 KiB
UI Hardware Indicators - Summary
What Was Added
We've enhanced the dashboard UI to show users which profiles use GPU acceleration vs CPU encoding.
Changes Made
1. Hardware Encoders Section (Top of Dashboard)
Location: Right after the info banner, before statistics cards
What it shows:
- 🔷 Intel QSV (blue card) - if Intel GPU detected
- 🟢 NVIDIA NVENC (green card) - if NVIDIA GPU detected
- 🔴 AMD VAAPI (red card) - if AMD GPU detected
- 💻 CPU (gray card) - always shown as fallback
- For each encoder, displays supported codecs: H.264, H.265, AV1
Purpose: Immediately shows users what hardware acceleration is available
2. Profile Dropdown Hardware Badges
Location: Both profile dropdowns (settings area and file selection area)
What it shows: Profile names now include hardware indicators:
sweetspot_qsv [Intel GPU]av1_quality [Intel GPU]sweetspot_gpu [NVIDIA GPU]balanced_cpu [CPU]
Purpose: Users can see at a glance which profiles use GPU vs CPU
3. Enhanced Profile Description
Location: Profile description area in settings
What it shows: When a profile is selected, shows:
- Color-coded hardware badge at the top
- 🔷 Intel QSV (blue) - "Intel QSV (GPU Accelerated)"
- 🟢 NVIDIA NVENC (green) - "NVIDIA NVENC (GPU Accelerated)"
- 🔴 AMD VAAPI (red) - "AMD VAAPI (GPU Accelerated)"
- 💻 CPU (gray) - "CPU"
- Encoder type
- Quality (CRF value)
- Preset
- Description
Purpose: Clear visual indicator of hardware acceleration for selected profile
Files Modified
dashboard.py
- Added import of
EncoderDetectorandEncoderCapabilitiesfrom reencode module - Added
/api/encodersendpoint that returns hardware encoder capabilities
templates/dashboard.html
- Added "Hardware Encoders" section to display detected hardware
- Added
updateEncoders()function to fetch and display encoder info - Added
getHardwareBadge()helper function to determine hardware type from encoder name - Modified profile dropdown population to include hardware badges
- Enhanced
updateProfileDescription()to show color-coded hardware indicator
How It Works
-
Backend Detection: The
/api/encodersendpoint usesEncoderDetector.detect_capabilities()to check what FFmpeg encoders are available -
Frontend Display: JavaScript fetches encoder capabilities and displays them in color-coded cards
-
Profile Indicators: When loading profiles, the
getHardwareBadge()function analyzes the encoder name to determine hardware type:intel_qsv_*→ [Intel GPU]nvidia_nvenc_*→ [NVIDIA GPU]amd_vaapi_*→ [AMD GPU]cpu_*orlibx*→ [CPU]
User Experience
Before: Users had to guess which profiles used GPU based on profile names
After:
- Clear visual indicators throughout the UI
- Hardware detection shown at top of dashboard
- Profile dropdowns show
[Intel GPU],[NVIDIA GPU],[AMD GPU], or[CPU]badges - Profile description shows color-coded hardware badge
- Users can immediately see if AV1 is supported on their GPU
Example Display
Hardware Encoders Section:
Hardware Encoders
┌─────────────────────────────────┐
│ 🔷 Intel QSV │
│ Hardware Accelerated │
│ Codecs: H.264, H.265, AV1 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ 💻 CPU │
│ Software Encoding │
│ Codecs: H.264, H.265 │
└─────────────────────────────────┘
Profile Dropdown:
┌─────────────────────────────────┐
│ Select Profile ▼ │
├─────────────────────────────────┤
│ sweetspot_qsv [Intel GPU] │
│ av1_quality [Intel GPU] │
│ balanced_qsv [Intel GPU] │
│ balanced_cpu [CPU] │
│ quality_cpu [CPU] │
└─────────────────────────────────┘
Profile Description:
┌─────────────────────────────────┐
│ 🔷 Intel QSV (GPU Accelerated) │ ← Blue badge
├─────────────────────────────────┤
│ Encoder: intel_qsv_av1 │
│ Quality: CRF 24 │
│ Preset: slow │
│ High quality AV1 encoding │
└─────────────────────────────────┘
Testing
Open http://localhost:5000 in your browser to see:
- Hardware Encoders section at the top showing detected GPUs
- Profile dropdowns with hardware badges
- Color-coded profile descriptions
The UI will automatically update based on what hardware encoders are detected by FFmpeg.