21 October 2021

AV1 Codec Support

Added support of AV1 codecs: libaom-av1 and libsvtav1.

AV1 libaom

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[SourceFile]</source> <!-- required-->
    <format>
        <output>[OutputFormat]</output> <!-- required-->
        <video_codec>libaom-av1</video_codec> <!-- required-->
        <video_codec_parameters>
            <cpu-used>[CPUNumber]</cpu-used>
            <auto-alt-ref>[0|1]</auto-alt-ref>
            <sharpness>[Sharpness]</sharpness>
            <static-thresh>[Threshold]</static-thresh>
            <row-mt>[0|1]</row-mt>
            <tile-columns>[TileColumns]</tile-columns>
            <tile-rows>[TileRows]</tile-rows>
            <enable-tpl-model>[0|1]</enable-tpl-model>
            <enable-keyframe-filtering>[0|1|2]</enable-keyframe-filtering>
            <arnr-maxframes>[FramesNumber]</arnr-maxframes>
            <arnr-strength>[FilterStrength]</arnr-strength>
            <tune>[TuneMode]</tune>
            <cq-level>[QualityLevel]</cq-level>
            <max-intra-rate>[IFrameBitrate]</max-intra-rate>
            <max-inter-rate>[PFrameBitrate]</max-inter-rate>
            <gf-cbr-boost>[BoostValue]</gf-cbr-boost>
            <lossless>[0|1]</lossless>
            <enable-cdef>[0|1]</enable-cdef>
            <enable-restoration>[0|1]</enable-restoration>
            <enable-rect-partitions>[0|1]</enable-rect-partitions>
            <enable-ab-partitions>[0|1]</enable-ab-partitions>
            <enable-1to4-partitions>[0|1]</enable-1to4-partitions>
            <min-partition-size>[PartitionSize]</min-partition-size>
            <max-partition-size>[PartitionSize]</max-partition-size>
            <enable-dual-filter>[0|1]</enable-dual-filter>
            <enable-chroma-deltaq>[0|1]</enable-chroma-deltaq>
            <enable-intra-edge-filter>[0|1]</enable-intra-edge-filter>
            <enable-order-hint>[0|1]</enable-order-hint>
            <enable-tx64>[0|1]</enable-tx64>
            <enable-flip-idtx>[0|1]</enable-flip-idtx>
            <enable-rect-tx>[0|1]</enable-rect-tx>
            <enable-dist-wtd-comp>[0|1]</enable-dist-wtd-comp>
            <enable-masked-comp>[0|1]</enable-masked-comp>
            <enable-onesided-comp>[0|1]</enable-onesided-comp>
            <enable-interintra-comp>[0|1]</enable-interintra-comp>
            <enable-smooth-interintra>[0|1]</enable-smooth-interintra>
            <enable-diff-wtd-comp>[0|1]</enable-diff-wtd-comp>
            <enable-interinter-wedge>[0|1]</enable-interinter-wedge>
            <enable-interintra-wedge>[0|1]</enable-interintra-wedge>
            <enable-global-motion>[0|1]</enable-global-motion>
            <enable-warped-motion>[0|1]</enable-warped-motion>
            <enable-filter-intra>[0|1]</enable-filter-intra>
            <enable-smooth-intra>[0|1]</enable-smooth-intra>
            <enable-paeth-intra>[0|1]</enable-paeth-intra>
            <enable-cfl-intra>[0|1]</enable-cfl-intra>
            <enable-diagonal-intra>[0|1]</enable-diagonal-intra>
            <enable-obmc>[0|1]</enable-obmc>
            <enable-overlay>[0|1]</enable-overlay>
            <enable-palette>[0|1]</enable-palette>
            <enable-intrabc>[0|1]</enable-intrabc>
            <enable-angle-delta>[0|1]</enable-angle-delta>
            <disable-trellis-quant>[0|1]</disable-trellis-quant>
            <force-video-mode>[0|1]</force-video-mode>
            <enable-qm>[0|1]</enable-qm>
            <qm-min>[QMFlatness]</qm-min>
            <qm-max>[QMFlatness]</qm-max>
            <reduced-tx-type-set>[0|1]</reduced-tx-type-set>
            <use-intra-dct-only>[0|1]</use-intra-dct-only>
            <use-inter-dct-only>[0|1]</use-inter-dct-only>
            <use-intra-default-tx-only>[0|1]</use-intra-default-tx-only>
            <quant-b-adapt>[0|1]</quant-b-adapt>
            <coeff-cost-upd-freq>[0|1|2|3]</coeff-cost-upd-freq>
            <mode-cost-upd-freq>[0|1|2|3]</mode-cost-upd-freq>
            <mv-cost-upd-freq>[0|1|2|3]</mv-cost-upd-freq>
            <frame-parallel>[0|1]</frame-parallel>
            <error-resilient>[0|1]</error-resilient>
            <aq-mode>[QuantizationMode]</aq-mode>
            <deltaq-mode>[DeltaQIndexMode]</deltaq-mode>
            <delta-lf-mode>[0|1]</delta-lf-mode>
            <frame-boost>[0|1]</frame-boost>
            <noise-sensitivity>[NoiseSensitivity]</noise-sensitivity>
            <tune-content>[TuneType]</tune-content>
            <cdf-update-mode>[CDFUpdateMode]</cdf-update-mode>
            <color-primaries>[ColorPrimaries]</color-primaries>
            <transfer-characteristics>[TransferCharacteristics]</transfer-characteristics>
            <matrix-coefficients>[MatrixCoefficients]</matrix-coefficients>
            <chroma-sample-position>[ChromaSamplePosition]</chroma-sample-position>
            <min-gf-interval>[GFInterval]</min-gf-interval>
            <max-gf-interval>[GFInterval]</max-gf-interval>
            <gf-min-pyr-height>[GFPyramidHeight]</gf-min-pyr-height>
            <gf-max-pyr-height>[GFPyramidHeight]</gf-max-pyr-height>
            <sb-size>[SuperBlockSize]</sb-size>
            <num-tile-groups>[TileGroupsNumber]</num-tile-groups>
            <mtu-size>[MTUSize]</mtu-size>
            <timing-info>[TimingInfo]</timing-info>
            <film-grain-test>[TestVector]</film-grain-test>
            <film-grain-table>[FilmGrainParametersFile]</film-grain-table>
            <denoise-noise-level>[NoiseLevel]</denoise-noise-level>
            <denoise-block-size>[BlockSize]</denoise-block-size>
            <enable-dnl-denoising>[0|1]</enable-dnl-denoising>
            <max-reference-frames>[RefFramesNumber]</max-reference-frames>
            <reduced-reference-set>[0|1]</reduced-reference-set>
            <enable-ref-frame-mvs>[0|1]</enable-ref-frame-mvs>
            <target-seq-level-idx>[TargetSequenceLevel]</target-seq-level-idx>
            <set-tier-mask>[TierMask]</set-tier-mask>
            <min-cr>[CompressionRatio]</min-cr>
            <vbr-corpus-complexity-lap>[CorpusComplexity]</vbr-corpus-complexity-lap>
            <input-chroma-subsampling-x>[ChromaSubsamplingX]</input-chroma-subsampling-x>
            <input-chroma-subsampling-y>[ChromaSubsamplingY]</input-chroma-subsampling-y>
        </video_codec_parameters>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "[Action]", // required
        "source": "[SourceFile]", // required
        "format": {
            "output": "[OutputFormat]", // required
            "video_codec": "libaom-av1",
            "video_codec_parameters": {
                "cpu-used": "[CPUNumber]",
                "auto-alt-ref": "[0|1]",
                "sharpness": "[Sharpness]",
                "static-thresh": "[Threshold]",
                "row-mt": "[0|1]",
                "tile-columns": "[TileColumns]",
                "tile-rows": "[TileRows]",
                "enable-tpl-model": "[0|1]",
                "enable-keyframe-filtering": "[0|1|2]",
                "arnr-maxframes": "[FramesNumber]",
                "arnr-strength": "[FilterStrength]",
                "tune": "[TuneMode]",
                "cq-level": "[QualityLevel]",
                "max-intra-rate": "[IFrameBitrate]",
                "max-inter-rate": "[PFrameBitrate]",
                "gf-cbr-boost": "[BoostValue]",
                "lossless": "[0|1]",
                "enable-cdef": "[0|1]",
                "enable-restoration": "[0|1]",
                "enable-rect-partitions": "[0|1]",
                "enable-ab-partitions": "[0|1]",
                "enable-1to4-partitions": "[0|1]",
                "min-partition-size": "[PartitionSize]",
                "max-partition-size": "[PartitionSize]",
                "enable-dual-filter": "[0|1]",
                "enable-chroma-deltaq": "[0|1]",
                "enable-intra-edge-filter": "[0|1]",
                "enable-order-hint": "[0|1]",
                "enable-tx64": "[0|1]",
                "enable-flip-idtx": "[0|1]",
                "enable-rect-tx": "[0|1]",
                "enable-dist-wtd-comp": "[0|1]",
                "enable-masked-comp": "[0|1]",
                "enable-onesided-comp": "[0|1]",
                "enable-interintra-comp": "[0|1]",
                "enable-smooth-interintra": "[0|1]",
                "enable-diff-wtd-comp": "[0|1]",
                "enable-interinter-wedge": "[0|1]",
                "enable-interintra-wedge": "[0|1]",
                "enable-global-motion": "[0|1]",
                "enable-warped-motion": "[0|1]",
                "enable-filter-intra": "[0|1]",
                "enable-smooth-intra": "[0|1]",
                "enable-paeth-intra": "[0|1]",
                "enable-cfl-intra": "[0|1]",
                "enable-diagonal-intra": "[0|1]",
                "enable-obmc": "[0|1]",
                "enable-overlay": "[0|1]",
                "enable-palette": "[0|1]",
                "enable-intrabc": "[0|1]",
                "enable-angle-delta": "[0|1]",
                "disable-trellis-quant": "[0|1]",
                "force-video-mode": "[0|1]",
                "enable-qm": "[0|1]",
                "qm-min": "[QMFlatness]",
                "qm-max": "[QMFlatness]",
                "reduced-tx-type-set": "[0|1]",
                "use-intra-dct-only": "[0|1]",
                "use-inter-dct-only": "[0|1]",
                "use-intra-default-tx-only": "[0|1]",
                "quant-b-adapt": "[0|1]",
                "coeff-cost-upd-freq": "[0|1|2|3]",
                "mode-cost-upd-freq": "[0|1|2|3]",
                "mv-cost-upd-freq": "[0|1|2|3]",
                "frame-parallel": "[0|1]",
                "error-resilient": "[0|1]",
                "aq-mode": "[QuantizationMode]",
                "deltaq-mode": "[DeltaQIndexMode]",
                "delta-lf-mode": "[0|1]",
                "frame-boost": "[0|1]",
                "noise-sensitivity": "[NoiseSensitivity]",
                "tune-content": "[TuneType]",
                "cdf-update-mode": "[CDFUpdateMode]",
                "color-primaries": "[ColorPrimaries]",
                "transfer-characteristics": "[TransferCharacteristics]",
                "matrix-coefficients": "[MatrixCoefficients]",
                "chroma-sample-position": "[ChromaSamplePosition]",
                "min-gf-interval": "[GFInterval]",
                "max-gf-interval": "[GFInterval]",
                "gf-min-pyr-height": "[GFPyramidHeight]",
                "gf-max-pyr-height": "[GFPyramidHeight]",
                "sb-size": "[SuperBlockSize]",
                "num-tile-groups": "[TileGroupsNumber]",
                "mtu-size": "[MTUSize]",
                "timing-info": "[TimingInfo]",
                "film-grain-test": "[TestVector]",
                "film-grain-table": "[FilmGrainParametersFile]",
                "denoise-noise-level": "[NoiseLevel]",
                "denoise-block-size": "[BlockSize]",
                "enable-dnl-denoising": "[0|1]",
                "max-reference-frames": "[RefFramesNumber]",
                "reduced-reference-set": "[0|1]",
                "enable-ref-frame-mvs": "[0|1]",
                "target-seq-level-idx": "[TargetSequenceLevel]",
                "set-tier-mask": "[TierMask]",
                "min-cr": "[CompressionRatio]",
                "vbr-corpus-complexity-lap": "[CorpusComplexity]",
                "input-chroma-subsampling-x": "[ChromaSubsamplingX]",
                "input-chroma-subsampling-y": "[ChromaSubsamplingY]"
            }
        }
    }
}

Parameter

Description

Allowed Values

Default Value

cpu-used

Speed setting

Integer number between 0 and 9 (6-9 in realtime mode)

6

auto-alt-ref

Enable automatic alt reference frames

Integer number between 0 and 9 (6-9 in realtime mode)

1

sharpness

Loop filter sharpness

Integer number between 0 and 7

0

static-thresh

Motion detection threshold

Integer number between 0 and 1000

0

row-mt

Enable row based multi-threading

  • *0** – off
  • *1** – on

1

tile-columns

Number of tile columns to use

Integer number

0

tile-rows

Number of tile rows to use

Integer number

0

enable-tpl-model

RDO based on frame temporal dependency. This is required for deltaq mode.

  • *0** – off
  • *1** – backward source based

0

enable-keyframe-filtering

Apply temporal filtering on key frame

  • *0** – no filter
  • *1** – filter without overlay
  • *2** – filter with overlay - experimental
    may break random access in players.

1

arnr-maxframes

AltRef max frames

Positive integer number between 0 and 15

0

arnr-strength

AltRef filter strength

Positive integer number between 0 and 6

0

tune

Distortion metric tuning

psnr, ssim, vmaf_with_preprocessing, vmaf_without_preprocessing, vmaf, vmaf_neg, butteraugli

psnr

cq-level

Constant/Constrained Quality level

Integer number between 0 and 63

none

max-intra-rate

Max I-frame bitrate (pct)

Integer number

none

max-inter-rate

Max P-frame bitrate (pct)

Integer number

none

gf-cbr-boost

Boost for Golden Frame in CBR mode (pct)

Integer number

none

lossless

Lossless mode

  • *0** – false
  • *1** – true

0

enable-cdef

Enable the constrained directional enhancement filter

  • *0** – false
  • *1** – true

1

enable-restoration

Enable the loop restoration filter

  • *0** – false
  • *1** – true

Realtime mode: 0
Non-realtime: 1

enable-rect-partitions

Enable rectangular partitions

  • *0** – false
  • *1** – true

1

enable-ab-partitions

Enable ab partitions

  • *0** – false
  • *1** – true

1

enable-1to4-partitions

Enable 1:4 and 4:1 partitions

  • *0** – false
  • *1** – true

1

min-partition-size

Set min partition size. On frame with 4k+ resolutions or higher speed settings, the min partition size will have a minimum of 8.

  • *4** – 4x4,
  • *8** – 8x8,
  • *16** – 16x16,
  • *32** – 32x32,
  • *64** – 64x64,
  • *128** – 128x128

none

max-partition-size

Set max partition size

  • *4** – 4x4,
  • *8** – 8x8,
  • *16** – 16x16,
  • *32** – 32x32,
  • *64** – 64x64,
  • *128** – 128x128

none

enable-dual-filter

Enable dual filter

  • *0** – false
  • *1** – true

1

enable-chroma-deltaq

Enable chroma delta quant

  • *0** – false
  • *1** – true

0

enable-intra-edge-filter

Enable intra edge filtering

  • *0** – false
  • *1** – true

1

enable-order-hint

Enable order hint

  • *0** – false
  • *1** – true

1

enable-tx64

Enable 64-pt transform

  • *0** – false
  • *1** – true

1

enable-flip-idtx

Enable extended transform type including FLIPADST_DCT, DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST, IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST

  • *0** – false
  • *1** – true

1

enable-rect-tx

Enable rectangular transform

  • *0** – false
  • *1** – true

1

enable-dist-wtd-comp

Enable distance-weighted compound

  • *0** – false
  • *1** – true

1

enable-masked-comp

Enable masked (wedge/diff-wtd) compound

  • *0** – false
  • *1** – true

1

enable-onesided-comp

Enable one sided compound

  • *0** – false
  • *1** – true

1

enable-interintra-comp

Enable interintra compound

  • *0** – false
  • *1** – true

1

enable-smooth-interintra

Enable smooth interintra mode

  • *0** – false
  • *1** – true

1

enable-diff-wtd-comp

Enable difference-weighted compound

  • *0** – false
  • *1** – true

1

enable-interinter-wedge

Enable interinter wedge compound

  • *0** – false
  • *1** – true

1

enable-interintra-wedge

Enable interintra wedge compound

  • *0** – false
  • *1** – true

1

enable-global-motion

Enable global motion

  • *0** – false
  • *1** – true

1

enable-warped-motion

Enable local warped motion

  • *0** – false
  • *1** – true

1

enable-filter-intra

Enable filter intra prediction mode

  • *0** – false
  • *1** – true

1

enable-smooth-intra

Enable smooth intra prediction modes

  • *0** – false
  • *1** – true

1

enable-paeth-intra

Enable Paeth intra prediction mode

  • *0** – false
  • *1** – true

1

enable-cfl-intra

Enable chroma from luma intra prediction mode

  • *0** – false
  • *1** – true

1

enable-diagonal-intra

Enable diagonal (D45 to D203) intra prediction modes

  • *0** – false
  • *1** – true

1

force-video-mode

Force video mode

  • *0** – false
  • *1** – true

1

enable-obmc

Enable OBMC

  • *0** – false
  • *1** – true

1

enable-overlay

Enable coding overlay frames

  • *0** – false
  • *1** – true

1

enable-palette

Enable palette prediction mode

  • *0** – false
  • *1** – true

1

enable-intrabc

Enable intra block copy prediction mode

  • *0** – false
  • *1** – true

1

enable-angle-delta

Enable intra angle delta

  • *0** – false
  • *1** – true

1

disable-trellis-quant

Disable trellis optimization of quantized coefficients

  • *0** – false
  • *1** – true
  • *2** – true for rd search
  • *3** – true for estimate yrd search

3

enable-qm

Enable quantisation matrices

  • *0** – false
  • *1** – true

0

qm-min

Min quant matrix flatness

Positive integer number between 0 and 15

8

qm-max

Max quant matrix flatness

Positive integer number between 0 and 15

15

reduced-tx-type-set

Use reduced set of transform types

  • *0** – false
  • *1** – true

none

use-intra-dct-only

Use DCT only for INTRA modes

  • *0** – false
  • *1** – true

none

use-inter-dct-only

Use DCT only for INTER modes

  • *0** – false
  • *1** – true

none

use-intra-default-tx-only

Use Default-transform only for INTRA modes

  • *0** – false
  • *1** – true
  • none*1

quant-b-adapt

Use adaptive quantize_b

  • *0** – false
  • *1** – true

none

coeff-cost-upd-freq

Update freq for coeff costs

  • *0** – SB
  • *1** – SB Row per Tile
  • *2** – Tile
  • *3** – Off

none

mode-cost-upd-freq

Update freq for mode costs

  • *0** – SB
  • *1** – SB Row per Tile
  • *2** – Tile
  • *3** – Off

none

mv-cost-upd-freq

Update freq for mv costs

  • *0** – SB
  • *1** – SB Row per Tile
  • *2** – Tile
  • *3** – Off

none

frame-parallel

Enable frame parallel decodability features

  • *0** – false
  • *1** – true

0

error-resilient

Enable error resilient features

  • *0** – false
  • *1** – true

0

aq-mode

Adaptive quantization mode

  • *0** – off
  • *1**– variance **2** – complexity
  • *3** – cyclic refresh

0

deltaq-mode

Delta qindex mode. Currently this requires enable-tpl-model as a prerequisite.

  • *0** – off
  • *1** – deltaq objective
  • *2** – deltaq perceptual

1

delta-lf-mode

Enable delta-lf-mode

  • *0** – off
  • *1** – on

0

frame-boost

Enable frame periodic boost

  • *0** – off
  • *1** – on

0

noise-sensitivity

Noise sensitivity (frames to blur)

Positive float number

none

tune-content

Tune content type

default, screen, film

default

cdf-update-mode

CDF update mode for entropy coding

  • *0** – no CDF update
  • *1** – update CDF on all frames
  • *2** – selectively update CDF on some frames

1

color-primaries

Color primaries (CICP) of input content

bt709, unspecified, bt601, bt470m, bt470bg, smpte240, film, bt2020, xyz, smpte431, smpte432, ebu3213

none

transfer-characteristics

Transfer characteristics (CICP) of input content

unspecified, bt709, bt470m, bt470bg, bt601, smpte240, lin, log100, log100sq10, iec61966, bt1361, srgb, bt2020-10bit, bt2020-12bit, smpte2084, hlg, smpte428

none

matrix-coefficients

Matrix coefficients (CICP) of input content

identity, bt709, unspecified, fcc73, bt470bg, bt601, smpte240, ycgco, bt2020ncl, bt2020cl, smpte2085, chromncl, chromcl, ictcp

none

chroma-sample-position

The chroma sample position when chroma 4:2:0 is signaled

unknown, vertical, colocated

none

min-gf-interval

Min gf/arf frame interval (indicating in-built behavior)

Positive integer number

0

max-gf-interval

Max gf/arf frame interval (indicating in-built behavior)

Positive integer number

0

gf-min-pyr-height

Min height for GF group pyramid structure

Positive integer number between 0 and 5

0

gf-max-pyr-height

Maximum height for GF group pyramid structure

Positive integer number between 0 and 5

0

sb-size

Superblock size to use

dynamic, 64, 128

none

num-tile-groups

Maximum number of tile groups

Positive integer number

1

mtu-size

MTU size for a tile group, overrides maximum number of tile groups

Positive integer number

0 (no MTU targeting)

timing-info

Signal timing info in the bitstream (model only works for no hidden frames, no super-res yet)

unspecified, constant, model

none

film-grain-test

Film grain test vectors

  • *0** – none
  • *1** – test-1
  • *2** – test-2
    ...
  • *16** – test-16

0

film-grain-table

Path to file containing film grain parameters

Valid URL

none

denoise-noise-level

Amount of noise

Positive integer number between 0 and 50

none

denoise-block-size

Denoise block size

Positive integer number

32

enable-dnl-denoising

Apply denoising to the frame being encoded when denoise-noise-level is enabled

  • *0** – false
  • *1** – true

1

max-reference-frames

Maximum number of reference frames allowed per frame

Positive integer number between 3 and 7

7

reduced-reference-set

Use reduced set of single and compound references

  • *0** – off
  • *1** – on

0

enable-ref-frame-mvs

Enable temporal mv prediction (default is 1)

  • *0** – off
  • *1** – on

1

target-seq-level-idx

Target sequence level index.

Positive integer number in the form of "ABxy" (pad leading zeros if less than 4 digits). AB: Operating point(OP) index, xy: Target level index for the OP. E.g. "0" means target level index 0 for the 0th OP, "1021" means target level index 21 for the 10th OP.

none

set-tier-mask

Set bit mask to specify which tier each of the 32 possible operating points conforms to. Bit value.

  • *0** – Main Tier
  • *1** – High Tier

0

min-cr

Set minimum compression ratio. If non-zero, encoder will try to keep the compression ratio of each frame to be higher than the given value divided by 100.

Positive integer number

0

vbr-corpus-complexity-lap

Set average corpus complexity per mb for single pass VBR using lap.

Positive integer number between 0 and 10000

0

input-chroma-subsampling-x

Chroma subsampling x value.

Positive integer number

none

input-chroma-subsampling-y

Chroma subsampling y value.

Positive integer number

none

AV1 libsvtav1

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[SourceFile]</source> <!-- required-->
    <format>
        <output>[OutputFormat]</output> <!-- required-->
        <video_codec>libsvtav1</video_codec> <!-- required-->
        <video_codec_parameters>
            <profile>[Profile]</profile>
            <level>[Level]</level>
            <tier>[Tier]</tier>
            <rc>[RateControl]</rc>
            <qmin>[Quantizer]</qmin>
            <qmax>[Quantizer]</qmax>
            <qp>[Quantizer]</qp>
            <la_depth>[LookAheadFrames]</la_depth>
            <sc_detection>[0|1]</sc_detection>
            <preset>[QualitySpeedTradeoff]</preset>
            <tile_rows>[TileRows]</tile_rows>
            <tile_columns>[TileColumns]</tile_columns>
        </video_codec_parameters>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "[Action]", // required
        "source": "[SourceFile]", // required
        "format": {
            "output": "[OutputFormat]", // required
            "video_codec": "libsvtav1",
            "video_codec_parameters": {
                "profile": "[Profile]",
                "level": "[Level]",
                "tier": "[Tier]",
                "rc": "[RateControl]",
                "qmin": "[Quantizer]",
                "qmax": "[Quantizer]",
                "qp": "[Quantizer]",
                "la_depth": "[LookAheadFrames]",
                "sc_detection": "[0|1]",
                "preset": "[QualitySpeedTradeoff]",
                "tile_rows": "[TileRows]",
                "tile_columns": "[TileColumns]"
            }
        }
    }
}

Parameter

Description

Allowed Values

Default Value

profile

Encoding profile

main

none

level

Operating point level

Positive integer number

none

tier

Operating point tier

Positive integer number

none

rc

Rate control mode

  • *cqp** – Constant quantizer: use fixed values of qindex (dependent on the frame type) throughout the stream
  • *vbr** – Variable bitrate: use a target bitrate for the whole stream
  • *cvbr** – Constrained variable bitrate: use a target bitrate for each GOP

none

qmin

Minimum quantizer to use when using a bitrate mode

Positive integer number between 0 and 63

none

qmax

Maximum quantizer to use when using a bitrate mode

Positive integer number between 0 and 63

none

qp

Quantizer used in cqp rate control mode

Positive integer number between 0 and 63

none

la_depth

Number of frames to look ahead

Positive integer number between 0 and 120

none

sc_detection

Enable scene change detection

  • *0** – off
  • *1** – on

0

preset

Quality-speed tradeoff. Higher values are faster but lower quality

Positive integer number between 0 and 8

8

tile_rows

Number of rows of tiles to use

Positive integer number between 0 and 6

none

tile_columns

Number of columns of tiles to use

Positive integer number between 0 and 4

none

Media Stream Validator QC Test

Added new QC Test: Media Stream Validator QC Apple's Media Stream Validator (mediastreamvalidator) verifies that the HLS media playlist and media segments conform to the HTTP Live Streaming specification.

🚧

Media Format

Media Stream Validator test available only for advanced_hls, fmp4_hls, and HLS manifests of advanced_fmp4 output formats.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SourceFile|SourcePlaylist]</source><!-- required -->
    <format>
        <output>[qc_check|advanced_hls|fmp4_hls|advanced_fmp4]</output><!-- required -->
        <qc> 
            <qc_stream_validator />
        </qc>
        <!-- format params -->
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "AddMedia", // required
        "source": "[SourceFile|SourcePlaylist]", // required
        "format": {
            "output": "[qc_check|advanced_hls|fmp4_hls|advanced_fmp4]", // required
            "qc": {
                "qc_stream_validator": []
            }
            // format params
        }
    }
}

Media Stream Validator Report

Link to Media Stream Validator Report can be found in GetStatus response

<?xml version="1.0"?>
<report>
    <mediaID>[MediaID]</mediaID>
    <status>[QCStatus]</status>
    <warnings>
        <warning>
            <testName>qc_stream_validator</testName>
            <fileName>[ManifestName]</fileName>
            <message>[WarningMessage]</message>
        </warning>
    </warnings>
    <externalReports>
        <externalReport>
            <testName>qc_stream_validator</testName>
            <fileName>[FileName]</fileName>
            <ReportLink>[MSVReportURL]</ReportLink>
            <Summary>[BatonSummary]</Summary>
            <Result>[Success|Failure]</Result>
        </externalReport>
    </externalReports>
    <!-- report fields -->
</report>
{
    "report": {
        "mediaID": "[MediaID]",
        "status": "[QCStatus]",
        "warnings": {
            "warning": [
                {
                    "testName": "qc_stream_validator",
                    "fileName": "[FileName]",
                    "message": "[WarningMessage]"
                }
            ]
        },
        "externalReports": {
            "externalReport": [
                {
                    "testName": "qc_stream_validator",
                    "fileName": "[FileName]",
                    "ReportLink": "[MSVReportURL]",
                    "Summary": "[BatonSummary]",
                    "Result": "[Success|Failure]"
                }
            ]
        }
        // report fields
    }
}