Ffmpeg image for "arm64" missing nvidia support

Hi,
In the image “linuxserver/ffmpeg”
When I use it on “x64” architecture (Intel processor), so the codecs includes also

h264_nvenc

But, when I pull this image from Arm64 based computer, (for example “Nvidia Xavaier” or “Jetson”)
So the Ffmpeg doesn’t include the Nvidia’s encoders (nvec, ndec etc. etc.)

Can you support this please ?

We don’t have access to an arm64 device with an Nvidia gpu so we’re limited in what we can do.

I have a dev branch with discussion in an issue here: [FEAT] · Issue #42 · linuxserver/docker-ffmpeg · GitHub

If you can test the image ghcr.io/linuxserver/lsiodev-ffmpeg:arm64v8-6.1-cli-pkg-d0edb0ca-dev-8432dfe76d86ed2322389f36d1835dc6a40b8f87 and let us know how it goes in that github issues, that would be great.

You’d need the nvidia docker (container toolkit or whatever they call it these days) installed on the host and the nvidia runtime enabled for the container.

Great !
I will check it tomorrow on Nvidia Xavier and will update.

Thanks a lot for your quick response.

I tried this version on Nvidia Jetson Xavier, which include “nvidia container toolkit”.
But this error occured
[h264_nvenc @ 0xaaaad5afb2f0] Cannot load libnvidia-encode.so.1
[h264_nvenc @ 0xaaaad5afb2f0] The minimum required Nvidia driver for nvenc is (unknown) or newer
[vost#0:0/h264_nvenc @ 0xaaaad5b68780] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.
Error while filtering: Operation not permitted
[out#0/matroska @ 0xaaaad5afa510] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=N/A bitrate=N/A speed=N/A
Conversion failed!

Show your compose with the two containers

Here is the full command + the logs.
Please advice.

jetson@jetson-desktop:~/eb$ docker run --rm -it   --runtime=nvidia   -v $(pwd):/config   ghcr.io/linuxserver/lsiodev-ffmpeg:arm64v8-6.1-cli-pkg-d0edb0ca-dev-8432dfe76d86ed2322389f36d1835dc6a40b8f87  -hwaccel nvdec   -i /config/srk.mp4   -c:v h264_nvenc   -b:v 4M  -vf scale=1280:720    -c:a copy   /config/output.mkv
ffmpeg version 6.1 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --disable-debug --disable-doc --disable-ffplay --enable-cuvid --enable-ffprobe --enable-gpl --enable-libaom --enable-libass --enable-libfdk_aac --enable-libfreetype --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-nonfree --enable-nvdec --enable-nvenc --enable-openssl --enable-stripping --enable-version3
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/config/srk.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2023-01-15T09:56:26.000000Z
  Duration: 00:02:12.40, start: 0.000000, bitrate: 1041 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 909 kb/s, 23.98 fps, 23.98 tbr, 24k tbn (default)
    Metadata:
      creation_time   : 2023-01-15T09:56:26.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 01/15/2023.
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2023-01-15T09:56:26.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 01/15/2023.
      vendor_id       : [0][0][0][0]
File '/config/output.mkv' already exists. Overwrite? [y/N] y
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_nvenc))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[h264 @ 0xaaab0d34b710] Cannot load libnvcuvid.so.1
[h264 @ 0xaaab0d34b710] Failed loading nvcuvid.
[h264 @ 0xaaab0d34b710] Failed setup for format cuda: hwaccel initialisation returned error.
[h264_nvenc @ 0xaaab0cdd1390] Cannot load libnvidia-encode.so.1
[h264_nvenc @ 0xaaab0cdd1390] The minimum required Nvidia driver for nvenc is (unknown) or newer
[vost#0:0/h264_nvenc @ 0xaaab0ce3e820] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.
Error while filtering: Operation not permitted
[out#0/matroska @ 0xaaab0cdd05b0] Nothing was written into output file, because at least one of its streams received no packets.
frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=N/A bitrate=N/A speed=N/A    
Conversion failed!