Class VP9EncoderPage
- Assembly
- VisioForge.Core.dll
Configuration page for the VP9 video encoder.
public class VP9EncoderPage : Page, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, INotifyPropertyChanged, IComponentConnectorInheritance
Implements
Inherited Members
Remarks
VP9 is an open-source, royalty-free video codec developed by Google as the successor to VP8. It provides compression efficiency comparable to HEVC/H.265 while remaining completely free from patent licensing fees. VP9 is widely used for YouTube, web video, and various streaming platforms.
Key features of the VP9 encoder: - Royalty-free alternative to HEVC with similar compression efficiency - 30-50% better compression than VP8 - Excellent support for 4K and higher resolutions - Multiple rate control modes (CBR, VBR, CQ) - Adaptive quantization and advanced coding tools - Widely supported in modern browsers and devices - Suitable for both VOD and live streaming
Common use cases: - YouTube video streaming (primary codec) - WebRTC video conferencing - HTML5 web video delivery - 4K/8K video distribution - HDR video content (Profile 2) - Cross-platform video applications
Rate control modes: - CQ (Constrained Quality): Best for archival and high-quality encoding - CBR: Constant bitrate for live streaming - VBR: Variable bitrate for optimal quality/size balance
VP9 offers excellent quality but requires more computational resources than VP8 or H.264. For real-time applications, consider hardware requirements carefully.
Constructors
VP9EncoderPage()
Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.VP9EncoderPage class. Sets up the UI components and populates rate control options.
public VP9EncoderPage()Properties
Bitrate
Gets or sets the target bitrate for encoding in kilobits per second (Kbps).
public int Bitrate { get; set; }Property Value
KeyFrameMaxDistance
Gets or sets the maximum distance between keyframes in frames.
public int KeyFrameMaxDistance { get; set; }Property Value
MaxQ
Gets or sets the maximum quantization parameter.
public double MaxQ { get; set; }Property Value
MinQ
Gets or sets the minimum quantization parameter.
public double MinQ { get; set; }Property Value
Q
Gets or sets the constrained quality (CQ) level.
public double Q { get; set; }Property Value
RateControl
Gets or sets the rate control mode for encoding.
public VPXRateControl RateControl { get; set; }Property Value
RateControlModes
Gets or sets the rate control mode list.
public ObservableCollection<string> RateControlModes { get; set; }Property Value
RateControlStr
Gets or sets the rate control (as string).
public string RateControlStr { get; set; }Property Value
Methods
Fill(ref VP9EncoderSettings)
Fills the provided settings object with values from the UI controls.
public void Fill(ref VP9EncoderSettings settings)Parameters
settingsVP9EncoderSettings-
The settings object to populate with current UI values.
GetPageType()
Gets the encoder settings type associated with this configuration page.
public Type GetPageType()Returns
- Type
-
The VisioForge.Core.Types.X.VideoEncoders.VP9EncoderSettings type.
Init(VP9EncoderSettings)
Initializes the encoder page with existing settings.
public void Init(VP9EncoderSettings settings)Parameters
settingsVP9EncoderSettings-
The VP9 encoder settings to load into the UI.
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
fieldT-
The field.
newValueT-
The new value.
propertyNamestring-
Name of the property.
Returns
- bool
-
trueif successful,falseotherwise.
Type Parameters
T-
Type.
PropertyChanged
Property changed event.
public event PropertyChangedEventHandler PropertyChanged