Table of Contents

Class SVTAV1EncoderSettings

Namespace
VisioForge.Core.Types.X.VideoEncoders
Assembly
VisioForge.Core.dll

Configuration settings for SVT-AV1 (Scalable Video Technology for AV1) encoder.

public class SVTAV1EncoderSettings : IAV1EncoderSettings, IVideoEncoder, IMediaBlockSettings, IEncoderTextInfo

Inheritance

Implements

Inherited Members

Properties

Bitrate

public int Bitrate { get; set; }

Property Value

int

CQP

Gets or sets the Constant Quantization Parameter mode value.

public int? CQP { get; set; }

Property Value

int?

Remarks

When set to 1-63, enables CQP mode and disables CRF. A zero or negative value selects nothing - the encoder falls back to VisioForge.Core.Types.X.VideoEncoders.SVTAV1EncoderSettings.TargetBitrate or VisioForge.Core.Types.X.VideoEncoders.SVTAV1EncoderSettings.CRF as if CQP had not been set at all.

CRF

Gets or sets the Constant Rate Factor mode value.

public int CRF { get; set; }

Property Value

int

Remarks

Default is 35. Valid range is 1-63; lower values result in higher quality. Any other value is not applied at all and the encoder keeps its own default of 35: the encoder selects CRF mode by testing crf > 0, so zero and -1 are skipped even though the property accepts them, and anything above 63 is refused by the property itself.

IntraPeriodLength

Gets or sets the intra period length (GOP size).

public int IntraPeriodLength { get; set; }

Property Value

int

Remarks

Period of intra frame insertion, in frames. -2 (the default) lets the encoder choose; -1 inserts no further intra frames after the first, which leaves a stream a late-joining client cannot start decoding.

MaxBitrate

Gets or sets the maximum bitrate in kbits per second.

public int? MaxBitrate { get; set; }

Property Value

int?

Remarks

Used for VBR mode when combined with TargetBitrate. The svtav1enc element takes this value in kbits/sec and accepts 0-100000; anything else is not applied and the encoding runs at the target bitrate without a VBR ceiling.

Preset

Gets or sets the encoding preset for quality/speed tradeoff.

public int Preset { get; set; }

Property Value

int

Remarks

Valid range is 0-13; lower values provide better quality but slower encoding. Default is 10. Any other value is not applied at all - the property would refuse the write - and the encoder keeps its own default of 10 rather than being clamped to the slowest mode.

TargetBitrate

Gets or sets the target bitrate in kbits per second.

public int? TargetBitrate { get; set; }

Property Value

int?

Remarks

When set to 1-100000, enables CBR or VBR encoding modes. The svtav1enc element takes this value in kbits/sec, and refuses anything outside that range - a value the element would refuse is not applied at all, and the encoder falls back to VisioForge.Core.Types.X.VideoEncoders.SVTAV1EncoderSettings.CRF.

Threads

Gets or sets the number of logical CPU cores to use for encoding.

public int Threads { get; set; }

Property Value

int

Remarks

0 (the default) lets the encoder use every core. Applied through the element's logical-processors property.

Tier

Gets or sets the tier level for the encoded stream.

public int Tier { get; set; }

Property Value

int

Remarks

0 (the default) for main tier, 1 for high tier. Applied through the element's parameters-string property, which is where SVT-AV1 takes it.

TileColumns

Gets or sets the number of tile columns, in log2 units: 0 (the default) is one column, 1 is two, 2 is four, up to 4 (sixteen columns). Applied through the element's parameters-string property, and clamped there together with VisioForge.Core.Types.X.VideoEncoders.SVTAV1EncoderSettings.TileRows, since SVT-AV1 also caps the two at 128 tiles between them and refuses to start otherwise.

public int TileColumns { get; set; }

Property Value

int

TileRows

Gets or sets the number of tile rows, in log2 units: 0 (the default) is one row, 1 is two, 2 is four, up to 6 (sixty-four rows). Applied through the element's parameters-string property, and clamped there together with VisioForge.Core.Types.X.VideoEncoders.SVTAV1EncoderSettings.TileColumns, since SVT-AV1 also caps the two at 128 tiles between them and refuses to start otherwise. When the pair does not fit, the rows give way and the columns are kept.

public int TileRows { get; set; }

Property Value

int

Methods

CreateBlock()

Creates a new AV1 encoder block with these settings.

public MediaBlock CreateBlock()

Returns

MediaBlock

A configured VisioForge.Core.MediaBlocks.MediaBlock instance for AV1 encoding.

GetCaps()

Retrieves a string representation of the encoder's capabilities (GStreamer caps). This string describes the media formats and properties that the encoder can handle.

public string GetCaps()

Returns

string

A String containing the encoder's capabilities.

GetEncoderType()

Gets the type of the encoder.

public AV1EncoderType GetEncoderType()

Returns

AV1EncoderType

AV1EncoderType.

GetParameters()

Retrieves a string representation of the encoder's current parameters. This string typically includes settings like bitrate, resolution, frame rate, and other configured options.

public string GetParameters()

Returns

string

A String containing the encoder parameters.

IsAvailable()

Checks if the SVT-AV1 encoder is available on the system.

public static bool IsAvailable()

Returns

bool

true if available; otherwise, false.