node-av / lib / CodecParameters
Class: CodecParameters
Defined in: src/lib/codec-parameters.ts:60
Codec parameters for stream configuration.
Stores essential codec parameters without requiring a full codec context. Used to describe stream properties in containers, transfer codec configuration between contexts, and initialize decoders/encoders. Contains format, dimensions, sample rates, and other codec-specific parameters.
Direct mapping to FFmpeg's AVCodecParameters.
Example
import { CodecParameters, CodecContext, FFmpegError } from 'node-av';
// Create and allocate parameters
const params = new CodecParameters();
params.alloc();
// Copy from stream
const stream = formatContext.streams[0];
const ret = stream.codecpar.copy(params);
FFmpegError.throwIfError(ret, 'copy');
// Transfer to codec context
const ret2 = params.toContext(codecContext);
FFmpegError.throwIfError(ret2, 'toContext');
// Get parameters info
console.log(`Codec: ${params.codecId}`);
console.log(`Dimensions: ${params.width}x${params.height}`);
console.log(`Bitrate: ${params.bitRate}`);See
- AVCodecParameters - FFmpeg Doxygen
- CodecContext For full codec operations
- Stream For stream parameters
Implements
Constructors
Constructor
new CodecParameters():
CodecParameters
Defined in: src/lib/codec-parameters.ts:63
Returns
CodecParameters
Accessors
bitRate
Get Signature
get bitRate():
bigint
Defined in: src/lib/codec-parameters.ts:178
Bit rate.
Average bitrate in bits per second.
Direct mapping to AVCodecParameters->bit_rate.
Returns
bigint
Set Signature
set bitRate(
value):void
Defined in: src/lib/codec-parameters.ts:182
Parameters
value
bigint
Returns
void
bitsPerCodedSample
Get Signature
get bitsPerCodedSample():
number
Defined in: src/lib/codec-parameters.ts:194
Number of bits per coded sample.
Bits per sample/pixel from the demuxer (needed by some codecs). For uncompressed formats, this is the bits per sample.
Direct mapping to AVCodecParameters->bits_per_coded_sample.
Returns
number
Set Signature
set bitsPerCodedSample(
value):void
Defined in: src/lib/codec-parameters.ts:198
Parameters
value
number
Returns
void
bitsPerRawSample
Get Signature
get bitsPerRawSample():
number
Defined in: src/lib/codec-parameters.ts:210
Number of bits per raw sample.
Bits per sample before compression/encoding. Only set when different from bitsPerCodedSample.
Direct mapping to AVCodecParameters->bits_per_raw_sample.
Returns
number
Set Signature
set bitsPerRawSample(
value):void
Defined in: src/lib/codec-parameters.ts:214
Parameters
value
number
Returns
void
channelLayout
Get Signature
get channelLayout():
ChannelLayout
Defined in: src/lib/codec-parameters.ts:392
Audio channel layout.
Configuration of audio channels.
Direct mapping to AVCodecParameters->ch_layout.
Returns
Set Signature
set channelLayout(
value):void
Defined in: src/lib/codec-parameters.ts:396
Parameters
value
Returns
void
channels
Get Signature
get channels():
number
Defined in: src/lib/codec-parameters.ts:407
Number of audio channels.
Deprecated
Use channelLayout.nbChannels instead
Direct mapping to AVCodecParameters->channels.
Returns
number
Set Signature
set channels(
value):void
Defined in: src/lib/codec-parameters.ts:411
Parameters
value
number
Returns
void
chromaLocation
Get Signature
get chromaLocation():
AVChromaLocation
Defined in: src/lib/codec-parameters.ts:377
Chroma sample location.
Location of chroma samples.
Direct mapping to AVCodecParameters->chroma_location.
Returns
Set Signature
set chromaLocation(
value):void
Defined in: src/lib/codec-parameters.ts:381
Parameters
value
Returns
void
codecId
Get Signature
get codecId():
AVCodecID
Defined in: src/lib/codec-parameters.ts:89
Codec ID.
Specific codec identifier (e.g., AV_CODEC_ID_H264).
Direct mapping to AVCodecParameters->codec_id.
Returns
Set Signature
set codecId(
value):void
Defined in: src/lib/codec-parameters.ts:93
Parameters
value
Returns
void
codecProperties
Get Signature
get codecProperties():
AVCodecProp
Defined in: src/lib/codec-parameters.ts:515
Codec properties.
Bitfield of AV_CODEC_PROP_* flags indicating codec features.
Direct mapping to AVCodecDescriptor->props.
Example
import { AV_CODEC_PROP_FIELDS } from 'node-av/constants';
const props = params.codecProperties;
if (props & AV_CODEC_PROP_FIELDS) {
console.log('Codec supports interlaced video (fields)');
}See
hasProperties For checking specific properties
Returns
codecTag
Get Signature
get codecTag():
number
Defined in: src/lib/codec-parameters.ts:104
Codec tag.
Additional codec tag used by some formats.
Direct mapping to AVCodecParameters->codec_tag.
Returns
number
Set Signature
set codecTag(
value):void
Defined in: src/lib/codec-parameters.ts:108
Parameters
value
string | number
Returns
void
codecTagString
Get Signature
get codecTagString():
string|null
Defined in: src/lib/codec-parameters.ts:126
Codec tag as string (FourCC).
Human-readable string representation of the codec tag. Returns the FourCC (Four Character Code) format.
Returns
string | null
codecType
Get Signature
get codecType():
AVMediaType
Defined in: src/lib/codec-parameters.ts:74
Codec type.
Media type (video, audio, subtitle, etc.).
Direct mapping to AVCodecParameters->codec_type.
Returns
Set Signature
set codecType(
value):void
Defined in: src/lib/codec-parameters.ts:78
Parameters
value
Returns
void
colorPrimaries
Get Signature
get colorPrimaries():
AVColorPrimaries
Defined in: src/lib/codec-parameters.ts:332
Color primaries.
Chromaticity coordinates of source primaries.
Direct mapping to AVCodecParameters->color_primaries.
Returns
Set Signature
set colorPrimaries(
value):void
Defined in: src/lib/codec-parameters.ts:336
Parameters
value
Returns
void
colorRange
Get Signature
get colorRange():
AVColorRange
Defined in: src/lib/codec-parameters.ts:317
Color range.
MPEG (limited) or JPEG (full) range.
Direct mapping to AVCodecParameters->color_range.
Returns
Set Signature
set colorRange(
value):void
Defined in: src/lib/codec-parameters.ts:321
Parameters
value
Returns
void
colorSpace
Get Signature
get colorSpace():
AVColorSpace
Defined in: src/lib/codec-parameters.ts:362
Color space.
YUV colorspace type.
Direct mapping to AVCodecParameters->color_space.
Returns
Set Signature
set colorSpace(
value):void
Defined in: src/lib/codec-parameters.ts:366
Parameters
value
Returns
void
colorTrc
Get Signature
get colorTrc():
AVColorTransferCharacteristic
Defined in: src/lib/codec-parameters.ts:347
Color transfer characteristic.
Color transfer function (gamma).
Direct mapping to AVCodecParameters->color_trc.
Returns
Set Signature
set colorTrc(
value):void
Defined in: src/lib/codec-parameters.ts:351
Parameters
value
Returns
void
extradata
Get Signature
get extradata():
Buffer<ArrayBufferLike> |null
Defined in: src/lib/codec-parameters.ts:137
Extra codec data.
Codec-specific initialization data (e.g., H.264 SPS/PPS).
Direct mapping to AVCodecParameters->extradata.
Returns
Buffer<ArrayBufferLike> | null
Set Signature
set extradata(
value):void
Defined in: src/lib/codec-parameters.ts:141
Parameters
value
Buffer<ArrayBufferLike> | null
Returns
void
extradataSize
Get Signature
get extradataSize():
number
Defined in: src/lib/codec-parameters.ts:152
Extra data size.
Size of extradata buffer in bytes.
Direct mapping to AVCodecParameters->extradata_size.
Returns
number
format
Get Signature
get format():
AVPixelFormat|AVSampleFormat
Defined in: src/lib/codec-parameters.ts:163
Pixel or sample format.
Format of video pixels or audio samples.
Direct mapping to AVCodecParameters->format.
Returns
AVPixelFormat | AVSampleFormat
Set Signature
set format(
value):void
Defined in: src/lib/codec-parameters.ts:167
Parameters
value
AVPixelFormat | AVSampleFormat
Returns
void
frameRate
Get Signature
get frameRate():
Rational
Defined in: src/lib/codec-parameters.ts:301
Frame rate.
Video frame rate in frames per second.
Direct mapping to AVCodecParameters->framerate.
Returns
Set Signature
set frameRate(
value):void
Defined in: src/lib/codec-parameters.ts:306
Parameters
value
Returns
void
frameSize
Get Signature
get frameSize():
number
Defined in: src/lib/codec-parameters.ts:439
Audio frame size in samples.
Number of samples per audio frame for codecs with constant frame size. For AAC this is typically 1024, for MP3 it's 1152. For codecs with variable frame size, this may be 0.
Direct mapping to AVCodecParameters->frame_size.
Returns
number
Set Signature
set frameSize(
value):void
Defined in: src/lib/codec-parameters.ts:443
Parameters
value
number
Returns
void
height
Get Signature
get height():
number
Defined in: src/lib/codec-parameters.ts:270
Video height.
Height of video frames in pixels.
Direct mapping to AVCodecParameters->height.
Returns
number
Set Signature
set height(
value):void
Defined in: src/lib/codec-parameters.ts:274
Parameters
value
number
Returns
void
initialPadding
Get Signature
get initialPadding():
number
Defined in: src/lib/codec-parameters.ts:456
Initial audio padding.
Amount of padding (priming) samples at the beginning of the audio stream. For AAC encoding, this is typically 1024 samples. The muxer uses this value to correctly calculate packet timestamps.
Direct mapping to AVCodecParameters->initial_padding.
Returns
number
Set Signature
set initialPadding(
value):void
Defined in: src/lib/codec-parameters.ts:460
Parameters
value
number
Returns
void
level
Get Signature
get level():
number
Defined in: src/lib/codec-parameters.ts:240
Codec level.
Level within the profile.
Direct mapping to AVCodecParameters->level.
Returns
number
Set Signature
set level(
value):void
Defined in: src/lib/codec-parameters.ts:244
Parameters
value
number
Returns
void
nbCodedSideData
Get Signature
get nbCodedSideData():
number
Defined in: src/lib/codec-parameters.ts:492
Number of coded side data entries.
Returns the count of coded side data attached to codec parameters.
Example
console.log(`Codec has ${params.nbCodedSideData} side data entries`);Returns
number
Number of side data entries
profile
Get Signature
get profile():
AVProfile
Defined in: src/lib/codec-parameters.ts:225
Codec profile.
Profile level (e.g., baseline, main, high for H.264).
Direct mapping to AVCodecParameters->profile.
Returns
Set Signature
set profile(
value):void
Defined in: src/lib/codec-parameters.ts:229
Parameters
value
Returns
void
sampleAspectRatio
Get Signature
get sampleAspectRatio():
Rational
Defined in: src/lib/codec-parameters.ts:285
Sample aspect ratio.
Pixel aspect ratio for video.
Direct mapping to AVCodecParameters->sample_aspect_ratio.
Returns
Set Signature
set sampleAspectRatio(
value):void
Defined in: src/lib/codec-parameters.ts:290
Parameters
value
Returns
void
sampleRate
Get Signature
get sampleRate():
number
Defined in: src/lib/codec-parameters.ts:422
Audio sample rate.
Sample rate in Hz.
Direct mapping to AVCodecParameters->sample_rate.
Returns
number
Set Signature
set sampleRate(
value):void
Defined in: src/lib/codec-parameters.ts:426
Parameters
value
number
Returns
void
videoDelay
Get Signature
get videoDelay():
number
Defined in: src/lib/codec-parameters.ts:472
Video delay in frames.
Number of frames the decoded output will be delayed relative to the encoded input. Used for timestamp correction in video streams.
Direct mapping to AVCodecParameters->video_delay.
Returns
number
Set Signature
set videoDelay(
value):void
Defined in: src/lib/codec-parameters.ts:476
Parameters
value
number
Returns
void
width
Get Signature
get width():
number
Defined in: src/lib/codec-parameters.ts:255
Video width.
Width of video frames in pixels.
Direct mapping to AVCodecParameters->width.
Returns
number
Set Signature
set width(
value):void
Defined in: src/lib/codec-parameters.ts:259
Parameters
value
number
Returns
void
Methods
[dispose]()
[dispose]():
void
Defined in: src/lib/codec-parameters.ts:846
Dispose of the codec parameters.
Implements the Disposable interface for automatic cleanup.
Returns
void
Example
{
using params = new CodecParameters();
params.alloc();
// Use params...
} // Automatically disposed when leaving scopeaddCodedSideData()
addCodedSideData(
type,data):number
Defined in: src/lib/codec-parameters.ts:817
Add coded side data to codec parameters.
Attaches additional data to the codec parameters. The data is copied. Commonly used for HDR metadata, Dolby Vision configuration, etc.
Direct mapping to av_packet_side_data_add() for coded_side_data.
Parameters
type
Type of side data
data
Buffer
Side data buffer
Returns
number
0 on success, negative AVERROR on error
Example
import { FFmpegError } from 'node-av';
import { AV_PKT_DATA_DOVI_CONF } from 'node-av/constants';
// Add Dolby Vision configuration
const doviConf = Buffer.from([...]); // Dolby Vision config data
const ret = params.addCodedSideData(AV_PKT_DATA_DOVI_CONF, doviConf);
FFmpegError.throwIfError(ret, 'addCodedSideData');See
getCodedSideData To retrieve side data
alloc()
alloc():
void
Defined in: src/lib/codec-parameters.ts:571
Allocate codec parameters.
Allocates memory for the parameters structure.
Direct mapping to avcodec_parameters_alloc().
Returns
void
Throws
If allocation fails (ENOMEM)
Example
const params = new CodecParameters();
params.alloc();
// Parameters ready for useSee
free To deallocate
copy()
copy(
dst):number
Defined in: src/lib/codec-parameters.ts:617
Copy parameters to destination.
Copies all codec parameters to another instance.
Direct mapping to avcodec_parameters_copy().
Parameters
dst
CodecParameters
Destination parameters
Returns
number
0 on success, negative AVERROR on error:
- AVERROR_ENOMEM: Memory allocation failure
Example
import { FFmpegError } from 'node-av';
const dst = new CodecParameters();
dst.alloc();
const ret = src.copy(dst);
FFmpegError.throwIfError(ret, 'copy');free()
free():
void
Defined in: src/lib/codec-parameters.ts:591
Free codec parameters.
Releases all memory associated with the parameters.
Direct mapping to avcodec_parameters_free().
Returns
void
Example
params.free();
// Parameters now invalidSee
- alloc To allocate
- Symbol.dispose For automatic cleanup
fromContext()
fromContext(
codecContext):number
Defined in: src/lib/codec-parameters.ts:644
Fill parameters from codec context.
Extracts codec parameters from a configured codec context.
Direct mapping to avcodec_parameters_from_context().
Parameters
codecContext
Source codec context
Returns
number
0 on success, negative AVERROR on error:
- AVERROR_ENOMEM: Memory allocation failure
Example
import { FFmpegError } from 'node-av';
// Extract parameters from encoder
const ret = params.fromContext(encoderContext);
FFmpegError.throwIfError(ret, 'fromContext');See
toContext To apply to context
getAllCodedSideData()
getAllCodedSideData():
object[]
Defined in: src/lib/codec-parameters.ts:786
Get all coded side data entries.
Returns all side data attached to the codec parameters. Each entry contains the type and data buffer. This allows iteration over all side data like FFmpeg CLI does.
Direct mapping to accessing AVCodecParameters.coded_side_data array.
Returns
object[]
Array of side data entries with type and data
Example
// Iterate all side data like FFmpeg does (ffmpeg_mux_init.c)
const allSideData = params.getAllCodedSideData();
for (const sd of allSideData) {
console.log(`Type: ${sd.type}, Size: ${sd.data.length}`);
// Copy to output stream
outParams.addCodedSideData(sd.type, sd.data);
}See
- getCodedSideData To get specific side data by type
- addCodedSideData To add side data
- nbCodedSideData For count of side data entries
getCodedSideData()
getCodedSideData(
type):Buffer<ArrayBufferLike> |null
Defined in: src/lib/codec-parameters.ts:756
Get coded side data.
Retrieves additional data associated with the codec parameters (e.g., HDR metadata, Dolby Vision configuration, mastering display).
Direct mapping to accessing AVCodecParameters.coded_side_data.
Parameters
type
Type of side data to retrieve
Returns
Buffer<ArrayBufferLike> | null
Side data buffer, or null if not present
Example
import { AV_PKT_DATA_MASTERING_DISPLAY_METADATA } from 'node-av/constants';
// Get HDR mastering display metadata
const hdrData = params.getCodedSideData(AV_PKT_DATA_MASTERING_DISPLAY_METADATA);
if (hdrData) {
console.log(`HDR metadata: ${hdrData.length} bytes`);
}See
- addCodedSideData To add side data
- nbCodedSideData For count of side data entries
getNative()
getNative():
NativeCodecParameters
Defined in: src/lib/codec-parameters.ts:828
Internal
Get the underlying native CodecParameters object.
Returns
The native CodecParameters binding object
Implementation of
hasProperties()
hasProperties(...
props):boolean
Defined in: src/lib/codec-parameters.ts:544
Check if codec has specific properties.
Tests whether all specified properties are present using bitwise AND.
Parameters
props
...AVCodecProp[]
One or more property values to check
Returns
boolean
true if all specified properties are present, false otherwise
Example
import { AV_CODEC_PROP_FIELDS, AV_CODEC_PROP_REORDER } from 'node-av/constants';
if (params.hasProperties(AV_CODEC_PROP_FIELDS)) {
console.log('Codec supports interlaced video (fields)');
}
// Check multiple properties
if (params.hasProperties(AV_CODEC_PROP_LOSSY, AV_CODEC_PROP_REORDER)) {
console.log('Codec is lossy and supports frame reordering');
}See
codecProperties For direct properties access
parseExtradata()
parseExtradata():
number
Defined in: src/lib/codec-parameters.ts:708
Parse extradata to extract codec parameters.
Opens a decoder to parse extradata (SPS/PPS for H.264, etc.) and extract codec parameters like width/height for video or sample_rate for audio. This is used when extradata exists (e.g., from SDP sprop-parameter-sets) but dimensions are missing due to insufficient probesize.
Uses FFmpeg's decoder to parse extradata, same as avformat_find_stream_info() does internally. Works for all codecs (H.264, H.265, VP9, AV1, etc.).
Returns
number
0 on success, negative error code on failure
Example
import { FFmpegError } from 'node-av';
// After opening RTSP with low probesize
const input = await Demuxer.open('rtsp://...', {
options: { probesize: 32 }
});
const stream = input.video();
if (stream.codecpar.width === 0 && stream.codecpar.extradata) {
// Parse extradata to get dimensions
const ret = stream.codecpar.parseExtradata();
FFmpegError.throwIfError(ret, 'parseExtradata');
console.log(`Dimensions: ${stream.codecpar.width}x${stream.codecpar.height}`);
}toContext()
toContext(
codecContext):number
Defined in: src/lib/codec-parameters.ts:673
Apply parameters to codec context.
Configures a codec context with these parameters. Essential for initializing decoders with stream parameters.
Direct mapping to avcodec_parameters_to_context().
Parameters
codecContext
Destination codec context
Returns
number
0 on success, negative AVERROR on error:
- AVERROR_ENOMEM: Memory allocation failure
Example
import { FFmpegError } from 'node-av';
// Configure decoder with stream parameters
const stream = formatContext.streams[0];
const ret = stream.codecpar.toContext(decoderContext);
FFmpegError.throwIfError(ret, 'toContext');See
fromContext To extract from context
toJSON()
toJSON():
Record<string,any>
Defined in: src/lib/codec-parameters.ts:726
Convert to JSON representation.
Returns all codec parameters as a plain object. Useful for debugging and serialization.
Returns
Record<string, any>
Object with all parameter values
Example
const json = params.toJSON();
console.log(JSON.stringify(json, null, 2));