Proxmox LXC Install is not picking up Quicksync

I actually have plex on the same host and it is using transcoding fine but Channels with the same setup/passthrough refuses to see the iGPU. Oddly on this system there is no /dev/dri/card0 it's card1 but the renderD128 is there. Ths debug log shows the following but this is on a Debian 12 LXC

igpu tools sees it as well
intel-gpu-top: Intel Elkhartlake (Gen11) @ /dev/dri/card1

I can't force channels to look in /card1 is seems to only look for card0? but the driver error is suspicious as well this is older intel processor but hard to tell with plex working fine side by side.

h264_vaapi@/dev/dri/card0
no such file or directory
h264_vaapi@/dev/dri/renderD128
[AVHWDeviceContext @ 0x41356d40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x41356d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x41356d40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x41356d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0x41356d40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0x4139e300] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x413a0f40] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x4139e700] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x413a1a00] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x4137e080] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x413a0f40] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x413a1a00] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x41526dc0] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x41529e40] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0x415278c0] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0x41529e40] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[h264_vaapi @ 0x415207c0] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0x415207c0] Input surface format is nv12.
[h264_vaapi @ 0x415207c0] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0x415207c0] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0x415207c0] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0x415207c0] Driver does not support any RC mode compatible with selected options (supported modes: CQP).
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1

This is sometimes due to driver options. Weird it would work in plex tho.

Yeah the plex container without any changes has me puzzled for sure...but thanks for comfirming most likely a driver issue.

Are these two different LXCs -- one for Plex and one for Channels?

What version of Proxmox?

Are you using the old cgroup approach to passing the iGPU, or the new method via the Proxmox Dashboard?

Did you do the installations, or did you use tteck scripts?

2 Likes

8.3.4 PVE. Not using any old ways of doing it went right with the helper scripts. Yes two different LXC’s. Plex is unprivileged and they seem to have made the channels one for to privileged but I tried both ways.

Using the helper scripts for both side by side right off the site. I’ve posted on theirs too.

For the scripts they force Ubuntu for plex but options of Debian or Ubuntu for channels. Their Ubuntu option fails I posted a bug for that but the Debian one just doesn’t see the iGPU

I opened a bug for channels over there but yes plex and channels side by side same host one sees it the other doesn’t.

I was going to try to use the plex script installer but remove plex and install channels to see if the script was just missing something as a hack around test.

They don’t seem to think it’s a script issue but haven’t offered any ideas either. Just looking for someone else to see if they can get the same result as me so we can figure it out.

I’ll say the people over there are “quick to dismiss” things. In this case it really just doesn’t make much sense why one works and the other doesn’t. They even won’t fix the script to work with Ubuntu even though that’s an option for OS because they only support it on Debian. Need then remove the Ubuntu option. Unreal.

So maybe trying the plex script that forces Ubuntu and then installing plex is a good workaround test. That’s all I can think of at this point is there’s something different in the container installs but they won’t call that a script issue.

So I just tried to use the plex helper script, confirmed plex sees the iGPU. I removed plex via apt in that LXC, and installed channels instead...no Joy, still doesn't see the iGPU. So it seems the script may not be the issue but really could use some help troubleshooting this as it seemingly makes little sense.

Logic would state if plex see it in an LXC then channels should see the same available hardware. Any other ideas to try here? I'm baffled..

To add....I do notice my PVE server use /dev/dri/card1 not card0 and channels seems to only look for /dev/dri/card0 which has that failing, but I added a symlink and the test no longer fails without finding the location but still fails the tests...

Before symlink:

[Parsed_testsrc_0 @ 0x2daad9c0] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_amf))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x2dab3200] w:1280 h:720 pixfmt:rgb24 tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x2dab5000] w:iw h:ih flags:'' interl:0
[format @ 0x2dab3c40] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_null_0' and the filter 'format'
[auto_scale_0 @ 0x2dab5000] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
[h264_amf @ 0x2dab1cc0] DLL libamfrt64.so.1 failed to open
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1
h264_nvenc
[Parsed_testsrc_0 @ 0x32e3a9c0] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x32e5aa80] w:1280 h:720 pixfmt:rgb24 tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x32e5c940] w:iw h:ih flags:'' interl:0
[format @ 0x32e5b4c0] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_null_0' and the filter 'format'
[auto_scale_0 @ 0x32e5c940] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:gbrp sar:1/1 flags:0x0
[h264_nvenc @ 0x32e3e900] Cannot load libcuda.so.1
[h264_nvenc @ 0x32e3e900] Nvenc unloaded
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1
h264_nvenc+deint
[Parsed_testsrc_0 @ 0x230d4a00] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x230d6d80] w:iw h:ih flags:'' interl:0
[Parsed_tinterlace_1 @ 0x230d5000] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_tinterlace_1'
[auto_scale_0 @ 0x230d6d80] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:yuv444p sar:1/1 flags:0x0
[Parsed_tinterlace_1 @ 0x230d5000] mode:1 filter:off h:720 -> h:720
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,tinterlace=mode=1':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (444P / 0x50343434), yuv444p, 1280x720 [SAR 1:1 DAR 16:9], 30 tbr, 30 tbn
[AVHWDeviceContext @ 0x230cb300] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x230cb300] Could not dynamically load CUDA
Device creation failed: -1.
[rawvideo @ 0x231b1d80] No device available for decoder: device type cuda needed for codec rawvideo.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Device setup failed for decoder on input stream #0:0 : Operation not permitted
exit status 1
h264_nvenc+scaler
[Parsed_testsrc_0 @ 0x374469c0] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
[AVHWDeviceContext @ 0x3743d300] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x3743d300] Could not dynamically load CUDA
Device creation failed: -1.
[rawvideo @ 0x374498c0] No device available for decoder: device type cuda needed for codec rawvideo.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Device setup failed for decoder on input stream #0:0 : Operation not permitted
exit status 1
h264_nvenc+tonemap
[Parsed_testsrc_0 @ 0x3573cc80] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x3573fb40] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x3573d2c0] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x35740880] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x3573d800] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x3573fb40] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x35740880] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
[AVHWDeviceContext @ 0x3587e400] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x3587e400] Could not dynamically load CUDA
Device creation failed: -1.
[rawvideo @ 0x35860540] No device available for decoder: device type cuda needed for codec rawvideo.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Device setup failed for decoder on input stream #0:0 : Operation not permitted
exit status 1
h264_vaapi@/dev/dri/card0
no such file or directory
h264_vaapi@/dev/dri/renderD128
[AVHWDeviceContext @ 0xd6d3d40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0xd6d3d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0xd6d3d40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0xd6d3d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0xd6d3d40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0xd71b300] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0xd71df40] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0xd71b700] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0xd71ea00] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0xd6fb080] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0xd71df40] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0xd71ea00] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0xd8a3dc0] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0xd8a6e40] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0xd8a48c0] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0xd8a6e40] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[h264_vaapi @ 0xd89d7c0] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0xd89d7c0] Input surface format is nv12.
[h264_vaapi @ 0xd89d7c0] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0xd89d7c0] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0xd89d7c0] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0xd89d7c0] Driver does not support any RC mode compatible with selected options (supported modes: CQP).
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1

after symlink (at least it sees it)



```h264_amf
[Parsed_testsrc_0 @ 0xb7ca9c0] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_amf))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0xb7d0200] w:1280 h:720 pixfmt:rgb24 tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0xb7d2000] w:iw h:ih flags:'' interl:0
[format @ 0xb7d0c40] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_null_0' and the filter 'format'
[auto_scale_0 @ 0xb7d2000] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
[h264_amf @ 0xb7cecc0] DLL libamfrt64.so.1 failed to open
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1
h264_nvenc
[Parsed_testsrc_0 @ 0x15bd29c0] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x15bf2a80] w:1280 h:720 pixfmt:rgb24 tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x15bf4940] w:iw h:ih flags:'' interl:0
[format @ 0x15bf34c0] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_null_0' and the filter 'format'
[auto_scale_0 @ 0x15bf4940] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:gbrp sar:1/1 flags:0x0
[h264_nvenc @ 0x15bd6900] Cannot load libcuda.so.1
[h264_nvenc @ 0x15bd6900] Nvenc unloaded
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1
h264_nvenc+deint
[Parsed_testsrc_0 @ 0x2b224a00] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x2b226d80] w:iw h:ih flags:'' interl:0
[Parsed_tinterlace_1 @ 0x2b225000] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_tinterlace_1'
[auto_scale_0 @ 0x2b226d80] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:yuv444p sar:1/1 flags:0x0
[Parsed_tinterlace_1 @ 0x2b225000] mode:1 filter:off h:720 -> h:720
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,tinterlace=mode=1':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (444P / 0x50343434), yuv444p, 1280x720 [SAR 1:1 DAR 16:9], 30 tbr, 30 tbn
[AVHWDeviceContext @ 0x2b21b300] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x2b21b300] Could not dynamically load CUDA
Device creation failed: -1.
[rawvideo @ 0x2b301d80] No device available for decoder: device type cuda needed for codec rawvideo.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Device setup failed for decoder on input stream #0:0 : Operation not permitted
exit status 1
h264_nvenc+scaler
[Parsed_testsrc_0 @ 0x2db249c0] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
[AVHWDeviceContext @ 0x2db1b300] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0x2db1b300] Could not dynamically load CUDA
Device creation failed: -1.
[rawvideo @ 0x2db278c0] No device available for decoder: device type cuda needed for codec rawvideo.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Device setup failed for decoder on input stream #0:0 : Operation not permitted
exit status 1
h264_nvenc+tonemap
[Parsed_testsrc_0 @ 0xe60fc80] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0xe612b40] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0xe6102c0] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0xe613880] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0xe610800] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0xe612b40] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0xe613880] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
[AVHWDeviceContext @ 0xe751400] Cannot load libcuda.so.1
[AVHWDeviceContext @ 0xe751400] Could not dynamically load CUDA
Device creation failed: -1.
[rawvideo @ 0xe733540] No device available for decoder: device type cuda needed for codec rawvideo.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_nvenc))
Device setup failed for decoder on input stream #0:0 : Operation not permitted
exit status 1
h264_vaapi@/dev/dri/card0
[AVHWDeviceContext @ 0x16ed4d40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x16ed4d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x16ed4d40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x16ed4d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0x16ed4d40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0x16f1c300] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x16f1f180] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x16f1d340] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x16f20280] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x16f1de00] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x16f1f180] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x16f20280] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x170a4f00] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x170a7f40] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0x170a59c0] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0x170a7f40] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[h264_vaapi @ 0x1709ec40] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0x1709ec40] Input surface format is nv12.
[h264_vaapi @ 0x1709ec40] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0x1709ec40] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0x1709ec40] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0x1709ec40] Driver does not support any RC mode compatible with selected options (supported modes: CQP).
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1
h264_vaapi@/dev/dri/renderD128
[AVHWDeviceContext @ 0x441e1d40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x441e1d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x441e1d40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x441e1d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0x441e1d40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0x44229300] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x4422c180] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x4422a340] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x4422d280] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x4422ae00] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x4422c180] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x4422d280] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x443b1f00] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x443b4f40] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0x443b29c0] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0x443b4f40] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[h264_vaapi @ 0x443abc40] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0x443abc40] Input surface format is nv12.
[h264_vaapi @ 0x443abc40] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0x443abc40] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0x443abc40] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0x443abc40] Driver does not support any RC mode compatible with selected options (supported modes: CQP).
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
exit status 1
h264_vaapi@/dev/dri/renderD129
no such file or directory
h264_vaapi@/dev/renderD128
no such file or directory

well FFS color me too tired..

I was using a different modprod option and not of echo "options i915 enable_guc=2" > /etc/modprobe.d/i915.conf

I had done previous testing on debian with Plex on bare metal and my notes have this instead
options i915 modeset=1 enable_guc_loading=1 enable_guc_submission=1 enable_huc=1

once I added guc=2 channels saw it so just need to go back and see if that affects the plex container in any way, but thanks for the direction....much more helpful than the TTEK community.

1 Like

I just did a very simple test of whether CDVR server recognizes that hardware transcoding is available in a Debian 12 LXC on Promox 8+.

Here are the steps I followed:

Created a Debian 12 LXC (I always use unprivileged)

Added passthrough for the iGPU:

Note the renderD128 GID has changed from 105 in Debian 11 to 106 in Debian 12:

root@channels-dvr:~# ls -la /dev/dri
total 0
drwxr-xr-x 2 root root         80 Mar  7 15:16 .
drwxr-xr-x 7 root root        500 Mar  7 15:16 ..
crw-rw---- 1 root video  226,   1 Mar  7 15:16 card1
crw-rw---- 1 root render 226, 128 Mar  7 15:16 renderD128

Spun it up, updated/upgraded, and installed curl.

Used the standard Linux CDVR install script:

curl -f -s https://getchannels.com/dvr/setup.sh | sh

Set a location for recordings (just to get past the initial setup) and went to admin/settings/advanced:

Given that CDVR is recognizing that hardware transcoding is available -- it seems like things are working as expected.

This took me all of about 5 minutes, so it might be worth it for you to do a stripped down test like this...

I did all that BUT like I said I neglected to have the right GUC=2 setting all along....with the other settings I was using it would never pick it up. I may switch it over to unprivileged as well now that the right mod setting is there....that was on me...

and I changed to unpriveliedged and it works, the cruz was the GUC setting for sure....I still kept the symlink for dev/dri/card0 in there that seems to work around the fact channels only looks for card0 in the path

h264_vaapi@/dev/dri/card0
no such file or directory

but it works if I keep the symlink either on the host or the LXC OS itself.

I feel like you're mixing in some outdated steps, as passing through an Intel Quicksysnc GPU doesn't require the hoops we used to have to jump through prior to Proxmox 8.2+.

As you can see in the example (non-tteck) install I did for you, my system also uses /dev/dri/card1, and Channels DVR recognized it fine. No requirements related to GUC. No symlinks needed.

Well can’t say. I did a fresh install yesterday of PVE no special changes and nothing worked for channels until I added the GUC config. first thing I did was the helper install and no joy and went from there with one change at a time.

All I can halibut up to is this NUC hardware and the processor in it. You’re right on the fresh install render and card1 were there without drivers or anything but until the i915 file was added it didn’t work. I’ve done very minimal changes tests including blowing away proxmox to a Fresh install as a start and when that didn’t work incremental changes were needed specifically on this CPU it seems.

The symlink is the same as channels only seems to look for the card0 path without the symlink that fails as it appears hardcoded to card0 in channels but not sure. I can only tell you what i've observed over the last couple days starting with the fresh PVE install and ground zero TTEK script. I had not actually gotten around to a non TTEK install but at this. point it's working and it needed the symlink and the

echo "options i915 enable_guc=2" > /etc/modprobe.d/i915.conf

to work on this hardware. I could mess more but I don't want to start over on the PVE side again I use it for other things as well.

Happy to even do a quick video running the HW scan without the symlink and you will see it fails with directory does not exist...dunno what to say.

Are you doing actual transcoding tests, or just looking at the CDVR Transcoder Debug Info?

Because I agree the debug doesn't look for a card1, but if you force a transcode viewing a channel in the WebUI, and then look at intel_gpu_top on your Proxmox host:

intel-gpu-top: Intel Raptorlake_s (Gen12) @ /dev/dri/card1 - 194/ 595 MHz; 0% RC6; 0.44/36.62 W; 710 irqs/s

     ENGINES     BUSY                                                                                   MI_SEMA MI_WAIT
   Render/3D    9.86% |███████▉                                                                       |      0%      0%
     Blitter    0.00% |                                                                               |      0%      0%
       Video    8.18% |██████▌                                                                        |      0%      0%
VideoEnhance   10.93% |████████▊                                                                      |      0%      0%

PID NAME Render/3D Blitter Video VideoEnhance
4015554 ffmpeg |██▎ || ||██ ||██▋ |

As you say though, the issues you're experiencing could be NUC specific...

Have only been looking at the debug info....cause...it's for debugging I thought. with all things seen the gpu top shows it's being used for sure.

without the file mod for GUC I can saw the hardware option would not even appear. I did the symlink video for fun removing the GUC mode requires a reboot and not messing anymore on a friday...LOL...

I mean at this point it's working with the TTEK install as unprivileged so I am good and I have the notes about it on this hardware...another CPU could be different for sure this NUC is a few years old.

@tmm1 It does appear the Transcoder Hardware Debug is failing to look for /dev/dri/card1 as an alternative. The transcoder is identified, as the Hardware option shows up, and transcoding appears to be functioning fine based on intel_gpu_top results on a Proxmox host. Looks like it may be the Debug itself that needs attention:

h264_vaapi@/dev/dri/card0
no such file or directory
h264_vaapi@/dev/dri/renderD128
[AVHWDeviceContext @ 0xa32cd40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0xa32cd40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0xa32cd40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0xa32cd40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0xa32cd40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0xa3f7280] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0xa3fa040] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0xa3f82c0] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0xa3fb100] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0xa3f8d80] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0xa3fa040] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0xa3fb100] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0xa580080] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0xa583100] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0xa580b80] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0xa583100] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[h264_vaapi @ 0xa579740] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0xa579740] Input surface format is nv12.
[h264_vaapi @ 0xa579740] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0xa579740] Using VAAPI entrypoint VAEntrypointEncSlice (6).
[h264_vaapi @ 0xa579740] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0xa579740] RC mode: AVBR.
[h264_vaapi @ 0xa579740] RC target: 4000000 bps converging in 120 frames with 100% accuracy.
[h264_vaapi @ 0xa579740] RC framerate: 60/1 (60.00 fps).
[h264_vaapi @ 0xa579740] Driver does not report any additional prediction constraints.
[h264_vaapi @ 0xa579740] Using intra, P- and B-frames (supported references: 8 / 2).
[h264_vaapi @ 0xa579740] All wanted packed headers available (wanted 0xd, found 0x1f).
Output #0, null, to '/dev/null':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264 (High), 1 reference frame, vaapi(tv, bt2020nc/bt2020/smpte2084, progressive), 1280x720 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 4000 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc59.37.100 h264_vaapi
No more output streams to write to, finishing.
frame=   60 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.98 bitrate=N/A speed=4.04x    
[AVIOContext @ 0xa335540] Statistics: 347 bytes written, 0 seeks, 2 writeouts
video:37kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0):
  Input stream #0:0 (video): 61 packets read (84326400 bytes); 61 frames decoded; 
  Total: 61 packets (84326400 bytes) demuxed
Output file #0 (/dev/null):
  Output stream #0:0 (video): 60 frames encoded; 60 packets muxed (37765 bytes); 
  Total: 60 packets (37765 bytes) muxed
[LIBVA]:CRITICAL - DdiMedia_SyncBuffer:4286: Invalid buffer
success in 267ms

What CPU does your NUC have?

I happened to have a powered-off NUC10 in my rack with an i7 and Proxmox installed, so I hit it with a WoL, and tested as I outlined above with the same results. The iGPU comes up as card0 on this machine:

intel-gpu-top: Intel Cometlake (Gen9) @ /dev/dri/card0 - 261/ 262 MHz; 76% RC6; 1.38/14.14 W; 2222 irqs/s

  IMC reads:     2186 MiB/s
 IMC writes:     1072 MiB/s

     ENGINES     BUSY                                                                                   MI_SEMA MI_WAIT
   Render/3D   16.52% |█████████████▏                                                                 |      4%      0%
     Blitter    0.00% |                                                                               |      0%      0%
       Video   19.72% |███████████████▋                                                               |      1%      0%
VideoEnhance   11.58% |█████████▎                                                                     |      0%      0%

PID NAME Render/3D Blitter Video VideoEnhance
10133 ffmpeg |███▌ || ||████▎ ||██▌ |

Same no-fuss install, so it'd be good if we can identify exactly what the hardware specs are on your system -- as this may be a pretty isolated issue.

Intel Elkhartlake (Gen11)

Celeron based not in a place to get the exact model.

Dunno what the confusion here is. The driver option is required for some GPU generations including this one.

Glad it works now.

The cardX entries don't matter.

No confusion. It's just that the transcoder debug never looks at card1. card0 is not always correct.