Av1_nvenc encoder missing from official ffmpeg package

$ ffmpeg -h encoder=av1_nvenc
ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.2.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Codec 'av1_nvenc' is not recognized by FFmpeg.

This encoder is supposed to be present since libavcodec 52.

https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/5c288a44ad16087c3d3a7563490cb634790e751f

may you check if this 3 packages are installed

dav1d
rav1e
svt-av1

$ pacman -S dav1d rav1e svt-av1
warning: dav1d-1.0.0-1 is up to date -- reinstalling
warning: rav1e-0.6.1-1 is up to date -- reinstalling
warning: svt-av1-1.4.1-1 is up to date -- reinstalling

No, he means the libs

$ ffmpeg -i {INPUT}.mp4 vcodec libsvtav1 {OUTPUT}.mkv

But it does not use hardware acceleration of Nvidia.

Do you use Nvidia 4000 series?

There is no AV1 codec hardware acceleration when using older than Nvidia 3000 series.

Nvidia 3000 series supports AV1 decode only, not AV1 encode.
Nvidia 4000 series fully supports AV1.

$ ffmpeg -i 020123-022541.mp4 -c:v libsvtav1 test.mkv
ffmpeg version N-109530-g4a80db5fc2 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
  libavutil      57. 43.100 / 57. 43.100
  libavcodec     59. 56.100 / 59. 56.100
  libavformat    59. 34.102 / 59. 34.102
  libavdevice    59.  8.101 / 59.  8.101
  libavfilter     8. 53.100 /  8. 53.100
  libswscale      6.  8.112 /  6.  8.112
  libswresample   4.  9.100 /  4.  9.100
  libpostproc    56.  7.100 / 56.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '020123-022541.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.27.100
  Duration: 00:00:05.55, start: 0.000000, bitrate: 1614 kb/s
  Stream #0:0[0x1](und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p(tv, bt2020nc/bt709/bt470m, progressive), 2560x1440 [SAR 1:1 DAR 16:9], 1479 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.37.100 h264_nvenc
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 131 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> av1 (libsvtav1))
  Stream #0:1 -> #0:1 (aac (native) -> vorbis (libvorbis))
Press [q] to stop, [?] for help
Svt[info]: -------------------------------------------
Svt[info]: SVT [version]:       SVT-AV1 Encoder Lib v1.4.1-dirty
Svt[info]: SVT [build]  :       GCC 12.2.0       64 bit
Svt[info]: LIB Build date: Dec 14 2022 06:04:17
Svt[info]: -------------------------------------------
Svt[info]: Number of logical cores available: 16
Svt[info]: Number of PPCS 135
Svt[info]: [asm level on system : up to avx2]
Svt[info]: [asm level selected : up to avx2]
Svt[info]: -------------------------------------------
Svt[info]: SVT [config]: main profile   tier (auto)     level (auto)
Svt[info]: SVT [config]: width / height / fps numerator / fps denominator               : 2560 / 1440 / 60 / 1
Svt[info]: SVT [config]: bit-depth / color format                                       : 8 / YUV420
Svt[info]: SVT [config]: preset / tune / pred struct                                    : 10 / PSNR / random access
Svt[info]: SVT [config]: gop size / mini-gop size / key-frame type                      : 321 / 32 / key frame
Svt[info]: SVT [config]: BRC mode / rate factor                                         : CRF / 35 
Svt[info]: -------------------------------------------
SvtMalloc[info]: SVT Memory Usage:
SvtMalloc[info]:     total allocated memory:       3.90 GB
SvtMalloc[info]:         malloced memory:          1.09 GB
SvtMalloc[info]:         callocated memory:        359.38 MB
SvtMalloc[info]:         allocated aligned memory: 2.45 GB
SvtMalloc[info]:     mutex count: 27171
SvtMalloc[info]:     semaphore count: 3274
SvtMalloc[info]:     thread count: 799
SvtMalloc[info]:     hash table fulless: 0.226559, hash bucket is healthy
SvtMalloc[info]: top 10 malloced memory locations:
SvtMalloc[info]: (313.89 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbCodingUnit.c:121
SvtMalloc[info]: (157.51 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:124
SvtMalloc[info]: (130.52 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1586
SvtMalloc[info]: (91.58 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Common/Codec/EbBitstreamUnit.c:36
SvtMalloc[info]: (88.60 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:125
SvtMalloc[info]: (72.51 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1590
SvtMalloc[info]: (53.31 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbModeDecisionProcess.c:215
SvtMalloc[info]: (35.94 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1201
SvtMalloc[info]: (28.75 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1178
SvtMalloc[info]: (17.97 MB): /build/svt-av1/src/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1174
Output #0, matroska, to 'test.mkv':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.34.102
  Stream #0:0(und): Video: av1 (AV01 / 0x31305641), yuv420p(tv, bt2020nc/bt709/bt470m, progressive), 2560x1440 [SAR 1:1 DAR 16:9], q=2-31, 60 fps, 1k tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.56.100 libsvtav1
  Stream #0:1(und): Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, stereo, fltp (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc59.56.100 libvorbis
[libvorbis @ 0x55fb277b41c0] Queue input is backward in timeitrate= 213.3kbits/s speed=0.181x    
    Last message repeated 10 times
frame=  333 fps= 67 q=35.0 Lsize=     750kB time=00:00:05.53 bitrate=1110.9kbits/s speed=1.12x    
video:639kB audio:99kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 1.642042%
SvtMalloc[info]: you have no memory leak

I am using an nvidia 3000 series card, but even if that is the case, should ffmpeg not include the option and just fail when I try to run it?

@Zesko , @rabcor

is it possible that you have to uninstall the ffmpeg-package and install the ffmpeg-full-git from aur ? just a question from me. maybe @Zesko or others can answer.

That looks you have the limit of memory size. What size is your RAM? Did you enable Swap?

ffmpeg uses the lib libsvtav1 from the package svt-av1 that does not use Nvidia hardware acceleration, but your CPU and RAM.

Your Nvidia 3000 series does not have the ability AV1 encode.

See the wiki

1 Like

32GB RAM, no swap, although i should probably enable that been lazy about getting around to it.

there’s no need to enable swap if you’re running 32 GB RAM with even some extraordinary use. if so use a swapfile, that’s a far better than a swap-partition.

Sorry, you can ignore this message. I can reproduce it, but it is not error after video conversion without any issue

Yeah it is not an error, no memory leak is a good thing.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.