Streams

Stream collections

class av.container.streams.StreamContainer

Bases: object

A tuple-like container of Stream.

# There are a few ways to pulling out streams.
first = container.streams[0]
video = container.streams.video[0]
audio = container.streams.get(audio=(0, 1))

Dynamic Slicing

StreamContainer.get(streams=None, video=None, audio=None, subtitles=None, data=None)

Get a selection of Stream as a list.

Positional arguments may be int (which is an index into the streams), or list or tuple of those:

# Get the first channel.
streams.get(0)

# Get the first two audio channels.
streams.get(audio=(0, 1))

Keyword arguments (or dicts as positional arguments) as interpreted as (stream_type, index_value_or_set) pairs:

# Get the first video channel.
streams.get(video=0)
# or
streams.get({'video': 0})

Stream objects are passed through untouched.

If nothing is selected, then all streams are returned.

Typed Collections

These attributes are preferred for readability if you don’t need the dynamic capabilities of get():

StreamContainer.video

A tuple of VideoStream.

StreamContainer.audio

A tuple of AudioStream.

StreamContainer.subtitles

A tuple of SubtitleStream.

StreamContainer.data

A tuple of DataStream.

StreamContainer.other

A tuple of Stream

Streams

class av.stream.Stream

Bases: object

A single stream of audio, video or subtitles within a Container.

average_rate

The average frame rate of this stream.

Type:fractions.Fraction
codec_context
decode(packet=None)

Decode a Packet and return a list of AudioFrame or VideoFrame.

duration

The duration of this stream in time_base units.

Returns None if it is not known.

Type:int
encode(frame=None)

Encode an AudioFrame or VideoFrame and return a list of Packet.

frames

The number of frames this stream contains.

Returns 0 if it is not known.

Type:int
id

The format-specific ID of this stream.

Type:int
index

The index of this stream in its Container.

Type:int
language

The language of the stream.

Returns None if it is not known.

Type:str
metadata
profile

The profile of this stream.

Type:str
seek(offset, whence='time', backward=True, any_frame=False)

See also

InputContainer.seek() for documentation on parameters. The only difference is that offset will be interpreted in Stream.time_base when whence == 'time'.

Deprecated since version 6.1.0: Use InputContainer.seek() with stream argument instead.

start_time

The presentation timestamp in time_base units of the first frame in this stream.

Returns None if it is not known.

Type:int
time_base

The unit of time (in fractional seconds) in which timestamps are expressed.

Type:fractions.Fraction
type

The type of the stream.

Examples: ‘audio’, ‘video’, ‘subtitle’.

Type:str