Class WebMOutput
WebM output settings.
Inherited Members
Namespace: VisioForge.Core.Types.Output
Assembly: VisioForge.Core.dll
Syntax
public sealed class WebMOutput : IVideoEditBaseOutput, IVideoCaptureBaseOutput
Constructors
WebMOutput()
Initializes a new instance of the WebMOutput class.
Declaration
public WebMOutput()
Properties
Audio_Quality
Gets or sets Vorbis audio quality. The range is [0, 100].
Declaration
public int Audio_Quality { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_ARNR_MaxFrames { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_ARNR_Strength { get; set; }
Property Value
Type | Description |
---|---|
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).
Declaration
public int Video_ARNR_Type { get; set; }
Property Value
Type | Description |
---|---|
int |
Video_AutoAltRef
Gets or sets a value indicating whether alternate reference frame will be added.
Declaration
public bool Video_AutoAltRef { get; set; }
Property Value
Type | Description |
---|---|
bool |
Video_Bitrate
Gets or sets video bitrate.
Declaration
public int Video_Bitrate { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_CPUUsed { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_Decimate { get; set; }
Property Value
Type | Description |
---|---|
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).
Declaration
public int Video_Decoder_Buffer_InitialSize { get; set; }
Property Value
Type | Description |
---|---|
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).
Declaration
public int Video_Decoder_Buffer_OptimalSize { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_Decoder_Buffer_Size { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_DropframeThreshold { get; set; }
Property Value
Type | Description |
---|---|
int |
Video_Encoder
Gets or sets video encoder.
Declaration
public WebMVideoEncoder Video_Encoder { get; set; }
Property Value
Type | Description |
---|---|
WebMVideoEncoder |
Video_EndUsage
Gets or sets video end usage mode.
Declaration
public VP8EndUsageMode Video_EndUsage { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public bool Video_ErrorResilient { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_FixedKeyframeInterval { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_Keyframe_MaxInterval { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_Keyframe_MinInterval { get; set; }
Property Value
Type | Description |
---|---|
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).
Declaration
public VP8KeyframeMode Video_Keyframe_Mode { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_LagInFrames { get; set; }
Property Value
Type | Description |
---|---|
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].
Declaration
public int Video_MaxQuantizer { get; set; }
Property Value
Type | Description |
---|---|
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].
Declaration
public int Video_MinQuantizer { get; set; }
Property Value
Type | Description |
---|---|
int |
Video_Mode
Gets or sets video mode.
Declaration
public VP8QualityMode Video_Mode { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_OvershootPct { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public bool Video_SpatialResampling_Allowed { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_SpatialResampling_DownThreshold { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_SpatialResampling_UpThreshold { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_StaticThreshold { get; set; }
Property Value
Type | Description |
---|---|
int |
Video_ThreadCount
Gets or sets video thread count.
Declaration
public int Video_ThreadCount { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_TokenPartition { get; set; }
Property Value
Type | Description |
---|---|
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.
Declaration
public int Video_UndershootPct { get; set; }
Property Value
Type | Description |
---|---|
int |
Methods
GetInternalTypeVC()
Gets internal output format.
Declaration
public VideoCaptureOutputFormat GetInternalTypeVC()
Returns
Type | Description |
---|---|
VideoCaptureOutputFormat | Returns VideoCaptureOutputFormat. |
GetInternalTypeVE()
Gets internal output format.
Declaration
public VideoEditOutputFormat GetInternalTypeVE()
Returns
Type | Description |
---|---|
VideoEditOutputFormat | Returns VideoEditOutputFormat. |
Load(string)
Loads from JSON.
Declaration
public static WebMOutput Load(string json)
Parameters
Type | Name | Description |
---|---|---|
string | json | JSON string. |
Returns
Type | Description |
---|---|
WebMOutput | The string. |
Save()
Saves to JSON.
Declaration
public string Save()
Returns
Type | Description |
---|---|
string | The string. |