I
Immich2y ago
radh

Hardware Transcoding config using docker-compose.yml file - Nvidia

How can I modify the current docker-compose.yml file to accommodate hardware transcoding features as well? I tried the following (based on a similar discord discussion for Intel quicksync), but it seems to be using by CPU. If you need more information on something, let me know.
No description
13 Replies
Alex Tran
Alex Tran2y ago
radh
radhOP2y ago
Yeap. That was the discussion I was referring to in my question. The solution that worked for that OP was adding the config directly to the docker-compose.yml instead of using the hwaccel.yml. That post was related to Intel QuickSync, so I thought I might create a separate thread for Nvidia. Would you like me to continue my questions there?
Alex Tran
Alex Tran2y ago
pinging @sogan
sogan
sogan2y ago
Did you set the hardware transcoding setting to NVENC in the admin page? It will still use the CPU if not.
Allram
Allram2y ago
Are you using UnRaid? If so you might need to add runtime=Nvidia as an environment variable
radh
radhOP2y ago
Yes, I did. Looking at the logs, it says - Provided device doesn't support required NVENC features - 10 bit encode not supported. I guess that is my hardware is not capable (I have NVIDIA Quadro P600)?
sogan
sogan2y ago
lol that issue is actually an open pr at the moment https://github.com/immich-app/immich/pull/3577
GitHub
fix(server): convert to nv12 before using nvenc by mertalev · Pull ...
Description This is a small fix for NVENC accel. It's missing format=nv12, so HDR content will fail and fallback to software transcoding. With this change, they'll be converted to the forma...
Mavor
Mavor2y ago
I have similar problem my nVidia P4 doesn't support B frames for HVEC
[hevc_nvenc @ 0x32db2a17580] Using input frames context (format cuda) with hevc_nvenc encoder.
[hevc_nvenc @ 0x32db2a17580] Loaded Nvenc version 12.0
[hevc_nvenc @ 0x32db2a17580] Nvenc initialized successfully
[hevc_nvenc @ 0x32db2a17580] Max B-frames 3 exceed 0
[hevc_nvenc @ 0x32db2a17580] Provided device doesn't support required NVENC features
[hevc_nvenc @ 0x32db2a17580] Nvenc unloaded
[hevc_nvenc @ 0x32db2a17580] Using input frames context (format cuda) with hevc_nvenc encoder.
[hevc_nvenc @ 0x32db2a17580] Loaded Nvenc version 12.0
[hevc_nvenc @ 0x32db2a17580] Nvenc initialized successfully
[hevc_nvenc @ 0x32db2a17580] Max B-frames 3 exceed 0
[hevc_nvenc @ 0x32db2a17580] Provided device doesn't support required NVENC features
[hevc_nvenc @ 0x32db2a17580] Nvenc unloaded
How do I turn those off?
Mavor
Mavor2y ago
Nvidia NVENC
Nvidia NVENC (short for Nvidia Encoder) is a feature in Nvidia graphics cards that performs video encoding, offloading this compute-intensive task from the CPU to a dedicated part of the GPU. It was introduced with the Kepler-based GeForce 600 series in March 2012.The encoder is supported in many livestreaming and recording programs, such as vMi...
sogan
sogan2y ago
this is a separate issue but for both, using vaapi should work. but nvenc should also work for sdr content in @radh 's case
radh
radhOP2y ago
Just to clarify: The new PR should fix this for my case?
sogan
sogan2y ago
yep
radh
radhOP2y ago
Thanks a lot. This is beautiful work you guys are doing!

Did you find this page helpful?