Class: Stream
Defined in: src/lib/stream.ts:51
Media stream within a format context.
Represents a single stream (video, audio, subtitle, etc.) within a media container. Contains stream-specific information including codec parameters, timing information, metadata, and disposition flags. Each stream in a file has a unique index and may contain packets of compressed data.
Direct mapping to FFmpeg's AVStream.
Example
import { FormatContext, FFmpegError } from 'node-av';
import { AVMEDIA_TYPE_VIDEO, AVMEDIA_TYPE_AUDIO } from 'node-av/constants';
// Access streams from format context
const formatContext = new FormatContext();
await formatContext.openInput('video.mp4');
// Iterate through streams
for (let i = 0; i < formatContext.nbStreams; i++) {
const stream = formatContext.streams[i];
const codecpar = stream.codecpar;
if (codecpar.codecType === AVMEDIA_TYPE_VIDEO) {
console.log(`Video stream ${stream.index}:`);
console.log(` Codec: ${codecpar.codecId}`);
console.log(` Resolution: ${codecpar.width}x${codecpar.height}`);
console.log(` Frame rate: ${stream.avgFrameRate.num}/${stream.avgFrameRate.den}`);
} else if (codecpar.codecType === AVMEDIA_TYPE_AUDIO) {
console.log(`Audio stream ${stream.index}:`);
console.log(` Sample rate: ${codecpar.sampleRate} Hz`);
console.log(` Channels: ${codecpar.channels}`);
}
}See
- AVStream - FFmpeg Doxygen
- FormatContext For container operations
- CodecParameters For codec configuration
Implements
Constructors
Constructor
new Stream(
native):Stream
Defined in: src/lib/stream.ts:62
Internal
Parameters
native
The native stream instance
Returns
Stream
Accessors
attachedPic
Get Signature
get attachedPic():
Packet|null
Defined in: src/lib/stream.ts:336
Attached picture.
For streams with AV_DISPOSITION_ATTACHED_PIC set, contains the attached picture (e.g., album art).
Direct mapping to AVStream->attached_pic.
Returns
Packet | null
avgFrameRate
Get Signature
get avgFrameRate():
Rational
Defined in: src/lib/stream.ts:245
Average frame rate.
Average framerate of the stream. 0/1 if unknown or variable frame rate.
Direct mapping to AVStream->avg_frame_rate.
Returns
Set Signature
set avgFrameRate(
value):void
Defined in: src/lib/stream.ts:254
Parameters
value
Returns
void
codecpar
Get Signature
get codecpar():
CodecParameters
Defined in: src/lib/stream.ts:102
Codec parameters.
Contains essential codec configuration for this stream. Used to initialize decoders and describe stream properties.
Direct mapping to AVStream->codecpar.
Returns
Set Signature
set codecpar(
value):void
Defined in: src/lib/stream.ts:115
Parameters
value
Returns
void
discard
Get Signature
get discard():
AVDiscard
Defined in: src/lib/stream.ts:212
Discard setting.
Indicates which packets can be discarded during demuxing. Used to skip non-essential packets for performance.
Direct mapping to AVStream->discard.
Returns
Set Signature
set discard(
value):void
Defined in: src/lib/stream.ts:216
Parameters
value
Returns
void
disposition
Get Signature
get disposition():
AVDisposition
Defined in: src/lib/stream.ts:196
Stream disposition flags.
Combination of AV_DISPOSITION_* flags indicating stream properties (e.g., default, forced subtitles, visual impaired, etc.).
Direct mapping to AVStream->disposition.
Returns
Set Signature
set disposition(
value):void
Defined in: src/lib/stream.ts:200
Parameters
value
Returns
void
duration
Get Signature
get duration():
bigint
Defined in: src/lib/stream.ts:164
Stream duration.
Total duration in stream time base units. AV_NOPTS_VALUE if unknown.
Direct mapping to AVStream->duration.
Returns
bigint
Set Signature
set duration(
value):void
Defined in: src/lib/stream.ts:168
Parameters
value
bigint
Returns
void
eventFlags
Get Signature
get eventFlags():
AVStreamEventFlag
Defined in: src/lib/stream.ts:348
Event flags.
Flags indicating events that happened to the stream. Used for signaling format changes.
Direct mapping to AVStream->event_flags.
Returns
Set Signature
set eventFlags(
value):void
Defined in: src/lib/stream.ts:352
Parameters
value
Returns
void
id
Get Signature
get id():
number
Defined in: src/lib/stream.ts:86
Stream ID.
Format-specific stream identifier. May be used by some formats for internal stream identification.
Direct mapping to AVStream->id.
Returns
number
Set Signature
set id(
value):void
Defined in: src/lib/stream.ts:90
Parameters
value
number
Returns
void
index
Get Signature
get index():
number
Defined in: src/lib/stream.ts:74
Stream index.
Zero-based index of this stream in the format context. Used to identify packets belonging to this stream.
Direct mapping to AVStream->index.
Returns
number
metadata
Get Signature
get metadata():
Dictionary|null
Defined in: src/lib/stream.ts:303
Stream metadata.
Dictionary containing stream-specific metadata (e.g., language, title, encoder settings).
Direct mapping to AVStream->metadata.
Returns
Dictionary | null
Set Signature
set metadata(
value):void
Defined in: src/lib/stream.ts:323
Parameters
value
Dictionary | null
Returns
void
nbFrames
Get Signature
get nbFrames():
bigint
Defined in: src/lib/stream.ts:180
Number of frames.
Total number of frames in this stream. 0 if unknown.
Direct mapping to AVStream->nb_frames.
Returns
bigint
Set Signature
set nbFrames(
value):void
Defined in: src/lib/stream.ts:184
Parameters
value
bigint
Returns
void
parser
Get Signature
get parser():
CodecParser|null
Defined in: src/lib/stream.ts:378
Get the codec parser attached to this stream.
Returns the parser context if the stream has an active parser, null otherwise. Parsers are automatically created by FFmpeg for certain formats and codecs. Useful for accessing parser state like repeat_pict for interlaced video.
Direct mapping to av_stream_get_parser().
Example
const parser = stream.parser;
if (parser) {
const fields = 1 + parser.repeatPict;
console.log(`Frame uses ${fields} fields`);
}See
CodecParser For parser details
Returns
CodecParser | null
Parser context or null if no parser attached
ptsWrapBits
Get Signature
get ptsWrapBits():
number
Defined in: src/lib/stream.ts:287
Number of bits for PTS wrap-around detection.
Used for timestamp wrap-around correction in formats with limited timestamp bits. Common values: 33 (MPEG-TS), 31 (DVB), 64 (no wrapping).
Direct mapping to AVStream->pts_wrap_bits.
Returns
number
Set Signature
set ptsWrapBits(
value):void
Defined in: src/lib/stream.ts:291
Parameters
value
number
Returns
void
rFrameRate
Get Signature
get rFrameRate():
Rational
Defined in: src/lib/stream.ts:266
Real frame rate.
Real base frame rate of the stream. This is the lowest common multiple of all frame rates in the stream.
Direct mapping to AVStream->r_frame_rate.
Returns
Set Signature
set rFrameRate(
value):void
Defined in: src/lib/stream.ts:275
Parameters
value
Returns
void
sampleAspectRatio
Get Signature
get sampleAspectRatio():
Rational
Defined in: src/lib/stream.ts:228
Sample aspect ratio.
Pixel aspect ratio for video streams. 0/1 if unknown or not applicable.
Direct mapping to AVStream->sample_aspect_ratio.
Returns
Set Signature
set sampleAspectRatio(
value):void
Defined in: src/lib/stream.ts:233
Parameters
value
Returns
void
startTime
Get Signature
get startTime():
bigint
Defined in: src/lib/stream.ts:148
Start time.
First timestamp of the stream in stream time base units. AV_NOPTS_VALUE if unknown.
Direct mapping to AVStream->start_time.
Returns
bigint
Set Signature
set startTime(
value):void
Defined in: src/lib/stream.ts:152
Parameters
value
bigint
Returns
void
timeBase
Get Signature
get timeBase():
Rational
Defined in: src/lib/stream.ts:131
Stream time base.
Unit of time for timestamps in this stream. All timestamps (PTS/DTS) are in units of this time base.
Direct mapping to AVStream->time_base.
Returns
Set Signature
set timeBase(
value):void
Defined in: src/lib/stream.ts:136
Parameters
value
Returns
void
Methods
clearDisposition()
clearDisposition(...
flags):void
Defined in: src/lib/stream.ts:527
Clear stream disposition flags.
Clears one or more disposition flags using bitwise AND NOT. Allows clearing multiple flags without manually performing bitwise operations.
Parameters
flags
...AVDisposition[]
One or more disposition flag values to clear
Returns
void
Example
import { AV_DISPOSITION_FORCED } from 'node-av/constants';
// Clear specific disposition flag
stream.clearDisposition(AV_DISPOSITION_FORCED);See
- setDisposition To set disposition flags
- hasDisposition To check disposition flags
- disposition For direct disposition flag access
clearEventFlags()
clearEventFlags(...
flags):void
Defined in: src/lib/stream.ts:444
Clear stream event flags.
Clears one or more event flags using bitwise AND NOT. Allows clearing multiple flags without manually performing bitwise operations.
Parameters
flags
...AVStreamEventFlag[]
One or more event flag values to clear
Returns
void
Example
import { AVSTREAM_EVENT_FLAG_METADATA_UPDATED } from 'node-av/constants';
// Clear specific event flag
stream.clearEventFlags(AVSTREAM_EVENT_FLAG_METADATA_UPDATED);See
- setEventFlags To set event flags
- hasEventFlags To check event flags
- eventFlags For direct event flag access
getNative()
getNative():
NativeStream
Defined in: src/lib/stream.ts:571
Internal
Get the underlying native Stream object.
Returns
The native Stream binding object
Implementation of
hasDisposition()
hasDisposition(...
flags):boolean
Defined in: src/lib/stream.ts:555
Check if stream has specific disposition flags.
Tests whether all specified disposition flags are set using bitwise AND.
Parameters
flags
...AVDisposition[]
One or more disposition flag values to check
Returns
boolean
true if all specified disposition flags are set, false otherwise
Example
import { AV_DISPOSITION_DEFAULT } from 'node-av/constants';
if (stream.hasDisposition(AV_DISPOSITION_DEFAULT)) {
console.log('Stream is marked as default');
}See
- setDisposition To set disposition flags
- clearDisposition To unset disposition flags
- disposition For direct disposition flag access
hasEventFlags()
hasEventFlags(...
flags):boolean
Defined in: src/lib/stream.ts:472
Check if stream has specific event flags.
Tests whether all specified event flags are set using bitwise AND.
Parameters
flags
...AVStreamEventFlag[]
One or more event flag values to check
Returns
boolean
true if all specified event flags are set, false otherwise
Example
import { AVSTREAM_EVENT_FLAG_METADATA_UPDATED } from 'node-av/constants';
if (stream.hasEventFlags(AVSTREAM_EVENT_FLAG_METADATA_UPDATED)) {
console.log('Stream metadata was updated');
}See
- setEventFlags To set event flags
- clearEventFlags To unset event flags
- eventFlags For direct event flag access
setDisposition()
setDisposition(...
flags):void
Defined in: src/lib/stream.ts:501
Set stream disposition flags.
Sets one or more disposition flags using bitwise OR. Allows setting multiple flags without manually performing bitwise operations.
Parameters
flags
...AVDisposition[]
One or more disposition flag values to set
Returns
void
Example
import { AV_DISPOSITION_DEFAULT, AV_DISPOSITION_FORCED } from 'node-av/constants';
// Set multiple disposition flags at once
stream.setDisposition(AV_DISPOSITION_DEFAULT, AV_DISPOSITION_FORCED);See
- clearDisposition To unset disposition flags
- hasDisposition To check disposition flags
- disposition For direct disposition flag access
setEventFlags()
setEventFlags(...
flags):void
Defined in: src/lib/stream.ts:418
Set stream event flags.
Sets one or more event flags using bitwise OR. Allows setting multiple flags without manually performing bitwise operations.
Parameters
flags
...AVStreamEventFlag[]
One or more event flag values to set
Returns
void
Example
import { AVSTREAM_EVENT_FLAG_METADATA_UPDATED, AVSTREAM_EVENT_FLAG_NEW_PACKETS } from 'node-av/constants';
// Set multiple event flags at once
stream.setEventFlags(AVSTREAM_EVENT_FLAG_METADATA_UPDATED, AVSTREAM_EVENT_FLAG_NEW_PACKETS);See
- clearEventFlags To unset event flags
- hasEventFlags To check event flags
- eventFlags For direct event flag access
