Skip to content

node-av / lib / OptionMember

Interface: OptionMember<T>

Defined in: src/lib/option.ts:1058

Base class for FFmpeg objects that support AVOptions.

Provides a common interface for getting, setting, and listing options on FFmpeg objects that have an AVClass structure. This includes codecs, formats, filters, and various processing contexts.

Classes that support AVOptions should extend this class to inherit the option management functionality.

Example

typescript
import { OptionMember, FFmpegError } from 'node-av';
import { AV_OPT_TYPE_INT, AV_OPT_TYPE_STRING, AV_OPT_TYPE_RATIONAL } from 'node-av/constants';

class CodecContext extends OptionMember<NativeCodecContext> {
  constructor(native: NativeCodecContext) {
    super(native);
  }
}

// Use inherited methods
const codec = new CodecContext(native);

// Set options with automatic type handling
let ret = codec.setOption('preset', 'fast');
FFmpegError.throwIfError(ret, 'set preset');

ret = codec.setOption('bitrate', 2000000, AV_OPT_TYPE_INT);
FFmpegError.throwIfError(ret, 'set bitrate');

ret = codec.setOption('framerate', { num: 30, den: 1 }, AV_OPT_TYPE_RATIONAL);
FFmpegError.throwIfError(ret, 'set framerate');

// Get typed options
const preset = codec.getOption('preset');
const bitrate = codec.getOption('bitrate', AV_OPT_TYPE_INT);
const framerate = codec.getOption('framerate', AV_OPT_TYPE_RATIONAL);

// List all available options
const options = codec.listOptions();
for (const opt of options) {
  console.log(`${opt.name}: ${opt.help}`);
}

See

Extended by

Type Parameters

T

T extends OptionCapableObject

The native FFmpeg object type that supports AVOptions

Properties

native

protected native: T

Defined in: src/lib/option.ts:1059

Methods

getOption()

Get an option value from this object.

Uses the AVOption API to retrieve options.

Direct mapping to av_opt_get* functions.

Param

name

Option name

Param

type

Option type (defaults to AV_OPT_TYPE_STRING)

Param

searchFlags

Search flags (default: AV_OPT_SEARCH_CHILDREN)

Example

typescript
import { AV_OPT_TYPE_STRING, AV_OPT_TYPE_RATIONAL, AV_OPT_TYPE_PIXEL_FMT, AV_OPT_TYPE_INT64 } from 'node-av/constants';

// String options (default)
const preset = obj.getOption('preset');
const codec = obj.getOption('codec', AV_OPT_TYPE_STRING);

// Typed options
const framerate = obj.getOption('framerate', AV_OPT_TYPE_RATIONAL); // Returns {num, den}
const pixFmt = obj.getOption('pix_fmt', AV_OPT_TYPE_PIXEL_FMT); // Returns AVPixelFormat
const bitrate = obj.getOption('bitrate', AV_OPT_TYPE_INT64); // Returns bigint

Call Signature

getOption(name, type?, searchFlags?): string | null

Defined in: src/lib/option.ts:1288

Parameters
name

string

type?

AVOptionTypeString

searchFlags?

AVOptionSearchFlags

Returns

string | null

Call Signature

getOption(name, type, searchFlags?): string | null

Defined in: src/lib/option.ts:1289

Parameters
name

string

type

AVOptionTypeColor

searchFlags?

AVOptionSearchFlags

Returns

string | null

Call Signature

getOption(name, type, searchFlags?): number | null

Defined in: src/lib/option.ts:1292

Parameters
name

string

type

AVOptionTypeInt

searchFlags?

AVOptionSearchFlags

Returns

number | null

Call Signature

getOption(name, type, searchFlags?): bigint | null

Defined in: src/lib/option.ts:1293

Parameters
name

string

type

AVOptionTypeInt64

searchFlags?

AVOptionSearchFlags

Returns

bigint | null

Call Signature

getOption(name, type, searchFlags?): number | null

Defined in: src/lib/option.ts:1294

Parameters
name

string

type

AVOptionTypeUint

searchFlags?

AVOptionSearchFlags

Returns

number | null

Call Signature

getOption(name, type, searchFlags?): bigint | null

Defined in: src/lib/option.ts:1295

Parameters
name

string

type

AVOptionTypeUint64

searchFlags?

AVOptionSearchFlags

Returns

bigint | null

Call Signature

getOption(name, type, searchFlags?): number | null

Defined in: src/lib/option.ts:1296

Parameters
name

string

type

AVOptionTypeFlags

searchFlags?

AVOptionSearchFlags

Returns

number | null

Call Signature

getOption(name, type, searchFlags?): boolean | null

Defined in: src/lib/option.ts:1297

Parameters
name

string

type

AVOptionTypeBool

searchFlags?

AVOptionSearchFlags

Returns

boolean | null

Call Signature

getOption(name, type, searchFlags?): number | null

Defined in: src/lib/option.ts:1298

Parameters
name

string

type

AVOptionTypeDuration

searchFlags?

AVOptionSearchFlags

Returns

number | null

Call Signature

getOption(name, type, searchFlags?): number | null

Defined in: src/lib/option.ts:1299

Parameters
name

string

type

AVOptionTypeConst

searchFlags?

AVOptionSearchFlags

Returns

number | null

Call Signature

getOption(name, type, searchFlags?): number | null

Defined in: src/lib/option.ts:1302

Parameters
name

string

type

AVOptionTypeDouble

searchFlags?

AVOptionSearchFlags

Returns

number | null

Call Signature

getOption(name, type, searchFlags?): number | null

Defined in: src/lib/option.ts:1303

Parameters
name

string

type

AVOptionTypeFloat

searchFlags?

AVOptionSearchFlags

Returns

number | null

Call Signature

getOption(name, type, searchFlags?): IRational | null

Defined in: src/lib/option.ts:1306

Parameters
name

string

type

AVOptionTypeRational

searchFlags?

AVOptionSearchFlags

Returns

IRational | null

Call Signature

getOption(name, type, searchFlags?): IRational | null

Defined in: src/lib/option.ts:1307

Parameters
name

string

type

AVOptionTypeVideoRate

searchFlags?

AVOptionSearchFlags

Returns

IRational | null

Call Signature

getOption(name, type, searchFlags?): AVPixelFormat | null

Defined in: src/lib/option.ts:1308

Parameters
name

string

type

AVOptionTypePixelFmt

searchFlags?

AVOptionSearchFlags

Returns

AVPixelFormat | null

Call Signature

getOption(name, type, searchFlags?): AVSampleFormat | null

Defined in: src/lib/option.ts:1309

Parameters
name

string

type

AVOptionTypeSampleFmt

searchFlags?

AVOptionSearchFlags

Returns

AVSampleFormat | null

Call Signature

getOption(name, type, searchFlags?): IDimension | null

Defined in: src/lib/option.ts:1310

Parameters
name

string

type

AVOptionTypeImageSize

searchFlags?

AVOptionSearchFlags

Returns

IDimension | null

Call Signature

getOption(name, type, searchFlags?): ChannelLayout | null

Defined in: src/lib/option.ts:1311

Parameters
name

string

type

AVOptionTypeChLayout

searchFlags?

AVOptionSearchFlags

Returns

ChannelLayout | null

Call Signature

getOption(name, type, searchFlags?): Dictionary | null

Defined in: src/lib/option.ts:1312

Parameters
name

string

type

AVOptionTypeDict

searchFlags?

AVOptionSearchFlags

Returns

Dictionary | null

Call Signature

getOption(name, type, searchFlags?): string | null

Defined in: src/lib/option.ts:1313

Parameters
name

string

type

AVOptionTypeBinary

searchFlags?

AVOptionSearchFlags

Returns

string | null


listOptions()

listOptions(): OptionInfo[]

Defined in: src/lib/option.ts:1428

List all available options for this object.

Uses the AVOption API to enumerate all options. Useful for discovering available settings and their types.

Direct mapping to av_opt_next() iteration.

Returns

OptionInfo[]

Array of option information objects

Example

typescript
const options = obj.listOptions();
for (const opt of options) {
  console.log(`${opt.name}: ${opt.help}`);
  console.log(`  Type: ${opt.type}, Default: ${opt.defaultValue}`);
  console.log(`  Range: ${opt.min} - ${opt.max}`);
}

See

OptionInfo For option metadata structure


setOption()

Set an option on this object.

Uses the AVOption API to set options. Available options depend on the specific object type.

Direct mapping to av_opt_set* functions.

Param

name

Option name

Param

value

Option value

Param

type

Option type; when omitted, the option's declared type is looked up via av_opt_find and the value converted accordingly

Param

searchFlags

Search flags (default: AV_OPT_SEARCH_CHILDREN)

Example

typescript
import { FFmpegError } from 'node-av';
import { AV_OPT_TYPE_STRING, AV_OPT_TYPE_INT64, AV_OPT_TYPE_RATIONAL, AV_OPT_TYPE_PIXEL_FMT } from 'node-av/constants';

// Untyped - the option's declared type is inferred
let ret = obj.setOption('preset', 'fast');
FFmpegError.throwIfError(ret, 'set preset');

ret = obj.setOption('codec', 'h264', AV_OPT_TYPE_STRING);
FFmpegError.throwIfError(ret, 'set codec');

// Integer options
ret = obj.setOption('bitrate', 2000000, AV_OPT_TYPE_INT64);
FFmpegError.throwIfError(ret, 'set bitrate');

ret = obj.setOption('threads', 4, AV_OPT_TYPE_INT);
FFmpegError.throwIfError(ret, 'set threads');

// Complex types with proper types
ret = obj.setOption('framerate', {num: 30, den: 1}, AV_OPT_TYPE_RATIONAL);
FFmpegError.throwIfError(ret, 'set framerate');

ret = obj.setOption('pix_fmt', AV_PIX_FMT_YUV420P, AV_OPT_TYPE_PIXEL_FMT);
FFmpegError.throwIfError(ret, 'set pixel format');

Call Signature

setOption(name, value): number

Defined in: src/lib/option.ts:1066

Parameters
name

string

value

string | number | bigint | boolean | null | undefined

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1067

Parameters
name

string

value

string

type

AVOptionTypeString

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1068

Parameters
name

string

value

string

type

AVOptionTypeColor

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1071

Parameters
name

string

value

number

type

AVOptionTypeInt

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1072

Parameters
name

string

value

bigint

type

AVOptionTypeInt64

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1073

Parameters
name

string

value

number

type

AVOptionTypeUint

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1074

Parameters
name

string

value

bigint

type

AVOptionTypeUint64

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1075

Parameters
name

string

value

number

type

AVOptionTypeFlags

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1076

Parameters
name

string

value

boolean

type

AVOptionTypeBool

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1077

Parameters
name

string

value

number

type

AVOptionTypeDuration

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1078

Parameters
name

string

value

number

type

AVOptionTypeConst

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1081

Parameters
name

string

value

number

type

AVOptionTypeDouble

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1082

Parameters
name

string

value

number

type

AVOptionTypeFloat

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1085

Parameters
name

string

value

IRational

type

AVOptionTypeRational

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1086

Parameters
name

string

value

IRational

type

AVOptionTypeVideoRate

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1087

Parameters
name

string

value

AVPixelFormat

type

AVOptionTypePixelFmt

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1088

Parameters
name

string

value

AVSampleFormat

type

AVOptionTypeSampleFmt

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1089

Parameters
name

string

value

IDimension

type

AVOptionTypeImageSize

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1090

Parameters
name

string

value

number | bigint

type

AVOptionTypeChLayout

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1091

Parameters
name

string

value

Buffer

type

AVOptionTypeBinary

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1092

Parameters
name

string

value

number[]

type

AVOptionTypeBinaryIntArray

searchFlags?

AVOptionSearchFlags

Returns

number

Call Signature

setOption(name, value, type, searchFlags?): number

Defined in: src/lib/option.ts:1093

Parameters
name

string

value

Dictionary

type

AVOptionTypeDict

searchFlags?

AVOptionSearchFlags

Returns

number