Skip to content

node-av / lib / OutputFormat

Class: OutputFormat ​

Defined in: src/lib/output-format.ts:46

Output format descriptor for muxing media files.

Represents a muxer that can write specific media container formats. Each format handles specific file types (e.g., MP4, MKV, AVI) and knows how to combine streams and write them to output. Contains default codec suggestions for audio, video, and subtitles.

Direct mapping to FFmpeg's AVOutputFormat.

Example ​

typescript
import { OutputFormat, FormatContext, FFmpegError } from 'node-av';
import { AV_CODEC_ID_H264, AV_CODEC_ID_AAC } from 'node-av/constants';

// Guess format from filename
const format = OutputFormat.guessFormat(null, 'output.mp4', null);
if (!format) {
  throw new Error('Could not determine output format');
}

console.log(`Format: ${format.name}`);
console.log(`Description: ${format.longName}`);
console.log(`Default video codec: ${format.videoCodec}`);
console.log(`Default audio codec: ${format.audioCodec}`);

// Use specific format
const mkvFormat = OutputFormat.guessFormat('matroska', null, null);

// Use with format context
const formatContext = new FormatContext();
formatContext.outputFormat = format;
const ret = await formatContext.allocOutputContext('output.mp4');
FFmpegError.throwIfError(ret, 'allocOutputContext');

See ​

Implements ​

Constructors ​

Constructor ​

new OutputFormat(native): OutputFormat

Defined in: src/lib/output-format.ts:54

Internal

Parameters ​

native ​

NativeOutputFormat

The native output format instance

Returns ​

OutputFormat

Accessors ​

audioCodec ​

Get Signature ​

get audioCodec(): AVCodecID

Defined in: src/lib/output-format.ts:152

Default audio codec.

Suggested audio codec for this format.

Direct mapping to AVOutputFormat->audio_codec.

Returns ​

AVCodecID


extensions ​

Get Signature ​

get extensions(): string | null

Defined in: src/lib/output-format.ts:130

File extensions.

Comma-separated list of file extensions for this format.

Direct mapping to AVOutputFormat->extensions.

Returns ​

string | null


flags ​

Get Signature ​

get flags(): AVFormatFlag

Defined in: src/lib/output-format.ts:185

Format flags.

Combination of AVFMT_* flags indicating format capabilities.

Direct mapping to AVOutputFormat->flags.

Returns ​

AVFormatFlag


longName ​

Get Signature ​

get longName(): string | null

Defined in: src/lib/output-format.ts:119

Format long name.

Human-readable description of the format.

Direct mapping to AVOutputFormat->long_name.

Returns ​

string | null


mimeType ​

Get Signature ​

get mimeType(): string | null

Defined in: src/lib/output-format.ts:141

MIME type.

MIME type(s) associated with this format.

Direct mapping to AVOutputFormat->mime_type.

Returns ​

string | null


name ​

Get Signature ​

get name(): string | null

Defined in: src/lib/output-format.ts:108

Format short name.

Short identifier for the format (e.g., 'mp4', 'mkv').

Direct mapping to AVOutputFormat->name.

Returns ​

string | null


subtitleCodec ​

Get Signature ​

get subtitleCodec(): AVCodecID

Defined in: src/lib/output-format.ts:174

Default subtitle codec.

Suggested subtitle codec for this format.

Direct mapping to AVOutputFormat->subtitle_codec.

Returns ​

AVCodecID


videoCodec ​

Get Signature ​

get videoCodec(): AVCodecID

Defined in: src/lib/output-format.ts:163

Default video codec.

Suggested video codec for this format.

Direct mapping to AVOutputFormat->video_codec.

Returns ​

AVCodecID

Methods ​

getCodecId() ​

getCodecId(tag): AVCodecID

Defined in: src/lib/output-format.ts:262

Get the codec a codec tag stands for in this format.

Looks the tag up in the format's codec tag table.

Direct mapping to av_codec_get_id() on AVOutputFormat->codec_tag.

Parameters ​

tag ​

number

Codec tag (FourCC)

Returns ​

AVCodecID

The codec, or AV_CODEC_ID_NONE if the format does not know the tag

Example ​

typescript
const mkv = OutputFormat.guessFormat('matroska', null, null);
const id = mkv?.getCodecId(stream.codecpar.codecTag);

See ​

getCodecTag For the reverse lookup


getCodecTag() ​

getCodecTag(codecId): number | null

Defined in: src/lib/output-format.ts:239

Get the codec tag this format stores for a codec.

Looks the codec up in the format's codec tag table.

Direct mapping to av_codec_get_tag2() on AVOutputFormat->codec_tag.

Parameters ​

codecId ​

AVCodecID

Codec to look up

Returns ​

number | null

The tag (FourCC), or null if the format has no tag for this codec

Example ​

typescript
import { AV_CODEC_ID_H264 } from 'node-av/constants';

const mp4 = OutputFormat.guessFormat('mp4', null, null);
console.log(mp4?.getCodecTag(AV_CODEC_ID_H264)); // 0x31637661 ('avc1')

See ​

getCodecId For the reverse lookup


getNative() ​

getNative(): NativeOutputFormat

Defined in: src/lib/output-format.ts:273

Internal

Get the underlying native OutputFormat object.

Returns ​

NativeOutputFormat

The native OutputFormat binding object

Implementation of ​

NativeWrapper.getNative


hasFlags() ​

hasFlags(...flags): boolean

Defined in: src/lib/output-format.ts:209

Check if output format has specific flags.

Tests whether all specified flags are set using bitwise AND.

Parameters ​

flags ​

...(AVFormatFlag | AVFormatConstants)[]

One or more flag values to check

Returns ​

boolean

true if all specified flags are set, false otherwise

Example ​

typescript
import { AVFMT_GLOBALHEADER } from 'node-av/constants';

if (outputFormat.hasFlags(AVFMT_GLOBALHEADER)) {
  console.log('This format requires global headers');
}

See ​

flags For direct flags access


guessFormat() ​

static guessFormat(shortName, filename, mimeType): OutputFormat | null

Defined in: src/lib/output-format.ts:93

Guess output format from name, filename, or MIME type.

Determines the appropriate output format based on provided hints. At least one parameter should be non-null.

Direct mapping to av_guess_format().

Parameters ​

shortName ​

string | null

Format short name (e.g., 'mp4', 'mkv', null to ignore)

filename ​

string | null

Output filename for extension detection (null to ignore)

mimeType ​

string | null

MIME type hint (null to ignore)

Returns ​

OutputFormat | null

Detected format, or null if not determined

Example ​

typescript
// Guess from filename extension
const format1 = OutputFormat.guessFormat(null, 'video.mp4', null);
// Returns MP4 format

// Use specific format
const format2 = OutputFormat.guessFormat('matroska', null, null);
// Returns MKV format

// Guess from MIME type
const format3 = OutputFormat.guessFormat(null, null, 'video/mp4');
// Returns MP4 format

// Priority: shortName > filename > mimeType
const format4 = OutputFormat.guessFormat('mkv', 'video.mp4', null);
// Returns MKV format (shortName takes precedence)