Class OpenH264EncoderPage
- Assembly
- VisioForge.Core.dll
Configuration page for the OpenH264 video encoder.
public class OpenH264EncoderPage : Page, IAnimatable, ISupportInitialize, IFrameworkInputElement, IInputElement, IQueryAmbient, IAddChild, INotifyPropertyChanged, IComponentConnectorInheritance
Implements
Inherited Members
Remarks
OpenH264 is an open-source H.264/AVC video encoder developed by Cisco and released under the BSD license. It provides a royalty-free implementation of the H.264 standard, making it suitable for applications where licensing costs are a concern. The encoder is optimized for real-time communication scenarios.
Key features of the OpenH264 encoder: - Baseline, Main, and High profile support - Optimized for real-time video conferencing - Background detection for bandwidth optimization - Denoising filter for improved quality in noisy environments - Frame skipping for maintaining real-time performance - Flexible rate control with bitrate and quality modes
Common use cases: - WebRTC video communication - Video conferencing applications - Real-time streaming with low latency requirements - Applications requiring royalty-free H.264 encoding - Cross-platform video encoding solutions
This page allows configuration of encoding parameters including bitrate control, quality settings, GOP structure, and special features like denoising and background detection that enhance video quality in communication scenarios.
Constructors
OpenH264EncoderPage()
Initializes a new instance of the VisioForge.Core.UI.WPF.Dialogs.OutputFormats.Pages.OpenH264EncoderPage class.
public OpenH264EncoderPage()Properties
BackgroundDetection
Gets or sets a value indicating whether background detection is enabled for bandwidth optimization.
public bool BackgroundDetection { get; set; }Property Value
Bitrate
Gets or sets the target bitrate for video encoding in kilobits per second.
public uint Bitrate { get; set; }Property Value
Denoise
Gets or sets a value indicating whether the denoising filter is enabled.
public bool Denoise { get; set; }Property Value
FrameSkip
Gets or sets a value indicating whether frame skipping is enabled to maintain real-time performance.
public bool FrameSkip { get; set; }Property Value
GOPSize
Gets or sets the Group of Pictures size determining keyframe interval.
public uint GOPSize { get; set; }Property Value
Level
Gets or sets the profile.
public OpenH264Level Level { get; set; }Property Value
LevelStr
Gets or sets the level (as string).
public string LevelStr { get; set; }Property Value
Levels
Gets or sets the levels.
public ObservableCollection<string> Levels { get; set; }Property Value
MaxBitrate
Gets or sets the maximum bitrate ceiling to prevent bandwidth spikes.
public uint MaxBitrate { get; set; }Property Value
Profile
Gets or sets the H.264 profile for encoding compatibility and features.
public OpenH264Profile Profile { get; set; }Property Value
ProfileStr
Gets or sets the coder mode (as string).
public string ProfileStr { get; set; }Property Value
Profiles
Gets or sets the profiles.
public ObservableCollection<string> Profiles { get; set; }Property Value
QPMax
Gets or sets the maximum Quantization Parameter for quality control.
public double QPMax { get; set; }Property Value
QPMin
Gets or sets the minimum Quantization Parameter for quality control.
public double QPMin { get; set; }Property Value
Methods
Fill(ref OpenH264EncoderSettings)
Fills the provided settings object with current values from all UI controls.
public void Fill(ref OpenH264EncoderSettings settings)Parameters
settingsOpenH264EncoderSettings-
The OpenH264 encoder settings object to populate with the current configuration from the UI.
GetPageType()
Gets the type of encoder settings this page configures.
public Type GetPageType()Returns
- Type
-
The Type object representing OpenH264EncoderSettings.
Init(OpenH264EncoderSettings)
Initializes the encoder page with existing OpenH264 encoder settings.
public void Init(OpenH264EncoderSettings settings)Parameters
settingsOpenH264EncoderSettings-
The OpenH264 encoder settings to load, including bitrate, quality parameters, and encoding features.
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