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
container
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