Projects
home:enzokiel
avidemux3
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 42
View file
avidemux3.changes
Changed
@@ -1,7 +1,7 @@ ------------------------------------------------------------------- -Tue Sep 22 14:56:33 UTC 2026 - enzokiel@kabelmail.de +Thu Sep 24 18:37:16 UTC 2026 - enzokiel@kabelmail.de -- Update to version 2.8.2.git20260921 +- Update to version 2.8.2.git20260922 - No changelog available -------------------------------------------------------------------
View file
avidemux3.spec
Changed
@@ -19,7 +19,7 @@ Name: avidemux3 Summary: Graphical video editing and transcoding tool License: GPL-2.0-only -Version: 2.8.2.git20260921 +Version: 2.8.2.git20260922 Release: 0 URL: https://github.com/mean00/avidemux2 ExclusiveArch: %ix86 x86_64 @@ -342,6 +342,7 @@ %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffFlv1.so %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffMpeg2.so %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffMpeg4.so +%{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffNvencAV1.so %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffNvencH264.so %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffNvencHEVC.so %{_libdir}/ADM_plugins6/videoEncoders/libADM_ve_ffVaEncAV1.so
View file
avidemux2-2.8.2.git20260921.tar.xz/.devcontainer_bullseye/Dockerfile -> avidemux2-2.8.2.git20260922.tar.xz/.devcontainer_bullseye/Dockerfile
Changed
@@ -6,7 +6,26 @@ ARG USERNAME=bullseye #RUN echo 'Acquire::http::Proxy "http://192.168.0.9:3142";' > /etc/apt/apt.conf.d/01proxy -RUN sed -i 's/ main / main contrib non-free non-free-firmware/' /etc/apt/sources.list +# bullseye reached end-of-LTS on 2026-08-31 and Debian deleted the whole +# bullseye-security *pool*: the dists/ index is still served, but every .deb it +# points at now returns 404 (libc6-dev, libcurl4, openssl, libexpat1, cmake-latest, +# ...), so plain "apt-get install" fails in this image. Note this is not only about +# cmake-latest: the image ships the LTS-updated runtime libraries (glibc +# 2.31-13+deb11u14, ...) and their matching -dev packages only ever existed in +# bullseye-security, so the suite cannot just be dropped - apt then reports +# "libc6-dev : Depends: libc6 (= 2.31-13+deb11u11) but 2.31-13+deb11u14 is to be +# installed" and refuses to downgrade. +# The suite is therefore served from snapshot.debian.org at the timestamp this base +# image was built from (debuerreotype records it in the image's own sources.list), +# which gives apt exactly the versions that are already installed. The archived +# Release file is expired forever, hence check-valid-until=no. +# Everything else comes from the live archive; when deb.debian.org retires bullseye, +# switch those two lines to http://archive.debian.org/debian (no Valid-Until there). +RUN printf '%s\n' \ + 'deb http://deb.debian.org/debian bullseye main contrib non-free' \ + 'deb http://deb.debian.org/debian bullseye-updates main contrib non-free' \ + 'deb check-valid-until=no http://snapshot.debian.org/archive/debian-security/20260824T000000Z bullseye-security main' \ + > /etc/apt/sources.list RUN echo "deb http://archive.debian.org/debian bullseye-backports main contrib non-free" > /etc/apt/sources.list.d/bullseye-backports.list RUN apt-get update RUN apt-get install -y \
View file
avidemux2-2.8.2.git20260921.tar.xz/.devcontainer_mxe64/Dockerfile -> avidemux2-2.8.2.git20260922.tar.xz/.devcontainer_mxe64/Dockerfile
Changed
@@ -163,6 +163,7 @@ && patch -p1 < /tmp/qt6-qtimageformats-deps.patch || : RUN make \ + nasm \ fdk-aac \ lame \ libass \
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_core/cmake/admFFmpegBuild_crossMingw.cmake -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_core/cmake/admFFmpegBuild_crossMingw.cmake
Changed
@@ -4,7 +4,7 @@ ADM_FF_SET_DEFAULT() IF(USE_NVENC) - SET(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_nvenc hevc_nvenc) + SET(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_nvenc hevc_nvenc av1_nvenc) SET(FFMPEG_DECODERS ${FFMPEG_DECODERS} nvdec) ENDIF()
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_core/cmake/admFFmpegBuild_native.cmake -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_core/cmake/admFFmpegBuild_native.cmake
Changed
@@ -11,7 +11,7 @@ xadd("--enable-nvenc") xadd("--enable-nvdec") xadd("--extra-cflags=-I${NVENC_INCLUDE_DIR}") - SET(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_nvenc hevc_nvenc) + SET(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_nvenc hevc_nvenc av1_nvenc) ENDIF() #@@
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_core/cmake/admFFmpegBuild_vs.cmake -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_core/cmake/admFFmpegBuild_vs.cmake
Changed
@@ -4,7 +4,7 @@ ADM_FF_SET_DEFAULT() IF(USE_NVENC) - SET(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_nvenc hevc_nvenc) + SET(FFMPEG_ENCODERS ${FFMPEG_ENCODERS} h264_nvenc hevc_nvenc av1_nvenc) SET(FFMPEG_DECODERS ${FFMPEG_DECODERS} nvdec) ENDIF()
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.cpp -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.cpp
Changed
@@ -44,6 +44,8 @@ //targetColorSpace=ADM_COLOR_YUV422P; #ifdef H265_ENCODER ADM_info("(HEVC) Creating.\n"); +#elif defined(AV1_ENCODER) + ADM_info("(AV1) Creating.\n"); #else ADM_info("(H264) Creating.\n"); #endif @@ -62,27 +64,20 @@ switch(NvEncSettings.preset) { -#define MIAOU(x,y) case NV_FF_PRESET_##x: av_dict_set(&_options,"preset",y,0); break; - MIAOU(DEFAULT,"default") - MIAOU(SLOW,"slow") - MIAOU(MEDIUM,"medium") - MIAOU(FAST,"fast") - MIAOU(HP,"hp") - MIAOU(HQ,"hq") - MIAOU(BD,"bd") - MIAOU(LL,"ll") - MIAOU(LLHP,"llhp") - MIAOU(LLHQ,"llhq") - MIAOU(LOSSLESS,"lossless") - MIAOU(LOSSLESSHP,"losslesshp") - default:break; -#undef MIAOU + case NV_FF_PRESET_P1: av_dict_set(&_options,"preset","p1",0); break; + case NV_FF_PRESET_P2: av_dict_set(&_options,"preset","p2",0); break; + case NV_FF_PRESET_P3: av_dict_set(&_options,"preset","p3",0); break; + case NV_FF_PRESET_P4: av_dict_set(&_options,"preset","p4",0); break; + case NV_FF_PRESET_P5: av_dict_set(&_options,"preset","p5",0); break; + case NV_FF_PRESET_P6: av_dict_set(&_options,"preset","p6",0); break; + case NV_FF_PRESET_P7: av_dict_set(&_options,"preset","p7",0); break; + default: av_dict_set(&_options,"preset","p4",0); break; } _context->gop_size = NvEncSettings.gopsize; - _context->refs = (NvEncSettings.b_ref_mode != NV_FF_BFRAME_REF_EACH)? NvEncSettings.refs : 0; // avoid encoding failure and hang in ff_nvenc_encode_close() + _context->refs = NvEncSettings.refs; _context->max_b_frames = -#ifdef H265_ENCODER +#if defined(H265_ENCODER) || defined(AV1_ENCODER) NvEncSettings.bframes; #else (NvEncSettings.profile != NV_FF_PROFILE_BASELINE)? NvEncSettings.bframes : 0; @@ -95,11 +90,7 @@ case NV_FF_BFRAME_REF_DISABLED: break; case NV_FF_BFRAME_REF_EACH: -#ifdef H265_ENCODER av_dict_set(&_options,"b_ref_mode","each",0); -#else - ADM_warning("b_ref_mode %u (\"each\") is invalid for h264_nvenc, ignoring.\n",NvEncSettings.b_ref_mode); -#endif break; case NV_FF_BFRAME_REF_MIDDLE: av_dict_set(&_options,"b_ref_mode","middle",0); @@ -146,6 +137,8 @@ #ifdef H265_ENCODER MIAOU(MAIN,"main") MIAOU(MAIN10,"main10") +#elif defined(AV1_ENCODER) + // AV1 NVENC does not have profile options #else MIAOU(BASELINE,"baseline") MIAOU(MAIN,"main") @@ -155,6 +148,17 @@ #undef MIAOU }; + switch(NvEncSettings.tune) { + case NV_FF_TUNE_HQ: av_dict_set(&_options, "tune", "hq", 0); break; +#if defined(H265_ENCODER) || defined(AV1_ENCODER) + case NV_FF_TUNE_UHQ: av_dict_set(&_options, "tune", "uhq", 0); break; +#endif + case NV_FF_TUNE_LL: av_dict_set(&_options, "tune", "ll", 0); break; + case NV_FF_TUNE_ULL: av_dict_set(&_options, "tune", "ull", 0); break; + case NV_FF_TUNE_LOSSLESS: av_dict_set(&_options, "tune", "lossless", 0); break; + default: break; + }; + if(NvEncSettings.lookahead) { int range = NvEncSettings.lookahead; @@ -174,7 +178,7 @@ if(NvEncSettings.spatial_aq) { - if(NvEncSettings.preset == NV_FF_PRESET_LOSSLESS || NvEncSettings.preset == NV_FF_PRESET_LOSSLESSHP) + if(NvEncSettings.preset == NV_FF_TUNE_LOSSLESS) { ADM_warning("Adaptive quantization is incompatible with lossless presets, disabling."); }else @@ -212,6 +216,8 @@ #define MKSTRING(x) STR(x) #ifdef H265_ENCODER # define LAVC_ENCODER_NAME hevc_nvenc +#elif defined(AV1_ENCODER) +# define LAVC_ENCODER_NAME av1_nvenc #else # define LAVC_ENCODER_NAME h264_nvenc #endif @@ -252,6 +258,8 @@ { #ifdef H265_ENCODER return "HEVC"; +#elif defined(AV1_ENCODER) + return "av01"; #else return "H264"; #endif @@ -304,35 +312,42 @@ bool ffNvEncConfigure(void) { diaMenuEntry meRcMode={ - {NV_FF_RC_AUTO,QT_TRANSLATE_NOOP("ffnvenc","Controlled by Preset"),NULL}, - {NV_FF_RC_CONSTQP,QT_TRANSLATE_NOOP("ffnvenc","Constant Quantizer"),NULL}, - {NV_FF_RC_CBR,QT_TRANSLATE_NOOP("ffnvenc","Constant Bitrate"),NULL}, - {NV_FF_RC_VBR,QT_TRANSLATE_NOOP("ffnvenc","Variable Bitrate"),NULL} + {NV_FF_RC_AUTO, QT_TRANSLATE_NOOP("ffnvenc","Controlled by Preset"),NULL}, + {NV_FF_RC_CONSTQP, QT_TRANSLATE_NOOP("ffnvenc","Constant Quantizer"),NULL}, + {NV_FF_RC_CBR, QT_TRANSLATE_NOOP("ffnvenc","Constant Bitrate"),NULL}, + {NV_FF_RC_VBR, QT_TRANSLATE_NOOP("ffnvenc","Variable Bitrate"),NULL} }; diaMenuEntry mePreset={ - {NV_FF_PRESET_DEFAULT,QT_TRANSLATE_NOOP("ffnvenc","Default"),NULL}, - {NV_FF_PRESET_SLOW,QT_TRANSLATE_NOOP("ffnvenc","Slow"),NULL}, - {NV_FF_PRESET_MEDIUM,QT_TRANSLATE_NOOP("ffnvenc","Medium"),NULL}, - {NV_FF_PRESET_FAST,QT_TRANSLATE_NOOP("ffnvenc","Fast"),NULL}, - {NV_FF_PRESET_HP,QT_TRANSLATE_NOOP("ffnvenc","High Performance"),NULL}, - {NV_FF_PRESET_HQ,QT_TRANSLATE_NOOP("ffnvenc","High Quality"),NULL}, - {NV_FF_PRESET_BD,QT_TRANSLATE_NOOP("ffnvenc","BluRay"),NULL}, - {NV_FF_PRESET_LL,QT_TRANSLATE_NOOP("ffnvenc","Low Latency"),NULL}, - {NV_FF_PRESET_LLHP,QT_TRANSLATE_NOOP("ffnvenc","Low Latency (HP)"),NULL}, - {NV_FF_PRESET_LLHQ,QT_TRANSLATE_NOOP("ffnvenc","Low Latency (HQ)"),NULL}, - {NV_FF_PRESET_LOSSLESS,QT_TRANSLATE_NOOP("ffnvenc","Lossless"),NULL}, - {NV_FF_PRESET_LOSSLESSHP,QT_TRANSLATE_NOOP("ffnvenc","Lossless (HP)"),NULL} + {NV_FF_PRESET_P1, QT_TRANSLATE_NOOP("ffnvenc","P1 - Fastest (Lowest Quality)"),NULL}, + {NV_FF_PRESET_P2, QT_TRANSLATE_NOOP("ffnvenc","P2 - Faster"),NULL}, + {NV_FF_PRESET_P3, QT_TRANSLATE_NOOP("ffnvenc","P3 - Fast"),NULL}, + {NV_FF_PRESET_P4, QT_TRANSLATE_NOOP("ffnvenc","P4 - Medium (Default)"),NULL}, + {NV_FF_PRESET_P5, QT_TRANSLATE_NOOP("ffnvenc","P5 - Slow"),NULL}, + {NV_FF_PRESET_P6, QT_TRANSLATE_NOOP("ffnvenc","P6 - Slower"),NULL}, + {NV_FF_PRESET_P7, QT_TRANSLATE_NOOP("ffnvenc","P7 - Slowest (Best Quality)"),NULL} + }; + + diaMenuEntry meTune={ + {NV_FF_TUNE_HQ, QT_TRANSLATE_NOOP("ffnvenc","High Quality"),NULL}, +#if defined(H265_ENCODER) || defined(AV1_ENCODER) + {NV_FF_TUNE_UHQ, QT_TRANSLATE_NOOP("ffnvenc","Ultra High Quality"),NULL}, +#endif + {NV_FF_TUNE_LL, QT_TRANSLATE_NOOP("ffnvenc","Low Latency"),NULL}, + {NV_FF_TUNE_ULL, QT_TRANSLATE_NOOP("ffnvenc","Ultra Low Latency"),NULL}, + {NV_FF_TUNE_LOSSLESS, QT_TRANSLATE_NOOP("ffnvenc","Lossless"),NULL} }; diaMenuEntry meProfile={ #ifdef H265_ENCODER - {NV_FF_PROFILE_MAIN,QT_TRANSLATE_NOOP("ffnvenc","Main"),NULL}, - {NV_FF_PROFILE_MAIN10,QT_TRANSLATE_NOOP("ffnvenc","Main10"),NULL}, + {NV_FF_PROFILE_MAIN, QT_TRANSLATE_NOOP("ffnvenc","Main"),NULL}, + {NV_FF_PROFILE_MAIN10, QT_TRANSLATE_NOOP("ffnvenc","Main10"),NULL}, +#elif defined(AV1_ENCODER) + // AV1 does not have profile options #else {NV_FF_PROFILE_BASELINE,QT_TRANSLATE_NOOP("ffnvenc","Baseline"),NULL}, - {NV_FF_PROFILE_MAIN,QT_TRANSLATE_NOOP("ffnvenc","Main"),NULL}, - {NV_FF_PROFILE_HIGH,QT_TRANSLATE_NOOP("ffnvenc","High"),NULL} + {NV_FF_PROFILE_MAIN, QT_TRANSLATE_NOOP("ffnvenc","Main"),NULL}, + {NV_FF_PROFILE_HIGH, QT_TRANSLATE_NOOP("ffnvenc","High"),NULL} #endif }; @@ -349,9 +364,7 @@ diaMenuEntry meBframeRef={ {NV_FF_BFRAME_REF_DISABLED,QT_TRANSLATE_NOOP("ffnvenc","Disabled"),NULL}, -#ifdef H265_ENCODER {NV_FF_BFRAME_REF_EACH,QT_TRANSLATE_NOOP("ffnvenc","Each"),NULL}, -#endif {NV_FF_BFRAME_REF_MIDDLE,QT_TRANSLATE_NOOP("ffnvenc","Middle"),NULL} }; @@ -361,16 +374,25 @@ #define MZ(x) sizeof(x)/sizeof(diaMenuEntry) diaElemMenu rcmode(PX(rc_mode),QT_TRANSLATE_NOOP("ffnvenc","RC Mode:"),MZ(meRcMode),meRcMode); diaElemMenu qzPreset(PX(preset),QT_TRANSLATE_NOOP("ffnvenc","Preset:"),MZ(mePreset),mePreset); + diaElemMenu tune(PX(tune),QT_TRANSLATE_NOOP("ffnvenc","Tune:"),MZ(meTune),meTune); diaElemMenu profile(PX(profile),QT_TRANSLATE_NOOP("ffnvenc","Profile:"),MZ(meProfile),meProfile); diaElemMenu bFrameRef(PX(b_ref_mode),QT_TRANSLATE_NOOP("ffnvenc","Use B-Frames as References:"),MZ(meBframeRef),meBframeRef); diaElemMenu maxRefs(PX(refs),QT_TRANSLATE_NOOP("ffnvenc","Maximum Reference Frames:"),MZ(meNumRef),meNumRef); +#ifdef AV1_ENCODER + diaElemUInteger qual(PX(quality),QT_TRANSLATE_NOOP("ffnvenc","Quality:"),0,63); +#else diaElemUInteger qual(PX(quality),QT_TRANSLATE_NOOP("ffnvenc","Quality:"),0,51); +#endif diaElemUInteger bitrate(PX(bitrate),QT_TRANSLATE_NOOP("ffnvenc","Bitrate (kbps):"),1,500000); diaElemUInteger maxBitrate(PX(max_bitrate),QT_TRANSLATE_NOOP("ffnvenc","Max Bitrate (kbps):"),1,500000); diaElemUInteger gopSize(PX(gopsize),QT_TRANSLATE_NOOP("ffnvenc","GOP Size:"),0,1000); +#ifdef AV1_ENCODER + diaElemUInteger maxBframes(PX(bframes),QT_TRANSLATE_NOOP("ffnvenc","Maximum Consecutive B-Frames:"),0,31); +#else diaElemUInteger maxBframes(PX(bframes),QT_TRANSLATE_NOOP("ffnvenc","Maximum Consecutive B-Frames:"),0,5); +#endif diaElemUInteger lookAhead(PX(lookahead),QT_TRANSLATE_NOOP("ffnvenc","Lookahead:"),0,NV_MX_LOOKAHEAD); diaElemUInteger aqStrength(PX(aq_strength),QT_TRANSLATE_NOOP("ffnvenc","AQ Strength:"),1,15); @@ -381,6 +403,8 @@ #ifdef H265_ENCODER diaElemReadOnlyText hintBasic(QT_TRANSLATE_NOOP("ffnvenc","Even with HEVC encoding support present, " "lossless presets and B-frames may be unavailable with older hardware"),NULL); +#elif defined(AV1_ENCODER) + diaElemReadOnlyText hintBasic(QT_TRANSLATE_NOOP("ffnvenc","AV1 encoding requires Ada or newer hardware"),NULL); #else diaElemReadOnlyText hintBasic(QT_TRANSLATE_NOOP("ffnvenc","Even with H.264 encoding support present, " "lossless presets may be unavailable with older hardware"),NULL); @@ -394,6 +418,7 @@ rateControl.swallow(&rcmode); rateControl.swallow(&qzPreset); + rateControl.swallow(&tune); rateControl.swallow(&qual); rateControl.swallow(&bitrate); rateControl.swallow(&maxBitrate); @@ -405,10 +430,8 @@ rcmode.link(meRcMode+3,1,&bitrate); rcmode.link(meRcMode+3,1,&maxBitrate); -#ifdef H265_ENCODER - bFrameRef.link(meBframeRef,1,&maxRefs); - bFrameRef.link(meBframeRef+2,1,&maxRefs); -#else +#if defined(H265_ENCODER) || defined(AV1_ENCODER) +#else // h264 baseline has no B frames profile.link(meProfile+1,1,&maxBframes); profile.link(meProfile+2,1,&maxBframes); #endif @@ -423,7 +446,9 @@ #define NB_ELEM(x) sizeof(x)/sizeof(diaElem *) /* First Tab : basic settings */ diaElem *basics={ +#if !defined(AV1_ENCODER) &profile, +#endif &rateControl, &frameControl, &hintBasic @@ -447,6 +472,8 @@ if(diaFactoryRunTabs( #ifdef H265_ENCODER QT_TRANSLATE_NOOP("ffnvenc","NVENC HEVC configuration"), +#elif defined(AV1_ENCODER) + QT_TRANSLATE_NOOP("ffnvenc","NVENC AV1 configuration"), #else QT_TRANSLATE_NOOP("ffnvenc","NVENC H.264 configuration"), #endif
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.h -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ADM_ffNvEnc.h
Changed
@@ -19,22 +19,26 @@ #include "ADM_coreVideoEncoderFFmpeg.h" #include "ffnvenc.h" -// These are legacy presets, deprecated in SDK 10.x. -// Matching new presets, not supported by FFmpeg 4.2.x, are given for reference. +enum FF_NVencTune +{ + NV_FF_TUNE_HQ = 1, +#if defined(H265_ENCODER) || defined(AV1_ENCODER) + NV_FF_TUNE_UHQ = 5, +#endif + NV_FF_TUNE_LL = 2, + NV_FF_TUNE_ULL = 3, + NV_FF_TUNE_LOSSLESS = 4 +}; + enum FF_NVencPreset { - NV_FF_PRESET_DEFAULT=0, // P4 - NV_FF_PRESET_SLOW=1, - NV_FF_PRESET_MEDIUM=2, - NV_FF_PRESET_FAST=3, - NV_FF_PRESET_HP=4, // P1 - NV_FF_PRESET_HQ=5, // P7 - NV_FF_PRESET_BD=6, // P5 - NV_FF_PRESET_LL=7, // P4 - NV_FF_PRESET_LLHP=8, // P1 - NV_FF_PRESET_LLHQ=9, // P7 - NV_FF_PRESET_LOSSLESS=10, // P4 - NV_FF_PRESET_LOSSLESSHP=11 // P1 + NV_FF_PRESET_P1 = 3, // fastest (lowest quality) + NV_FF_PRESET_P2 = 4, // faster (lower quality) + NV_FF_PRESET_P3 = 5, // fast (low quality) + NV_FF_PRESET_P4 = 6, // medium (default) + NV_FF_PRESET_P5 = 7, // slow (good quality) + NV_FF_PRESET_P6 = 8, // slower (better quality) + NV_FF_PRESET_P7 = 9 // slowest (best quality) }; enum FF_NVencProfile @@ -42,6 +46,8 @@ #ifdef H265_ENCODER NV_FF_PROFILE_MAIN=0, NV_FF_PROFILE_MAIN10=1 +#elif defined(AV1_ENCODER) + // AV1 does not have profile options #else NV_FF_PROFILE_BASELINE=0, NV_FF_PROFILE_MAIN=1, @@ -54,35 +60,53 @@ NV_FF_RC_AUTO=0, // controlled by preset NV_FF_RC_CONSTQP=1, NV_FF_RC_CBR=2, - NV_FF_RC_CBR_LOWDELAY_HQ=3, - NV_FF_RC_CBR_HQ=4, - NV_FF_RC_VBR=5, - NV_FF_RC_VBR_HQ=6 + NV_FF_RC_VBR=5 }; -// B-frames as references require SDK 8.1 (driver >= 390.77 on Windows) +// B-frames as references require SDK 8.1 (driver >= 390.77 on Windows) and Turing+ enum FF_NVencBframeRefMode { NV_FF_BFRAME_REF_DISABLED=0, - NV_FF_BFRAME_REF_EACH=1, // invalid for H.264 + NV_FF_BFRAME_REF_EACH=1, NV_FF_BFRAME_REF_MIDDLE=2 }; #ifdef H265_ENCODER # define NVENC_CONF_DEFAULT \ { \ - NV_FF_PRESET_HQ, /* preset */ \ + NV_FF_PRESET_P4, /* preset */ \ NV_FF_PROFILE_MAIN, /* profile */ \ + NV_FF_TUNE_HQ, /* tune */ \ NV_FF_RC_AUTO, /* rc_mode */ \ 20, /* quality */ \ 5000, /* bitrate */ \ 10000, /* max_bitrate */ \ 100, /* gopsize */ \ 0, /* refs */ \ - 0, /* bframes */ \ + 2, /* bframes */ \ + 2, /* b_ref_mode */ \ + 0, /* lookahead */ \ + 8, /* aq_strength */ \ + 0, /* spatial_aq */ \ + 0, /* temporal_aq */ \ + 0 /* weighted_pred */ \ +} +#elif defined(AV1_ENCODER) +# define NVENC_CONF_DEFAULT \ +{ \ + NV_FF_PRESET_P4, /* preset */ \ + 0, /* AV1 does not have profile options */ \ + NV_FF_TUNE_HQ, /* tune */ \ + NV_FF_RC_AUTO, /* rc_mode */ \ + 25, /* quality */ \ + 5000, /* bitrate */ \ + 10000, /* max_bitrate */ \ + 100, /* gopsize */ \ + 0, /* refs */ \ + 2, /* bframes */ \ 2, /* b_ref_mode */ \ 0, /* lookahead */ \ - 0, /* aq_strength */ \ + 8, /* aq_strength */ \ 0, /* spatial_aq */ \ 0, /* temporal_aq */ \ 0 /* weighted_pred */ \ @@ -90,18 +114,19 @@ #else # define NVENC_CONF_DEFAULT \ { \ - NV_FF_PRESET_HQ, /* preset */ \ + NV_FF_PRESET_P4, /* preset */ \ NV_FF_PROFILE_HIGH, /* profile */ \ + NV_FF_TUNE_HQ, /* tune */ \ NV_FF_RC_AUTO, /* rc_mode */ \ 20, /* quality */ \ 10000, /* bitrate */ \ 20000, /* max_bitrate */ \ 100, /* gopsize */ \ 0, /* refs */ \ - 0, /* bframes */ \ - 0, /* b_ref_mode */ \ + 2, /* bframes */ \ + 1, /* b_ref_mode */ \ 0, /* lookahead */ \ - 0, /* aq_strength */ \ + 8, /* aq_strength */ \ 0, /* spatial_aq */ \ 0, /* temporal_aq */ \ 0 /* weighted_pred */ \
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/CMakeLists.txt -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/CMakeLists.txt
Changed
@@ -10,6 +10,8 @@ ADD_VIDEO_ENCODER(${outName} ${${family}${codec}_SRCS}) IF("${codec}" STREQUAL "HEVC") TARGET_COMPILE_DEFINITIONS(${outName} PUBLIC H265_ENCODER) + ELSEIF("${codec}" STREQUAL "AV1") + TARGET_COMPILE_DEFINITIONS(${outName} PUBLIC AV1_ENCODER) ENDIF("${codec}" STREQUAL "HEVC") INSTALL_VIDEO_ENCODER(${outName}) TARGET_LINK_LIBRARIES(${outName} PRIVATE ADM_libavcodec ADM_libavutil) @@ -17,3 +19,4 @@ DEFINE_VID_ENCODER(H264) DEFINE_VID_ENCODER(HEVC) +DEFINE_VID_ENCODER(AV1)
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffNvEncPlugin.cpp -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffNvEncPlugin.cpp
Changed
@@ -89,6 +89,17 @@ &NvEncSettings,NULL,NULL, // conf var nvEncProbe ); +#elif defined(AV1_ENCODER) +ADM_DECLARE_VIDEO_ENCODER_MAIN_EX("ffNvEncAV1", + "Nvidia AV1", + "Nvidia hw encoder", + ffNvEncConfigure, // configuration + ADM_UI_ALL, + 1,0,0, + ffnvenc_encoder_param, // conf template + &NvEncSettings,NULL,NULL, // conf var + nvEncProbe +); #else ADM_DECLARE_VIDEO_ENCODER_MAIN_EX("ffNvEncH264", "Nvidia H264",
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc.conf -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc.conf
Changed
@@ -1,6 +1,7 @@ ffnvenc_encoder{ uint32_t:preset uint32_t:profile +uint32_t:tune uint32_t:rc_mode uint32_t:quality uint32_t:bitrate
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc.h -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc.h
Changed
@@ -4,6 +4,7 @@ typedef struct { uint32_t preset; uint32_t profile; +uint32_t tune; uint32_t rc_mode; uint32_t quality; uint32_t bitrate;
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc_desc.cpp -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc_desc.cpp
Changed
@@ -2,6 +2,7 @@ extern const ADM_paramList ffnvenc_encoder_param={ {"preset",offsetof(ffnvenc_encoder,preset),"uint32_t",ADM_param_uint32_t}, {"profile",offsetof(ffnvenc_encoder,profile),"uint32_t",ADM_param_uint32_t}, + {"tune",offsetof(ffnvenc_encoder,tune),"uint32_t",ADM_param_uint32_t}, {"rc_mode",offsetof(ffnvenc_encoder,rc_mode),"uint32_t",ADM_param_uint32_t}, {"quality",offsetof(ffnvenc_encoder,quality),"uint32_t",ADM_param_uint32_t}, {"bitrate",offsetof(ffnvenc_encoder,bitrate),"uint32_t",ADM_param_uint32_t},
View file
avidemux2-2.8.2.git20260921.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc_json.cpp -> avidemux2-2.8.2.git20260922.tar.xz/avidemux_plugins/ADM_videoEncoder/ffNvEnc/ffnvenc_json.cpp
Changed
@@ -7,6 +7,7 @@ admJson json; json.addUint32("preset",key->preset); json.addUint32("profile",key->profile); +json.addUint32("tune",key->tune); json.addUint32("rc_mode",key->rc_mode); json.addUint32("quality",key->quality); json.addUint32("bitrate",key->bitrate);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.