Table of Contents

Class NVENCHEVCEncoderPage

Namespace
VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages
Assembly
VisioForge.Core.dll

Configuration page for the NVIDIA NVENC HEVC (H.265) hardware video encoder.

public class NVENCHEVCEncoderPage : Page, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, INotifyPropertyChanged, IComponentConnector

Inheritance

Implements

Inherited Members

Remarks

The NVENC HEVC encoder provides hardware-accelerated H.265/HEVC video encoding on compatible NVIDIA graphics cards. HEVC offers improved compression efficiency compared to H.264, typically achieving 25-50% better compression at the same quality level. This encoder is ideal for 4K and high-resolution video encoding where bandwidth efficiency is critical.

Key features of the NVENC HEVC encoder: - Multiple rate control modes including constant QP, CBR, VBR, and quality-based VBR - Support for Main and Main10 profiles for standard and 10-bit encoding - Hardware acceleration with minimal CPU usage - Optimized presets for different use cases (quality, performance, low latency) - Zero-latency mode for real-time streaming applications - Configurable GOP size and quantization parameters

Hardware requirements: - NVIDIA GPU with NVENC support (GTX 10 series or newer for HEVC) - Updated NVIDIA graphics drivers - Sufficient GPU memory for encoding resolution

This page allows configuration of all major NVENC HEVC encoding parameters including bitrate control, quality settings, encoding presets, and advanced options for professional video production workflows.

Constructors

NVENCHEVCEncoderPage()

Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.NVENCHEVCEncoderPage class.

public NVENCHEVCEncoderPage()

Properties

Bitrate

Gets or sets the target bitrate for encoding in kilobits per second.

public uint Bitrate { get; set; }

Property Value

uint

GOPSize

Gets or sets the Group of Pictures (GOP) size in frames.

public int GOPSize { get; set; }

Property Value

int

Level

Gets or sets the profile.

public NVENCHEVCLevel Level { get; set; }

Property Value

NVENCHEVCLevel

LevelStr

Gets or sets the level (as string).

public string LevelStr { get; set; }

Property Value

string

Levels

Gets or sets the levels.

public ObservableCollection<string> Levels { get; set; }

Property Value

ObservableCollection<string>

MaxBitrate

Gets or sets the maximum bitrate limit for variable bitrate encoding modes.

public uint MaxBitrate { get; set; }

Property Value

uint

MaxQP

Gets or sets the maximum Quantization Parameter allowed during encoding.

public double MaxQP { get; set; }

Property Value

double

MinQP

Gets or sets the minimum Quantization Parameter allowed during encoding.

public double MinQP { get; set; }

Property Value

double

Preset

Gets or sets the encoding preset that balances quality and performance.

public NVENCPreset Preset { get; set; }

Property Value

NVENCPreset

PresetStr

Gets or sets the preset (as string).

public string PresetStr { get; set; }

Property Value

string

Presets

Gets or sets the preset list.

public ObservableCollection<string> Presets { get; set; }

Property Value

ObservableCollection<string>

Profile

Gets or sets the HEVC profile for encoding compatibility.

public NVENCHEVCProfile Profile { get; set; }

Property Value

NVENCHEVCProfile

ProfileStr

Gets or sets the coder mode (as string).

public string ProfileStr { get; set; }

Property Value

string

Profiles

Gets or sets the profiles.

public ObservableCollection<string> Profiles { get; set; }

Property Value

ObservableCollection<string>

QP

Gets or sets the constant Quantization Parameter for quality-based encoding.

public double QP { get; set; }

Property Value

double

RateControl

Gets or sets the rate control algorithm used for encoding.

public NVENCRateControl RateControl { get; set; }

Property Value

NVENCRateControl

RateControlModes

Gets or sets the rate control mode list.

public ObservableCollection<string> RateControlModes { get; set; }

Property Value

ObservableCollection<string>

RateControlStr

Gets or sets the rate control (as string).

public string RateControlStr { get; set; }

Property Value

string

ZeroLatency

Gets or sets a value indicating whether zero latency mode is enabled for real-time encoding.

public bool ZeroLatency { get; set; }

Property Value

bool

Methods

Fill(ref NVENCHEVCEncoderSettings)

Fills the provided settings object with current values from the UI controls.

public void Fill(ref NVENCHEVCEncoderSettings settings)

Parameters

settings NVENCHEVCEncoderSettings

The settings object to populate with current encoder configuration values.

GetPageType()

Gets the type of encoder settings this page configures.

public Type GetPageType()

Returns

Type

The Type object representing NVENCHEVCEncoderSettings.

Init(NVENCHEVCEncoderSettings)

Initializes the encoder page with existing settings, populating all controls with current values.

public void Init(NVENCHEVCEncoderSettings settings)

Parameters

settings NVENCHEVCEncoderSettings

The NVENC HEVC encoder settings to load into the UI controls.

InitializeComponent()

InitializeComponent

public void InitializeComponent()

SetProperty<T>(ref T, T, string)

Sets the property.

protected bool SetProperty<T>(ref T field, T newValue, string propertyName = null)

Parameters

field T

The field.

newValue T

The new value.

propertyName string

Name of the property.

Returns

bool

true if successful, false otherwise.

Type Parameters

T

Type.

PropertyChanged

Property changed event.

public event PropertyChangedEventHandler PropertyChanged

Event Type

PropertyChangedEventHandler