Class VP8EncoderPage
- Assembly
- VisioForge.Core.dll
Configuration page for the VP8 video encoder.
public class VP8EncoderPage : Page, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, INotifyPropertyChanged, IComponentConnectorInheritance
Implements
Inherited Members
Remarks
VP8 is an open-source, royalty-free video codec developed by On2 Technologies and later acquired by Google. It was designed to provide high-quality video compression for web video while avoiding patent licensing fees. VP8 is the predecessor to VP9 and forms part of the WebM project.
Key features of the VP8 encoder: - Completely royalty-free and patent-unencumbered - Excellent browser support through WebM container - Good compression efficiency (better than H.263, comparable to H.264 baseline) - Multiple rate control modes (CBR, VBR, CQ) - Adjustable quantization parameters - Suitable for real-time encoding - Lower complexity than VP9 or H.264
Common use cases: - WebRTC video conferencing - HTML5 web video delivery - YouTube video streaming (legacy) - Cross-platform video applications - Embedded systems with limited resources
Rate control modes: - CQ (Constrained Quality): Maintains consistent quality - CBR: Constant bitrate for streaming - VBR: Variable bitrate for optimal quality/size
Constructors
VP8EncoderPage()
Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.VP8EncoderPage class. Sets up the UI components and populates rate control options.
public VP8EncoderPage()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 VP8EncoderSettings)
Fills the provided settings object with values from the UI controls.
public void Fill(ref VP8EncoderSettings settings)Parameters
settingsVP8EncoderSettings-
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.VP8EncoderSettings type.
Init(VP8EncoderSettings)
Initializes the encoder page with existing settings.
public void Init(VP8EncoderSettings settings)Parameters
settingsVP8EncoderSettings-
The VP8 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