- Add Windows named pipe support. ( #785 )
- Improve accuracy of --vpp-kfm.
- Speed up --vpp-degrain / --vpp-rtgmc with zero-copy cache references and parallelized motion search.
- Update libvmaf and enable float. ( #783 )
- Add automatic CPU fallback for libvmaf. ( #783 )
- Fix --vpp-libplacebo-tonemapping rejecting bool strings for
use_dovi. - Fix potential issues.
- Improve --vpp-kfm performance for long processing.
- Extend temporal options in --vpp-fft3d.
- Improve diagnostics when ONNX Runtime fails to load.
- Avoid nan in CUDA --vmaf. ( #781 )
- Fix Linux VMAF CUDA support. ( #781 )
- Enable libvship build on Linux.
- Add SDR to HDR model support to --vpp-onnx.
- Clarify error for non-existent VMAF json model. ( #783 )
- Add OpenVINO RIFE frame interpolation filter --vpp-rife-ov.
- Add coring and hue range to --vpp-tweak.
- Add interpolation mode and fix all in --vpp-curves.
- Add detailed parameters to --vpp-hqdering.
- Add chroma to --vpp-cas.
- Add valid source size to --vpp-descale.
- Add keep and fix state management in --vpp-mpdecimate.
- Add detection parameters to --vpp-ivtc.
- Add planes to --vpp-nnedi.
- Add temporal radius and improve temporal processing in --vpp-knn.
- Fix yuv444→y410 conversion.
- Fix mask output in --vpp-msmooth.
- Fix chroma processing in --vpp-vinverse.
- Propagate Yadif copyFrameAsync error in --vpp-yadif.
- Fix nvvfx output crop height check.
- Fix alpha input buffer width.
- Fix smooth QP table reference coordinate clamp.
- Fix Anime4K spline36 linear term in --vpp-anime4k-shader.
- Fix AFS mie_spot8 4th element reference in --vpp-afs.
- Fix colorspace LUT3D green axis scale in --vpp-colorspace.
- Fix libplacebo radius warning argument in --vpp-libplacebo-shader.
- Fix libplacebo deband grain target in --vpp-libplacebo-deband.
- Fix delogo two-point least squares intercept in --vpp-delogo.
- Fix decimate diff grid height in --vpp-decimate.
- Fix decomb stripe grid Y stride in --vpp-decomb.
- Fix chroma reference line in RGB→YUV420 conversion.
- Apply denoise filter fixes.
- Fix threshold in --vpp-convolution3d.
- Add libvmaf CUDA support. ( #781 )
- Improve precision of --vpp-finedehalo. ( #777 )
- Mark --vpp-finedehalo as interlace unsupported. ( #782 )
- Fix frame corruption in --vpp-ivtc expand/mixed path.
- Fix chroma joint-bilateral OOB in --vpp-anime4k-shader on YUV444.
- Fix SRCPTR clamp upper limit in --vpp-afs map_filter.
- Fix OOB write in --vpp-subburn when subtitle position is negative.
- Fix --vpp-deflicker disabled after scene change.
- Fix audio track selection fallback loop in
--avsinput. - Fix LUT boundary clamp and spline coefficient reference in --vpp-curves.
- Fix constant-luminance YUV→RGB conversion using wrong inverse matrix in --vpp-colorspace.
- Fix YUV444/NV24 color conversion bugs.
- Fix degrain fallback analyze MV/SAD snapshot for scene-change delayed output.
- Fix candidate list in --vpp-denoise-dct.
- Improve post-tr2 correction in --vpp-rtgmc. ( #777 )
- Add ONNX Runtime based filter --vpp-onnx.
- Model files can be downloaded from the link below. https://github.com/rigaya/HWEnc-onnx-models/releases
- Add Anime4K shader filter --vpp-anime4k-shader.
- Fix chroma degrain processing in --vpp-rtgmc.
- Fix source frame reference after RFF expansion in RTGMC.
- Add option to force
--parallelwith filters which use large memory. (--parallel-force-large-memory-filters, #780 )
- Add --vpp-chromashift.
- Add --vpp-deblock.
- Add --vpp-deflicker.
- Add --vpp-colorfix.
- Add --vpp-dehalo, --vpp-finedehalo, and --vpp-hqdering.
- Add --vpp-maa filter.
- Add --vpp-stab.
- Add --vpp-vinverse.
- Add --vpp-hqdn3d, --vpp-cas, and --vpp-descale.
- Fix --vpp-nlmeans causing artifacts in some settings.
- Extend --vpp-msmooth, --vpp-msharpen, and --vpp-warpsharp.
- Update --vpp-ivtc.
- Add fsr1 to --vpp-resize.
- Apply --vpp-rtgmc order to actual deinterlacing.
- Fix --vpp-rtgmc slower source-match chroma correction.
- Fix --vpp-deflicker scene change detection.
- Fix --vpp-chromashift auto detection budget.
- Adjust --vpp-colorfix.
- Fix --vpp-kfm realtime failure due to insufficient source cache.
- Fix --vpp-kfm frame pool exhaustion when retaining search luma.
- Fix insufficient reference buffer allocation in --vpp-nnedi.
- Correct mux timestamps when audio PTS is unset.
- Unify hqdn3d VPP option names.
- Fix pipeline control when many frames are output.
- Bundle nnedi3_weight.bin in the package.
- Fix vpp-kfm RTGMC preset medium error (vpp-nnedi nnsize=5) by reducing NNEDI register usage. ( #776 )
- Fix --vpp-rtgmc chroma_motion=false processing. ( #777 )
- Fix failed to copy edi side-data frame with chroma_motion=true, source_match=3.
- Fix Degrain analysis result reuse in --vpp-rtgmc.
- Fix frame pool allocation in --vpp-rtgmc-search-prefilter.
- Add new high quality deinterlace filter --vpp-kfm which supports 24/30/60 mixed VFR. ( #677 )
- Add new high quality deinterlace filter --vpp-rtgmc. ( #161, #218, #267, #677)
- Add --vpp-deint-csp to specify CSP for deinterlace filters.
- Add new filter --vpp-degrain. ( #161, #218, #267, #677)
- Update --vpp-nnedi to new specification.
- Support odd crop values when output resolution must be even. ( #772 )
- Fix CUDA texture border handling in --vpp-yadif.
- Fix audio desync when libavformat returns negative pts.
- Add --vpp-bwdif and --vpp-ivtc.
- Add --vpp-detailsharpen. ( #762 )
- Add --vpp-degrain motion-compensated degrain filter.
- Fix crop processing for yuv444 input where edge pixels were not written correctly. ( #763 )
- Fix neroaacenc 2pass output.
- Fix --lowlatency corrupted on Linux from 9.15.
- Extend AV1 --qvbr upper limit to 63.
- Improve subtitle burn-in for Blu-ray and MPEG-TS inputs. ( #756 )
- Fix libopus encoding for 5.1 / 7.1 channel layouts.
- Add --vpp-msmooth and --vpp-msharpen.
- Add quality metric evaluation using vship. (--vship-ssimulacra2, --vship-butteraugli, --vship-cvvdp)
- Minimize latency with --lowlatency by automatically disabling output thread.
- Add sigmoid-related options and input colorspace specification to --vpp-libplacebo-shader.
- Display warning using --vpp-libplacebo-shader in when conditions requiring res specification are detected.
- Reduce latency when using pipes.
- Fix subtitles not being passed to vpp-subburn when no audio processing is performed. ( #756 )
- Add --vmaf support for Linux systems. ( #755 )
- Improve vapoursynth error messages.
- Improve multi-channel audio channel layout handling when encoding with --audio-codec. ( #671 )
- Update documents for Dolby Vision options (--dolby-vision-profile, --dolby-vision-rpu, etc.). ( #738 )
- Fix for DTS:X not being copyable.
- Add option to append input command line parameters to
encoding_toolin muxer metadata. (--muxer-add-cmd) - Fix potential SIGPIPE(141) error termination in Linux multi-GPU environment.
- Fix error on finalization when encoding E-AC3. ( #706 )
- Avoid mixing GPUs with different B-frame availability when using --parallel.
- Migrate Linux build to meson.
- Add feature to set --audio-bitrate to different value depending on audio channels. ( #743 )
- Add support for Vapoursynth API V4. ( #747 )
- Add option to encode only when input audio codec differs from codec specified by --audio-codec. (--audio-encode-other-codec-only, #743)
- Remove restriction on dolby vision output. ( #738 )
- Fix error when encoding H.264 for RTMP/FLV output.
- Fix mkv output failure when encoding with -c av_libsvtav1. ( #733 )
- Add option to show preset/tune parameters (--check-preset-params).
- Fix --vpp-resize bilinear,spline*,lanczos* creating artifacts depending on resize ratio. ( #698, #737 )
- Add option to enable unidirect B frame for lossless encoding (--unidirectb).
- Add tune option. (--tune)
- Change --ref default to 4(H.264)/5(HEVC,AV1).
- Now defaults for options below should differ by --preset and --tune.
- Add option to fallback to 8bit encoding when 10bit encoding is not supported by the hardware.(--fallback-bitdepth)
- Improve DX11 device initialization to not detect virtual/remote adaptors. ( #725 )
- Improve progress indicator when using --parallel.
- Add support for using --parallel with multiple pipes.
- Fix 9.02 did not incude NVEncNVSDKNGX.dll. ( #724 )
- Fix error when using both ngx-vsr and ngx-true-hdr together (issue since 9.00). ( #724 )
- Avoid unintended fps values when front of input file is corrupted.
- Improve handling when input files have negative pts.
- Improve quality of burned in subtitles in --vpp-subburn processing by changing libass initialization method. ( #717 )
- Add NVEnc.auo2 with native support for AviUtl2.
- Add feature to use filters with avcodec encoders.
- Available with
-c av_xxxExample: -c av_libsvtav1 --avcodec-prms "preset=6,crf=30,svtav1-params=enable-variance-boost=1:variance-boost-strength=2" Other usable options include av_libvvenc, av_libvpx-vp9, etc.
- Available with
- Update ffmpeg libraries. (Windows)
- ffmpeg 7.1+ (20240822) -> 8.0
- libpng 1.6.44 -> 1.6.50
- expat 2.6.2 -> 2.7.1
- fribidi 1.0.11 -> 1.0.16
- libogg 1.3.5 -> 1.3.6
- libxml2 2.12.6 -> 2.14.5
- libvpl 2.13.0 -> 2.15.0
- libvpx 1.14.1 -> 1.15.2
- dav1d 1.4.3 -> 1.5.1
- libxxhash 0.8.2 -> 0.8.3
- glslang 15.0.0 -> 15.4.0
- dovi_tool 2.1.2 -> 2.3.1
- libjpeg-turbo 2.1.0 -> 3.1.1
- lcms2 2.16 -> 2.17
- zimg 3.0.5 -> 3.0.6
- libplacebo 7.349.0 -> 7.351.0
- libsvtav1 3.1.0 (new!) x64 only
- libvvenc 1.13.1 (new!) x64 only
- libass 0.9.0 -> 0.17.4 (x64), 0.14.0 (x86)
- harfbuzz 11.4.4 (new)
- libunibreak 6.1 (new)
- Remove mmt/tlv patch
- Added options to change CUDA optimization mode (--cuda-stream, --cuda-mt, #710)
- To address CUDA_ERROR_MAP_FAILED which seems to occur on RTX50xx, multi-threaded calls to the same CUDA context are disabled by default (--cuda-mt 0)
- Fixed --vpp-rff not working properly in NVEnc 8.10.
- Add option for --bitstream-padding for AV1 CBR encoding ( #714 ).
- Fix filtering crushing when using with interlaced encoding.
- Updates for NVEnc.auo (AviUtl/AviUtl2 plugin).
- Fix processing in YUV444 for --vpp-subburn. ( #691 )
- Fix handling when end is omitted in --dynamic-rc.
- Fix issues with raw output when using formats like yuv4mpegpipe. ( #699 )
- Fix potential freeze when using raw output.
- Add support for --option-file on Linux.
- Fix performance degradation caused in 8.05. ( #696 )
- Add support for combining --output-format with
-c raw. ( #693 ) Now supports cases like-c raw --output-format nut. - Fix black/white processing in 10-bit depth for --vpp-edgelevel.
- Improve interlace detection when using --avsw. ( #688 )
- Add
inverse_tone_mappingoption to --vpp-libplacebo-tonemapping. - Fix error when using
st2094-10andst2094-40fortonemapping_functionin --vpp-libplacebo-tonemapping. - Fix GPU selection defaulting to the first GPU when performance counter information is not available.
- Fix --vpp-colorspace creating green line when input is interlaced.
- Add --task-perf-monitor to collect per task time comsumption in main thread.
- Adjust log output format.
- Improve audio and video synchronization to achieve more uniform mixing when muxing with subtitles or data tracks.
- Improve invalid input data hadling to avoid freeze when "failed to run h264_mp4toannexb bitstream filter" error occurs. Now properly exits with error.
- Add support for uyvy as input color format. ( #678 )
- Fix application freezing when using readers other than avhw.
- Automatically disable --parallel when number of encoders is 1 when using
--parallel auto.
- Fix vpp-resize ngx-vsr, libplaceo* not working in 8.01. ( #683 )
- Fix insufficient frame buffer causing error termination when using readers other than avhw (issue since 8.00beta1).
- Fix crash on process termination in Linux environment (issue since 8.00beta1).
- Fix hw decode not working in Linux environment (issue since 8.00beta1).
- Improve stability of Vulkan initialization in Linux environment.
- Avoid unnecessary Dolby Vision RPU conversion.
- Add detailed logging for errors during Dolby Vision RPU conversion.
- Update documentation.
- Fix crush when using (--parallel).
- Add parallel encoding feature with file splitting. (--parallel)
- Add support for ISO 639-2 T-codes in language code specification. ( #674 )
- Continue processing even when DirectX11/Vulkan initialization fails. ( #675 )
- Fix timestamps occasionally becoming incorrect when using --seek with certain input files.
- Increase priority of GPUs with multiple encoders in auto GPU selection.
- Fix potential freeze when encoder output thread encounters an error.
- Fix potential freeze when encoder terminates with an error.
- Fix incorrect handling of pts for frames before keyframe when decoding from middle of OpenGOP encoded files.
- Fix --dolby-vision-rpu in AV1 encoding. ( #672 )
- Fix some codecs not being able to decode with avsw since 8.00b2.
- Fix interlaced encoding not working when using filters since 8.00b1.
- Add 10.0, 10.1, 10.2, 10.4 options to --dolby-vision-profile. ( #672 )
- Fix --dolby-vision-profile not working with readers other than avhw/avsw. ( #663 )
- Fix memory allocation failure when using yuv422 output. ( #670 )
- Improve auto gpu selection for multi (NVIDIA) GPU environments.
- Add support for NVENC SDK 13.0.
Driver 570.00 or later is required.
- add support for H.264/AV1 in --tf-level.
- Add forced_4 to --split-enc.
- Support HEVC --temporal-layers.
- Add experimental support for yuv422 output. (but untested, as I have no Blackwell GPUs)
- Update CUDA for Windows build to CUDA 11.8.
- Requires driver 452.39 or later.
- Requires CC3.5 or later GPUs.
- NVIDIA GPUs GeForce Maxwell generation or later and some Kepler (GTX Titan, 780(Ti), 730-710)
- GPUs that do not support CC3.5 (GTX770, 760, 740, 6xx) are no longer supported.
- No longer supports builds with CUDA 10 or earlier.
- Builds for Ubuntu 18.04 removed.
- Noe NVEnc will be able to handle "frame transfer from CPU to GPU", "filtering", and "frame submission to encoder" in parallel.
- Merge AV1 --max-temporal-layers to --temporal-layers to be same as other codecs.
- Improve dolby vision rpu handling. ( #663 )
- Now AV1 --level can be specified again.
- Added checks for --max-bitrate and --ref to avoid errors when specifying --level.
- Avoid --qvbr not working properly when setting --max-bitrate too big. ( #486 )
- Fix some case that audio not being able to play when writing to mkv using --audio-copy.
- Now more detailed encoder error information will be shown.
- Avoid width field in mp4 Track Header Box getting 0 when SAR is undefined. ( #680 )
-
- Fix some of the paramters of --vpp-libplacebo-tonemapping not working properly.
- Fix documents for --vpp-resize nvvfx-superres ( #658 ).
- Fix --trim being offset for a few frames when input file is a "cut" file (which does not start from key frame) and is coded using OpenGOP.