jlesage / docker-handbrake

Docker container for HandBrake
MIT License
862 stars 98 forks source link

hevc_qsv-decoder done: 0 frames, 1497 decoder errors #348

Open moogoos opened 6 months ago

moogoos commented 6 months ago

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

Container creation

handbrake: image: jlesage/handbrake:nightly-latest (trying latest, same prob) container_name: handbrake environment:

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

TNFB commented 4 months ago

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 ?