@bitmovin/api-sdk
Version:
Bitmovin JS/TS API SDK
224 lines (223 loc) • 7.59 kB
TypeScript
import AutoLevelSetup from './AutoLevelSetup';
import CodecConfigType from './CodecConfigType';
import PresetConfiguration from './PresetConfiguration';
import VideoConfiguration from './VideoConfiguration';
import Vp9AqMode from './Vp9AqMode';
import Vp9ArnrType from './Vp9ArnrType';
import Vp9DynamicRangeFormat from './Vp9DynamicRangeFormat';
import Vp9Quality from './Vp9Quality';
/**
* @export
* @class Vp9VideoConfiguration
*/
export declare class Vp9VideoConfiguration extends VideoConfiguration {
/**
* Discriminator property for CodecConfiguration
* @type {string}
* @memberof Vp9VideoConfiguration
*/
readonly type: CodecConfigType;
/**
* Choose from a set of preset configurations tailored for common use cases. Check out [VP9 Presets](https://bitmovin.com/docs/encoding/tutorials/vp9-presets) to see which values get applied by each preset. Explicitly setting a property to a different value will override the preset's value for that property.
* @type {PresetConfiguration}
* @memberof Vp9VideoConfiguration
*/
presetConfiguration?: PresetConfiguration;
/**
* Automatically configures the VP9 Video Codec to be compatible with the given SDR/HLG format. Bitmovin recommends to use the dynamic range format together with a preset configuration to achieve good results. Explicitly configured properties will take precedence over dynamic range format settings, which in turn will take precedence over preset configurations.
* @type {Vp9DynamicRangeFormat}
* @memberof Vp9VideoConfiguration
*/
dynamicRangeFormat?: Vp9DynamicRangeFormat;
/**
* Constant rate factor for quality-based variable bitrate. Either bitrate or crf is required.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
crf?: number;
/**
* Number of frames to look ahead for alternate reference frame selection.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
lagInFrames?: number;
/**
* Enables error resiliency feature
* @type {boolean}
* @memberof Vp9VideoConfiguration
*/
errorResiliencyEnabled?: boolean;
/**
* Number of tile columns to use, log2. Depending on the encoding width there are limitations on this value. The minimum values are 2 for width >= 1920 and 1 for width >= 1280. The minimum width of each tile is 256 pixels so the maximum values are 0 for width < 256, 1 for width < 512, 2 for width < 1024, 3 for width < 2048, 4 for width < 4096, 5 for width < 8192. If the value is too high or too low it will be overridden.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
tileColumns?: number;
/**
* Number of tile rows to use, log2.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
tileRows?: number;
/**
* Enable frame parallel decodability features
* @type {boolean}
* @memberof Vp9VideoConfiguration
*/
frameParallel?: boolean;
/**
* Maximum I-frame bitrate (percentage) 0=unlimited
* @type {number}
* @memberof Vp9VideoConfiguration
*/
maxIntraRate?: number;
/**
* Minimum quantization factor.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
qpMin?: number;
/**
* Maximum quantization factor.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
qpMax?: number;
/**
* Datarate undershoot (min) target (percentage).
* @type {number}
* @memberof Vp9VideoConfiguration
*/
rateUndershootPct?: number;
/**
* Datarate overshoot (max) target (percentage).
* @type {number}
* @memberof Vp9VideoConfiguration
*/
rateOvershootPct?: number;
/**
* Client buffer size (ms)
* @type {number}
* @memberof Vp9VideoConfiguration
*/
clientBufferSize?: number;
/**
* Client initial buffer size (ms)
* @type {number}
* @memberof Vp9VideoConfiguration
*/
clientInitialBufferSize?: number;
/**
* CBR/VBR bias (0=CBR, 100=VBR)
* @type {number}
* @memberof Vp9VideoConfiguration
*/
biasPct?: number;
/**
* Enable noise sensitivity on Y channel
* @type {boolean}
* @memberof Vp9VideoConfiguration
*/
noiseSensitivity?: boolean;
/**
* Controls the tradeoff between compression efficiency and encoding speed. Higher values indicate a faster encoding. The minimum value for width * height >= 1280 * 720 is 2. If the value is too low it will be overridden.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
cpuUsed?: number;
/**
* Enable automatic alternate reference frames (2pass only)
* @type {boolean}
* @memberof Vp9VideoConfiguration
*/
automaticAltRefFramesEnabled?: boolean;
/**
* Target level (255: off, 0: only keep level stats; 10: level 1.0; 11: level 1.1; ... 62: level 6.2)
* @type {number}
* @memberof Vp9VideoConfiguration
*/
targetLevel?: number;
/**
* Enable row based non-deterministic multi-threading
* @type {boolean}
* @memberof Vp9VideoConfiguration
*/
rowMultiThreadingEnabled?: boolean;
/**
* Loop filter sharpness.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
sharpness?: number;
/**
* Minimum GOP length, the minimum distance between I-frames.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
minGop?: number;
/**
* Maximum GOP length, the maximum distance between I-frames
* @type {number}
* @memberof Vp9VideoConfiguration
*/
maxGop?: number;
/**
* Minimum interval in seconds between key frames
* @type {number}
* @memberof Vp9VideoConfiguration
*/
minKeyframeInterval?: number;
/**
* Maximum interval in seconds between key frames
* @type {number}
* @memberof Vp9VideoConfiguration
*/
maxKeyframeInterval?: number;
/**
* @type {Vp9Quality}
* @memberof Vp9VideoConfiguration
*/
quality?: Vp9Quality;
/**
* Lossless mode
* @type {boolean}
* @memberof Vp9VideoConfiguration
*/
lossless?: boolean;
/**
* A change threshold on blocks below which they will be skipped by the encoder.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
staticThresh?: number;
/**
* @type {Vp9AqMode}
* @memberof Vp9VideoConfiguration
*/
aqMode?: Vp9AqMode;
/**
* altref noise reduction max frame count.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
arnrMaxFrames?: number;
/**
* altref noise reduction filter strength.
* @type {number}
* @memberof Vp9VideoConfiguration
*/
arnrStrength?: number;
/**
* @type {Vp9ArnrType}
* @memberof Vp9VideoConfiguration
*/
arnrType?: Vp9ArnrType;
/**
* Enable/disable automatic calculation of level, maxBitrate, and bufsize based on the least level that satisfies maximum property values for picture resolution, frame rate, and bit rate. In the case the target level is set explicitly, the maximum bitrate and buffer size are calculated based on the defined level. Explicitly setting rateOvershootPct, or clientBufferSize properties will disable the automatic calculation.
* @type {AutoLevelSetup}
* @memberof Vp9VideoConfiguration
*/
autoLevelSetup?: AutoLevelSetup;
constructor(obj?: Partial<Vp9VideoConfiguration>);
}
export default Vp9VideoConfiguration;