Streams¶
-
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 alist
.Positional arguments may be
int
(which is an index into the streams), orlist
ortuple
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 :method:`.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
-
class
av.stream.
Stream
¶ Bases:
object
-
average_rate
¶
-
codec_context
¶
-
decode
(packet=None, count=0)¶
-
duration
¶
-
encode
(frame=None)¶
-
frames
¶
-
id
¶
-
index
¶
-
language
¶
-
metadata
¶
-
profile
¶
-
seek
(offset, whence='time', backward=True, any_frame=False)¶ See also
InputContainer.seek()
for documentation on parameters. The only difference is thatoffset
will be interpreted inStream.time_base
whenwhence == 'time'
.
-
start_time
¶
-
time_base
¶
-