Jetson Thor (JetPack 7): /dev/v4l2-nvenc fails to open (ENOTTY)

Hi NVIDIA team,

I’m working on video encoding on Jetson Thor running JetPack 7 (Jetson Linux r38.x) and want to confirm the expected state of hardware-accelerated encoding on this platform.

Background / observations

  • On Jetson Orin, NvVideoEncoder used /dev/v4l2-nvenc for NVENC hardware encode.

  • On Thor JP7:

    • /dev/v4l2-nvenc is present, but opening it fails during the capabilities query:

      • libv4l2: error getting capabilities: Inappropriate ioctl for device

      • Could not open device '/dev/v4l2-nvenc': Inappropriate ioctl for device

      • Follow-on failures like VIDIOC_REQBUFS ... Bad file descriptor occur because the fd is invalid after the initial error.

    • As a fallback, encoding via /dev/nvidia0 works, but I observe non-zero SM utilization alongside NVENC utilization using:

      • nvidia-smi dmon -s uet
  • Additionally, on our Thor JP7 image, /usr/lib/libv4l/plugins/libv4l2_nvvideocodec.so appears to be missing.

Questions

  1. On Thor JP7, is “GPU-free” NVENC (encode without driving GPU SM utilization) still expected to be available via the V4L2 encoder device (/dev/v4l2-nvenc)?

  2. Is libv4l2_nvvideocodec.so expected to be present on Thor JP7?

    • If yes: which package provides it / where should it be installed?

    • If not: what is the intended replacement for the libv4l2-based codec plugin path on Thor JP7?

Thank you,
Larry

Hi,
It is GPU-free NVENC on Jetpack 7 Thor. On Jetpack 6, the low-level software stacks are different from dGPU. On Jetpack 7, it is unified. Still the hardware engine is NVENC. Please refer to jetson_multimedia_api samples of r38.2.1 to use NVENC:

/usr/src/jetson_multimedia_api/samples/01_video_encode/

So the encoding device/dev/v4l2-nvenc is deprecated and /dev/nvidia0 is now the default?

Because on other documentations I still see:

The video encoder device nodes are:

  • Hardware Encoder (NVENC): /dev/v4l2-nvenc

  • CUVID Encoder: /dev/nvidia0, /dev/nvidia1, etc.

and even when running 01_video_encode sample code on Thor, I noticed the sm usage is not zero, is this expected on Thor?

gpu     sm    mem    enc    dec    jpg    ofa  sbecc  dbecc    pci  rxpci  txpci

Idx      %      %      %      %      %      %   errs   errs   errs   MB/s   MB/s

0      3      0     48      0      0      0      -      -      0      -      - 
0      1      0     20      0      0      0      -      -      0      -      - 
0      0      0      4      0      0      0      -      -      0      -      - 
0      3      0     46      0      0      0      -      -      0      -      - 
0      3      0     41      0      0      0      -      -      0      -      - 
0      4      0     48      0      0      0      -      -      0      -      - 
0      3      0     38      0      0      0      -      -      0      -      - 
0      4      0     48      0      0      0      -      -      0      -      - 
0      5      0     48      0      0      0      -      -      0      -      - 
0      4      0     46      0      0      0      -      -      0      -      - 
0      4      0     48      0      0      0      -      -      0      -      - 
0      4      0     48      0      0      0      -      -      0      -      - 
0      4      0     48      0      0      0      -      -      0      -      - 
0      4      0     49      0      0      0      -      -      0      -      - 
0      3      0     45      0      0      0      -      -      0      -      - 
0      4      0     40      0      0      0      -      -      0      -      - 
0      3      0     42      0      0      0      -      -      0      -      - 
0      3      0     41      0      0      0      -      -      0      -      - 
0      4      0     48      0      0      0      -      -      0      -      - 


Hi,
Yes, device nodes are aligned with dGPU on Jetpack 7 Thor. Please follow the sample to adapt your application.

The usage looks fine. You may also check tegrastats

I see, but what exactly is the SM used for in this case?

Hence, we are closing this topic. If need further support, please open a new one.
Thanks** ~0204

Is this still an issue to support? Any result can be shared?