Environment:
- Immich v2.4.1
- Kubernetes deployment
- Intel GPU (QSV/VAAPI via DRA)
- Browser: Vivaldi (Chromium-based) on Fedora KDE
Issue:
Playing a video via web UI shows first frame frozen while audio plays normally. Tested via public share link.
Source video:
- iPhone recording (
IMG_6138.mov) - HEVC Main 10 (10-bit HDR)
- AAC audio
Transcoded video:
codec: h264 (High profile)
pix_fmt: yuvj420p
color_range: pc (full)
encoder: h264_vaapi (also tried h264_qsv)
What I've tried:
- QSV acceleration → same issue
- VAAPI acceleration → same issue
- Changed preset from
ultrafasttomedium - Verified transcoded file is served correctly (API returns
video/mp4, H.264 content) - Confirmed moov atom is at file start (faststart)
Transcoding settings:
- Target codec: H.264
- Target resolution: 720p
- Tone-mapping: Hable
- Hardware decoding: enabled
Suspicion:
Both QSV and VAAPI produce yuvj420p (full-range) pixel format. Chromium on Linux may have issues with full-range video. Software encoding (libx264) typically produces yuv420p (limited range).
Questions:
- Is there a way to force
yuv420poutput with hardware acceleration? - Is this a known issue with HDR→SDR tone-mapping + hardware encoding?
- Any other settings to try before falling back to software encoding?
.