#Video freezes on first frame, audio plays fine

1 messages · Page 1 of 1 (latest)

wind grove
#

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:

  1. QSV acceleration → same issue
  2. VAAPI acceleration → same issue
  3. Changed preset from ultrafast to medium
  4. Verified transcoded file is served correctly (API returns video/mp4, H.264 content)
  5. 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:

  1. Is there a way to force yuv420p output with hardware acceleration?
  2. Is this a known issue with HDR→SDR tone-mapping + hardware encoding?
  3. Any other settings to try before falling back to software encoding?
halcyon aspenBOT
#

:wave: Hey @wind grove,

Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich immich.

References

#

Checklist

I have...

  1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time).
  2. :ballot_box_with_check: read applicable release notes.
  3. :ballot_box_with_check: reviewed the FAQs for known issues.
  4. :ballot_box_with_check: reviewed Github for known issues.
  5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy).
  6. :ballot_box_with_check: uploaded the relevant information (see below).
  7. :ballot_box_with_check: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable

(an item can be marked as "complete" by reacting with the appropriate number)

Information

In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:

  • Your docker-compose.yml and .env files.
  • Logs from all the containers and their status (see above).
  • All the troubleshooting steps you've tried so far.
  • Any recent changes you've made to Immich or your system.
  • Details about your system (both software/OS and hardware).
  • Details about your storage (filesystems, type of disks, output of commands like fdisk -l and df -h).
  • The version of the Immich server, mobile app, and other relevant pieces.
  • Any other information that you think might be relevant.

Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)

If this ticket can be closed you can use the /close command, and re-open it later if needed.

wind grove
#

Browser testing:

  • Vivaldi (Chromium): Frozen on first frame, audio plays
  • Firefox: ~0.25s of video, then freezes, audio continues

Same behavior in both browsers, so this is not Chromium-specific.

System details:

  • Deployment: Kubernetes (not Docker Compose)
  • OS: Talos Linux
  • Storage: NFS for media, Ceph block for thumbnails
  • Intel GPU via Kubernetes DRA (Dynamic Resource Allocation)
  • GPU device: /dev/dri/renderD128

Pod status:
All pods running, no restarts on main server

ffmpeg available hardware accels:
cuda vaapi qsv drm opencl vulkan

Note: This appears to match open issue #20465. Both QSV and VAAPI produce yuvj420p (full-range) output which may be incompatible with browser video players.

Link to helmrelease: https://github.com/rcdailey/home-ops/blob/main/kubernetes/apps/default/immich/helmrelease.yaml

halcyon aspenBOT
halcyon aspenBOT
weary nebula
#

can you try other browsers? this is entirely client related since the video file is served directly to the browser

wind grove
#

sorry for the delay... i forgot to check back. I did try firefox and while the symptoms are slightly different, the end result is the same

wind grove
weary nebula
wind grove