Table of Contents

Class WebMOutput

Namespace
VisioForge.Core.Types.Output
Assembly
VisioForge.Core.dll

WebM output settings.

public sealed class WebMOutput : IVideoEditBaseOutput, IVideoCaptureBaseOutput

Inheritance

Implements

Inherited Members

Constructors

WebMOutput()

Initializes a new instance of the VisioForge.Core.Types.Output.WebMOutput class.

public WebMOutput()

Properties

Audio_Quality

Gets or sets Vorbis audio quality. The range is [0, 100].

public int Audio_Quality { get; set; }

Property Value

int

Video_ARNR_MaxFrames

Gets or sets the maximum number of frames to run the temporal filter over. The number of frames has to be less than or equal to lag in frames. The range is [0, 15]. Zero is the default.

public int Video_ARNR_MaxFrames { get; set; }

Property Value

int

Video_ARNR_Strength

Gets or sets the relative strength of the blur for the temporal filter. The range is [0, 6]. Zero is the weakest and six is the strongest. Three is the default.

public int Video_ARNR_Strength { get; set; }

Property Value

int

Video_ARNR_Type

Gets or sets the type of blur for the temporal filter. The range is [1, 3]. Value 1 = a backward blur. Value 2 = a forward blur. Value 3 = a center blur (default).

public int Video_ARNR_Type { get; set; }

Property Value

int

Video_AutoAltRef

Gets or sets a value indicating whether alternate reference frame will be added.

public bool Video_AutoAltRef { get; set; }

Property Value

bool

Video_Bitrate

Gets or sets video bitrate.

public int Video_Bitrate { get; set; }

Property Value

int

Video_CPUUsed

Gets or sets encoder complexity control. Changes in this value influences, among others, the encoder's selection of motion estimation methods. Values greater than 0 will increase encoder speed at the expense of quality. See libvpx documentation of the VP8ESETCPUUSED option for further information. Value range is [-16,16]. Values outside the range are ignored. The default value for configuration of libvpx used within webmdshow is 0.

public int Video_CPUUsed { get; set; }

Property Value

int

Video_Decimate

Gets or sets decimate value. Reduces frame rate of input video by discarding video frames based on Decimate value. For Decimate value N, and N >= 2, the VP8 encoder filter encodes only every Nth frame. Decimate values less or equal 1 disable decimation.

public int Video_Decimate { get; set; }

Property Value

int

Video_Decoder_Buffer_InitialSize

Gets or sets decoder buffer initial size. This value indicates the amount of data that will be buffered by the decoding application prior to beginning playback. This value is expressed in units of time (milliseconds).

public int Video_Decoder_Buffer_InitialSize { get; set; }

Property Value

int

Video_Decoder_Buffer_OptimalSize

Gets or sets decoder buffer optimal size. This value indicates the amount of data that the encoder should try to maintain in the decoder's buffer. This value is expressed in units of time (milliseconds).

public int Video_Decoder_Buffer_OptimalSize { get; set; }

Property Value

int

Video_Decoder_Buffer_Size

Gets or sets decoder buffer size. This value indicates the amount of data that may be buffered by the decoding application. This value is expressed in units of time (milliseconds). For example, a value of 5000 indicates that the client will buffer (at least) 5000 ms worth of encoded data.

public int Video_Decoder_Buffer_Size { get; set; }

Property Value

int

Video_DropframeThreshold

Gets or sets dropframe threshold. Temporal resampling allows the codec to "drop" frames as a strategy to meet its target data rate. This can cause temporal discontinuities in the encoded video, which may appear as stuttering during playback. This trade-off is often acceptable, but for many applications is not. It can be disabled in these cases. This threshold is described as a percentage of the target data buffer. When the data buffer falls below this percentage of fullness, a dropped frame is indicated. Set the threshold to zero (0) to disable this feature. 0 by default.

public int Video_DropframeThreshold { get; set; }

Property Value

int

Video_Encoder

Gets or sets video encoder.

public WebMVideoEncoder Video_Encoder { get; set; }

Property Value

WebMVideoEncoder

Video_EndUsage

Gets or sets video end usage mode.

public VP8EndUsageMode Video_EndUsage { get; set; }

Property Value

VP8EndUsageMode

Video_ErrorResilient

Gets or sets a value indicating whether error resilient enabled. Error resilient mode indicates to the encoder that it should take measures appropriate for streaming over lossy or noisy links, if possible. Disabled by default.

public bool Video_ErrorResilient { get; set; }

Property Value

bool

Video_FixedKeyframeInterval

Gets or sets fixed keyframe interval. If keyframe generation at a fixed interval is desired, set keyframe mode to kKeyframeModeDisabled, and set the interval using this method. This is most useful when dealing with a variable frame rate video source when a consistent keyframe interval is desired for streaming purposes.

public int Video_FixedKeyframeInterval { get; set; }

Property Value

int

Video_Keyframe_MaxInterval

Gets or sets keyframe maximum interval. This value, expressed as a number of frames, forces the encoder to code a keyframe if one has not been coded in the last MaxInterval frames. A value of 0 implies all frames will be keyframes. Set MinInterval equal to MaxInterval for a fixed interval.

public int Video_Keyframe_MaxInterval { get; set; }

Property Value

int

Video_Keyframe_MinInterval

Gets or sets keyframe minimum interval. This value, expressed as a number of frames, prevents the encoder from placing a keyframe nearer than MinInterval to the previous keyframe. At least MinInterval frames non-keyframes will be coded before the next keyframe. Set MinInterval equal to MaxInterval for a fixed interval.

public int Video_Keyframe_MinInterval { get; set; }

Property Value

int

Video_Keyframe_Mode

Gets or sets keyframe placement mode. This value indicates whether the encoder should place keyframes at a fixed interval, or determine the optimal placement automatically (as governed by the KeyframeMinInterval and KeyframeMaxInterval).

public VP8KeyframeMode Video_Keyframe_Mode { get; set; }

Property Value

VP8KeyframeMode

Video_LagInFrames

Gets or sets lag in frame. If set, this value allows the encoder to consume a number of input frames before producing output frames. This allows the encoder to base decisions for the current frame on future frames. This does increase the latency of the encoding pipeline, so it is not appropriate in all situations (ex: realtime encoding). This is a maximum value - the encoder may produce frames sooner than the given limit. Set this value to 0 to disable this feature.

public int Video_LagInFrames { get; set; }

Property Value

int

Video_MaxQuantizer

Gets or sets maximum (worst quality) quantizer. The quantizer is the most direct control over the quality of the encoded image. The quantizer range is [0, 63].

public int Video_MaxQuantizer { get; set; }

Property Value

int

Video_MinQuantizer

Gets or sets minimum (best quality) quantizer. The quantizer is the most direct control over the quality of the encoded image. The quantizer range is [0, 63].

public int Video_MinQuantizer { get; set; }

Property Value

int

Video_Mode

Gets or sets video mode.

public VP8QualityMode Video_Mode { get; set; }

Property Value

VP8QualityMode

Video_OvershootPct

Gets or sets rate control overshoot tolerance. This value, expressed as a percentage of the target bitrate, describes the maximum allowed bitrate for a given frame. Set to zero to use the codec default.

public int Video_OvershootPct { get; set; }

Property Value

int

Video_SpatialResampling_Allowed

Gets or sets a value indicating whether spatial resampling enabled. Spatial resampling allows the codec to compress a lower resolution version of the frame, which is then upscaled by the encoder to the correct presentation resolution. This increases visual quality at low data rates, at the expense of CPU time on the encoder/decoder.

public bool Video_SpatialResampling_Allowed { get; set; }

Property Value

bool

Video_SpatialResampling_DownThreshold

Gets or sets spatial resampling down watermark. This threshold is described as a percentage of the target data buffer. When the data buffer falls below this percentage of fullness, the encoder will step down to a lower resolution version of the frame.

public int Video_SpatialResampling_DownThreshold { get; set; }

Property Value

int

Video_SpatialResampling_UpThreshold

Gets or sets spatial resampling up watermark. This threshold is described as a percentage of the target data buffer. When the data buffer rises above this percentage of fullness, the encoder will step up to a higher resolution version of the frame.

public int Video_SpatialResampling_UpThreshold { get; set; }

Property Value

int

Video_StaticThreshold

Gets or sets static macroblock threshold. Sets the threshold for macroblocks to be treated as static by libvpx. When active it allows the encoder to skip blocks that it deems static based on the provided threshold. Values > 1000 not advisable, and any value greater than 0 can cause encoding artifacts due to skipped blocks. Values less than 0 are ignored.

public int Video_StaticThreshold { get; set; }

Property Value

int

Video_ThreadCount

Gets or sets video thread count.

public int Video_ThreadCount { get; set; }

Property Value

int

Video_TokenPartition

Gets or sets VP8 token partition mode. This defines VP8 partitioning mode for compressed data, i.e., the number of sub-streams in the bitstream. Used for parallelized decoding. Value 0 = one token partition. Value 1 = two token partitions. Value 2 = four token partitions. Value 3 = eight token partitions.

public int Video_TokenPartition { get; set; }

Property Value

int

Video_UndershootPct

Gets or sets rate control undershoot tolerance. This value, expressed as a percentage of the target bitrate, describes the target bitrate for easier frames, allowing bits to be saved for harder frames. Set to zero to use the codec default.

public int Video_UndershootPct { get; set; }

Property Value

int

Methods

GetInternalTypeVC()

Gets internal output format.

public VideoCaptureOutputFormat GetInternalTypeVC()

Returns

VideoCaptureOutputFormat

Returns VisioForge.Core.Types.VideoCapture.VideoCaptureOutputFormat.

GetInternalTypeVE()

Gets internal output format.

public VideoEditOutputFormat GetInternalTypeVE()

Returns

VideoEditOutputFormat

Returns VisioForge.Core.Types.VideoEdit.VideoEditOutputFormat.

Load(string)

Loads from JSON.

public static WebMOutput Load(string json)

Parameters

json string

JSON string.

Returns

WebMOutput

The String.

Save()

Saves to JSON.

public string Save()

Returns

string

The String.