WAS: presetEmpfehlung liefert für UHD das 4K-Preset der gemessenen Grafikkarten-Familie (VCN/NVENC/QSV) — sonst PRESET_KEINE (verlustfrei); komprimierenFuer folgt der Empfehlung, wenn der Typ auf „automatisch" steht. Eigene Wahl schlägt beides. Fenster: Kachel, Kompressions-Karte und Erst-Einrichtung sagen „(8 Bit)" bzw. „verlustfrei — nur CPU-Encoder". Gemessen am 12.09.2026 (HandBrake 1.11.2, RX 9070 XT, Akira-UHD-Abbild): die 4K-Hardware-Presets sind 8-Bit (vce_h265, Profil main); der 10-Bit- HEVC-Encoder vce_h265_10bit stürzt beim Start ab (Segfault, mit Profil auto und main10); AV1 10-Bit („AV1 VCN 2160p 4K", vce_av1_10bit) läuft — steht als eigene Wahl in der Liste, mit dem Hinweis auf AV1-fähige Abspielgeräte. WARUM: Durchsicht 12.09.2026, A4 — Commander-Entscheid: „Rippy analysiert doch die Performance des PCs, könnten wir das nicht davon abhängig machen?" Vorher rechnete der CPU-Default 4K auf 1080p klein, tagelang. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
48 lines
2.7 KiB
TypeScript
48 lines
2.7 KiB
TypeScript
// 5.7.0 — 4K nach der Leistung (Commander-Entscheid 12.09.2026): Grafik-
|
|
// karten-Encoder plus 4K-Preset → komprimieren; nur CPU → verlustfrei.
|
|
// Preset-Namen und Encoder am mitgelieferten HandBrake 1.11.2 gemessen
|
|
// (--preset-list, --help; vce_h265_10bit stürzt ab, AV1 10-Bit läuft).
|
|
import { describe, expect, it } from 'vitest'
|
|
import { DEFAULT_HB_PRESET, PRESET_KEINE, empfehlungText, presetEmpfehlung } from '../src/gemeinsam/preset-empfehlung'
|
|
import { komprimierenFuer, presetFuer } from '../src/kern/komprimieren/presets'
|
|
|
|
const PRESETS = ['H.265 MKV 1080p30', 'H.265 MKV 2160p60 4K', 'AV1 VCN 2160p 4K', 'H.265 VCN 2160p 4K', 'H.265 VCN 1080p', 'H.265 NVENC 1080p']
|
|
const NUR_CPU = ['cpu-x264', 'cpu-x265', 'cpu-av1']
|
|
const AMD = [...NUR_CPU, 'vce', 'vce-av1']
|
|
const NVIDIA_OHNE_4K = [...NUR_CPU, 'nvenc']
|
|
|
|
describe('presetEmpfehlung für 4K-UHD', () => {
|
|
it('Grafikkarte mit 4K-Preset → das 4K-Preset (8 Bit im Klartext)', () => {
|
|
expect(presetEmpfehlung('uhd', AMD, PRESETS)).toBe('H.265 VCN 2160p 4K')
|
|
expect(empfehlungText('uhd', 'H.265 VCN 2160p 4K')).toBe('H.265 VCN 2160p 4K (8 Bit)')
|
|
})
|
|
it('nur CPU → verlustfrei lassen, nie das 1080p-CPU-Preset', () => {
|
|
expect(presetEmpfehlung('uhd', NUR_CPU, PRESETS)).toBe(PRESET_KEINE)
|
|
expect(empfehlungText('uhd', PRESET_KEINE)).toContain('verlustfrei')
|
|
})
|
|
it('Grafikkarte ohne 4K-Preset → verlustfrei, nicht klein rechnen', () => {
|
|
expect(presetEmpfehlung('uhd', NVIDIA_OHNE_4K, PRESETS)).toBe(PRESET_KEINE)
|
|
})
|
|
it('DVD und Blu-ray wie bisher: Grafikkarte, sonst CPU-Default', () => {
|
|
expect(presetEmpfehlung('bluray', AMD, PRESETS)).toBe('H.265 VCN 1080p')
|
|
expect(presetEmpfehlung('dvd', NUR_CPU, PRESETS)).toBe(DEFAULT_HB_PRESET)
|
|
expect(presetEmpfehlung('bluray', NVIDIA_OHNE_4K, PRESETS)).toBe('H.265 NVENC 1080p')
|
|
})
|
|
})
|
|
|
|
describe('komprimierenFuer mit Empfehlung', () => {
|
|
it('automatisch + Empfehlung „keine" → nicht komprimieren', () => {
|
|
expect(komprimierenFuer('uhd', {}, PRESET_KEINE)).toBe(false)
|
|
expect(komprimierenFuer('uhd', { transcodePresetUhd: '' }, PRESET_KEINE)).toBe(false)
|
|
})
|
|
it('eigene Wahl schlägt die Empfehlung — in beide Richtungen', () => {
|
|
expect(komprimierenFuer('uhd', { transcodePresetUhd: 'AV1 VCN 2160p 4K' }, PRESET_KEINE)).toBe(true)
|
|
expect(komprimierenFuer('uhd', { transcodePresetUhd: PRESET_KEINE }, 'H.265 VCN 2160p 4K')).toBe(false)
|
|
expect(presetFuer('uhd', { transcodePresetUhd: 'AV1 VCN 2160p 4K' }, PRESET_KEINE)).toBe('AV1 VCN 2160p 4K')
|
|
})
|
|
it('Blu-ray bleibt unberührt', () => {
|
|
expect(komprimierenFuer('bluray', {}, 'H.265 VCN 1080p')).toBe(true)
|
|
expect(komprimierenFuer('bluray', {}, '')).toBe(true)
|
|
})
|
|
})
|