# AVBIN Many video formats (via AvBin, i.e. libav library)

Extensions: `.mov`, `.avi`, `.mp4`, `.mpg`, `.mpeg`, `.mkv`

The AvBinFormat uses the AvBin library (based on libav) to read video files.

This plugin is more efficient than the ffmpeg plugin, because it uses ctypes (rather than a pipe like the ffmpeg plugin does). Further, it supports reading images into a given numpy array.

The limitations of this plugin are that seeking, writing and camera feeds are not supported. See the ffmpeg format for these features.

The avbin plugin requires an avbin binary. If this binary is not available on the system, it can be downloaded manually from <https://github.com/imageio/imageio-binaries> by either

- the command line script `imageio_download_bin avbin`

- the Python method `imageio.plugins.avbin.download()`.

## Parameters for reading

loopbool

  If True, the video will rewind as soon as a frame is requested beyond the last frame. Otherwise, IndexError is raised. Default False.

streamint

  Specifies which video stream to read. Default 0.

videoformatstr | None

  Specifies the video format (e.g. ‘avi’, or ‘mp4’). If this is None (default) the format is auto-detected.

## Parameters for get_data

outnp.ndarray

  destination for the data retrieved. This can be used to save time-consuming memory allocations when reading multiple image sequntially. The shape of out must be (width, height, 3), the dtype must be np.uint8 and it must be C-contiguous.

  Use the create_empty_image() method of the reader object to create an array that is suitable for get_data.