Audio

Audio Streams

class av.audio.stream.AudioStream

Bases: av.stream.Stream

Audio Context

class av.audio.codeccontext.AudioCodecContext

Bases: av.codec.context.CodecContext

format

The audio sample format.

Type:AudioFormat
frame_size

Number of samples per channel in an audio frame.

Type:int
layout

The audio channel layout.

Type:AudioLayout
rate

Another name for sample_rate.

sample_rate

Sample rate of the audio data, in samples per second.

Type:int

Audio Formats

class av.audio.format.AudioFormat

Bases: object

Descriptor of audio formats.

bits

Number of bits per sample.

>>> SampleFormat('s16p').bits
16
bytes

Number of bytes per sample.

>>> SampleFormat('s16p').bytes
2
container_name

The name of a ContainerFormat which directly accepts this data.

Raises:ValueError – when planar, since there are no such containers.
is_packed

Is this a planar format?

Strictly opposite of is_planar.

is_planar

Is this a planar format?

Strictly opposite of is_packed.

name

Canonical name of the sample format.

>>> SampleFormat('s16p').name
's16p'
packed

The packed variant of this format.

Is itself when packed:

>>> fmt = Format('s16')
>>> fmt.packed is fmt
True
planar

The planar variant of this format.

Is itself when planar:

>>> fmt = Format('s16p')
>>> fmt.planar is fmt
True

Audio Layouts

class av.audio.layout.AudioLayout(layout)

Bases: object

channels

A tuple of AudioChannel objects.

Type:tuple
name

The canonical name of the audio layout.

class av.audio.layout.AudioChannel

Bases: object

description

A human description of the audio channel.

name

The canonical name of the audio channel.

Audio Frames

class av.audio.frame.AudioFrame

Bases: av.frame.Frame

A frame of audio.

format

The audio sample format.

Type:AudioFormat
static from_ndarray(array, format='s16', layout='stereo')

Construct a frame from a numpy array.

layout

The audio channel layout.

Type:AudioLayout
rate

Another name for sample_rate.

sample_rate

Sample rate of the audio data, in samples per second.

Type:int
samples

Number of audio samples (per channel).

Type:int
to_ndarray(**kwargs)

Get a numpy array of this frame.

Note

Numpy must be installed.

Audio FIFOs

class av.audio.fifo.AudioFifo

Bases: object

A simple audio sample FIFO (First In First Out) buffer.

write(frame)

Push a frame of samples into the queue.

Parameters:frame (AudioFrame) – The frame of samples to push.

The FIFO will remember the attributes from the first frame, and use those to populate all output frames.

If there is a pts and time_base and sample_rate, then the FIFO will assert that the incoming timestamps are continuous.

read(samples=0, partial=False)

Read samples from the queue.

Parameters:
  • samples (int) – The number of samples to pull; 0 gets all.
  • partial (bool) – Allow returning less than requested.
Returns:

New AudioFrame or None (if empty).

If the incoming frames had valid a time_base, sample_rate and pts, the returned frames will have accurate timing.

read_many(samples, partial=False)

Read as many frames as we can.

Parameters:
  • samples (int) – How large for the frames to be.
  • partial (bool) – If we should return a partial frame.
Returns:

A list of AudioFrame.

format

The AudioFormat of this FIFO.

layout

The AudioLayout of this FIFO.

pts_per_sample
sample_rate
samples

Number of audio samples (per channel) in the buffer.

samples_read
samples_written

Audio Resamplers

class av.audio.resampler.AudioResampler(format=None, layout=None, rate=None)

Bases: object

Parameters:
  • format (AudioFormat) – The target format, or string that parses to one (e.g. "s16").
  • layout (AudioLayout) – The target layout, or an int/string that parses to one (e.g. "stereo").
  • rate (int) – The target sample rate.
resample(frame)

Convert the sample_rate, channel_layout and/or format of a AudioFrame.

Parameters:frame (AudioFrame) – The frame to convert.
Returns:A new AudioFrame in new parameters, or the same frame if there is nothing to be done.
Raises:ValueError if Frame.pts is set and non-simple.
format
is_passthrough
layout
pts_per_sample_in
rate
samples_in
samples_out
simple_pts_out