Table of Contents

Class OpenH264EncoderPage

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

Configuration page for the OpenH264 video encoder.

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

Inheritance

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

bool

Bitrate

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

public uint Bitrate { get; set; }

Property Value

uint

Denoise

Gets or sets a value indicating whether the denoising filter is enabled.

public bool Denoise { get; set; }

Property Value

bool

FrameSkip

Gets or sets a value indicating whether frame skipping is enabled to maintain real-time performance.

public bool FrameSkip { get; set; }

Property Value

bool

GOPSize

Gets or sets the Group of Pictures size determining keyframe interval.

public uint GOPSize { get; set; }

Property Value

uint

Level

Gets or sets the profile.

public OpenH264Level Level { get; set; }

Property Value

OpenH264Level

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 ceiling to prevent bandwidth spikes.

public uint MaxBitrate { get; set; }

Property Value

uint

Profile

Gets or sets the H.264 profile for encoding compatibility and features.

public OpenH264Profile Profile { get; set; }

Property Value

OpenH264Profile

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>

QPMax

Gets or sets the maximum Quantization Parameter for quality control.

public double QPMax { get; set; }

Property Value

double

QPMin

Gets or sets the minimum Quantization Parameter for quality control.

public double QPMin { get; set; }

Property Value

double

Methods

Fill(ref OpenH264EncoderSettings)

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

public void Fill(ref OpenH264EncoderSettings settings)

Parameters

settings OpenH264EncoderSettings

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

settings OpenH264EncoderSettings

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

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