Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#8957 closed defect (fixed)

Regression in nvenc

Reported by: Andrew Sheimo Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: nvenc regression
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
When using h264_nvenc or hevc_nvenc a slowdown of 50fps to 100fps was introduced with commit avcodec/nvenc: removed unused and deprecated field

How to reproduce:
Run a transcode on versions built before and after the stated commit, example below is what I specifically used.

ffmpeg.exe -loglevel error -stats -i <input.mkv> -map 0:0 -c:v hevc_nvenc -pix_fmt:v p010le -b:v 6000k -maxrate:v 18000k -preset:v p5 -rc:v vbr -color_primaries:v bt709 -color_trc:v bt709 -colorspace:v bt709 -metadata:s:v title= -disposition:v default -map 0:1 -c:a:0 ac3 -b:a:0 640k -metadata:s:a:0 title= -disposition:a:0 default -sn -metadata:g title= -default_mode passthrough <output.mkv>

Multiple users I associate with have confirmed this regression. It can also be seen in both the gyan.dev version and BtbN version. With the BtbN version the Auto-Build 2020-10-21 12:32 is prior to the regression the Auto-Build 2020-10-28 12:36 contains the regression.

version output from working version built from commit avcodec/nvenc: mark newly deprecated rc modes

ffmpeg version N-99689-gcde3c08033-ffmpeg-windows-build-helpers Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.1.0 (GCC)
configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w32threads --arch=x86_64 --target-os=mingw32 --cross-prefix=/home/<user>/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --enable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa --enable-libopenjpeg --enable-libopenh264 --enable-liblensfun --enable-libvmaf --enable-libsrt --enable-libaribb24 --enable-demuxer=dash --enable-libxml2 --enable-opengl --enable-libdav1d --enable-cuda-llvm --enable-libaom --enable-libvpx --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-libs=-lm --extra-libs=-lpthread --extra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCACA_STATIC --enable-amf --enable-libmfx --enable-gpl --enable-frei0r --enable-filter=frei0r --enable-librubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-libdavs2 --enable-libxavs2 --enable-libxavs --enable-avresample --extra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared --prefix=/home/<user>/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32
libavutil      56. 60.100 / 56. 60.100
libavcodec     58.111.101 / 58.111.101
libavformat    58. 62.100 / 58. 62.100
libavdevice    58. 11.102 / 58. 11.102
libavfilter     7. 88.100 /  7. 88.100
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  8.100 /  5.  8.100
libswresample   3.  8.100 /  3.  8.100
libpostproc    55.  8.100 / 55.  8.100

version output from latest version built from commit avcodec/nvenc: all presets are SDK10 presets now

ffmpeg version N-99803-gbb6edf618a-ffmpeg-windows-build-helpers Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.1.0 (GCC)
configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w32threads --arch=x86_64 --target-os=mingw32 --cross-prefix=/home/<user>/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --enable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa --enable-libopenjpeg --enable-libopenh264 --enable-liblensfun --enable-libvmaf --enable-libsrt --enable-libaribb24 --enable-demuxer=dash --enable-libxml2 --enable-opengl --enable-libdav1d --enable-cuda-llvm --enable-libaom --enable-libvpx --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-libs=-lm --extra-libs=-lpthread --extra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCACA_STATIC --enable-amf --enable-libmfx --enable-gpl --enable-frei0r --enable-filter=frei0r --enable-librubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-libdavs2 --enable-libxavs2 --enable-libxavs --enable-avresample --extra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared --prefix=/home/<user>/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32
libavutil      56. 60.100 / 56. 60.100
libavcodec     58.112.100 / 58.112.100
libavformat    58. 64.100 / 58. 64.100
libavdevice    58. 11.102 / 58. 11.102
libavfilter     7. 88.100 /  7. 88.100
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  8.100 /  5.  8.100
libswresample   3.  8.100 /  3.  8.100
libpostproc    55.  8.100 / 55.  8.100

Change History (3)

comment:1 by Timo R., 3 years ago

Nothing in regards to explicit new presets has changed with the recent deprecations.
Behaviour of old presets and the slow/medium/fast presets might have changed a bit.

However, the commit you identifies makes absolutely no sense, it removes a dead field that is not used by anything and was purely a leftover.

comment:2 by Timo R., 3 years ago

Priority: importantnormal
Resolution: fixed
Status: newclosed

comment:3 by Andrew Sheimo, 3 years ago

My mistake in identifying the incorrect commit. I'll be more careful next time.

Note: See TracTickets for help on using tickets.