hevc_qsv-decoder done: 0 frames, 1497 decoder errors
moogoos opened this issue · comments
Current Behavior
Im running handbrake in docker and trying to decode these files I used to decode on nvenc. I am using an Intel 12900H with IrisXE iGPU. My other apps that need a gpu work fine by passing the device. The handbrake log detects the GPU and the right encoder. But when it runs it fails on all the video frames resulting in a small "successful" encode but only containing audio:
Expected Behavior
A successful job complated with video as well as audio
Steps To Reproduce
I am running the latest docker container on Ubuntu 22.04 with iGPU pass through. Other containers can see the device that is passed through, via 12900H IrisXE iGPU. The drivers are loaded correctly and it seems detected by handbrake jobs. It takes a 250MB video file and creates a 500K video fail, that only contains the audio.
Run the job and use the qsv encoder 4k and try to proceess a video.
Environment
- OS: Ubuntu
- OS version: 22.04
- CPU: 12900H
- Docker version: Latest
- Device model: ?
- Browser/OS: Chrome
Container creation
handbrake:
image: jlesage/handbrake:nightly-latest (trying latest, same prob)
container_name: handbrake
environment:
- USER_ID=6969
- GROUP_ID=6969
- TZ=America/Los_Angeles
- AUTOMATED_CONVERSION_PRESET=Hardware/H.265 QSV 2160p 4K
- AUTOMATED_CONVERSION_FORMAT=mp4
- AUTOMATED_CONVERSION_OUTPUT_DIR=/output
Container log
[13:55:52] qsv_enc_init: using 'hardware (1) via VAAPI' implementation, API: 2.9
[13:55:52] work: average encoding speed for job is 0.000000 fps
[13:55:53] vfr: 0 frames output, 0 dropped
[13:55:53] vfr: lost time: 0 (0 frames)
[13:55:53] vfr: gained time: 0 (0 frames) (0 not accounted for)
[13:55:53] pcm_mulaw-decoder done: 1504 frames, 0 decoder errors
[13:55:53] hevc_qsv-decoder done: 0 frames, 1497 decoder errors
[13:55:53] sync: got 0 frames, 1504 expected
How can i see the logs for the decoder errors?
Container inspect
NA
Anything else?
NA
You say that you passed the iGPU to the container but i don't see the device : /dev/dri:/dev/dri
envvar. How did you setup the passthrough ?