skillfed

imageio-ffmpeg

FFMPEG wrapper for Python

imageio-ffmpeg v0.6.0 14.3M downloads/30d#1,236 on PyPI296
Permissive license BSD-2-Clause DORMANT released

What it is and what it does

imageio-ffmpeg is a lightweight Python wrapper that spawns ffmpeg as a subprocess and communicates video frames over pipes using Python generators. It bundles platform-specific ffmpeg binaries in wheels for Windows, macOS (Intel and ARM), and Linux, eliminating the need to install ffmpeg separately on common platforms. The library provides two main functions: read_frames() to iterate over video frames with metadata, and write_frames() to encode frames into a video file. It has no runtime dependencies and works with Python 3.9+.

The package is designed for straightforward video I/O tasks where you need to read or write frames programmatically. It is lower-level than imageio's ffmpeg plugin but higher-level than calling ffmpeg directly. The documentation notes that PyAV is now a faster, more feature-rich alternative with binary wheels for many platforms, making it worth considering if you need better performance or more advanced ffmpeg features.

Use it for:

  • Extract frames from video files for computer vision or machine learning preprocessing pipelines.
  • Encode sequences of image frames or numpy arrays into video files with custom codecs and bitrates.
  • Build video processing tools that need reliable ffmpeg subprocess management without external system dependencies.
  • Integrate video I/O into scientific or educational applications where ffmpeg is needed but system installation is inconvenient.
  • Automate video format conversion or re-encoding with fine control over ffmpeg parameters (pixel format, fps, quality, codec).

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a simple Python wrapper around ffmpeg for reading and writing video frames via generators, bundling platform-specific ffmpeg binaries in wheels.

Yes, if you need straightforward video frame reading/writing without managing ffmpeg installation separately. The bundled binaries and zero runtime dependencies make it convenient for cross-platform distribution. However, consider PyAV instead if you need better performance, more advanced features, or are already comfortable with C-level bindings. The dormant maintenance status (575 days since release) is not a blocker for stable use but means security or compatibility updates may lag; monitor the repository for any critical ffmpeg vulnerabilities.

Install

imageio-ffmpeg on PyPI

pip

pip install imageio-ffmpeg

uv

uv add imageio-ffmpeg

poetry

poetry add imageio-ffmpeg

Installing imageio-ffmpeg

Before you install

Medium install friction due to platform-specific wheels (Windows, macOS Intel/ARM, Linux x86_64/aarch64), but wheels include ffmpeg binaries so no external system dependency required. Dormant maintenance (575 days since last release) but repo remains active; last commit 2025-01-16.

License in practice

BSD-2-Clause is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you include the license notice.

Quickstart

pip install imageio-ffmpeg

from imageio_ffmpeg import read_frames, write_frames

# Read frames
reader = read_frames('video.mp4')
meta = reader.__next__()
for frame in reader:
    process(frame)

# Write frames
writer = write_frames('output.mp4', size=(width, height))
writer.send(None)
for frame in frames:
    writer.send(frame)
writer.close()

Requires Python 3.9 or later. Wheels are platform-specific; installation on unsupported architectures or older Linux kernels (pre-2.6.32) may require building from source or providing your own ffmpeg binary via IMAGEIO_FFMPEG_EXE environment variable.

Verify before relying

  • Whether the included ffmpeg binary is kept current with upstream ffmpeg security patches and feature releases.
  • Performance characteristics compared to PyAV or direct ffmpeg subprocess calls for typical video workloads.
  • Compatibility with ffmpeg versions older than those bundled in the wheels.

Package facts

License BSD-2-Clause (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance dormant — 575 days since the last release
Last repo commit
First released
Downloads 14,321,387/month — #1,236 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: imageio_ffmpeg-0.6.0-py3-none-macosx_10_9_intel.macosx_10_9_x86_64.whl; imageio_ffmpeg-0.6.0-py3-none-macosx_11_0_arm64.whl; imageio_ffmpeg-0.6.0-py3-none-manylinux2014_aarch64.whl; imageio_ffmpeg-0.6.0-py3-none-manylinux2014_x86_64.whl; imageio_ffmpeg-0.6.0-py3-none-win32.whl; imageio_ffmpeg-0.6.0-py3-none-win_amd64.whl

Keywords: video, ffmpeg

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9

Tags

ffmpeg python wrapperread write video framesvideo processing pythonffmpeg binaries wheelsvideo file manipulationframe extraction encodingsubprocess ffmpeg interface
video-ioffmpeg-wrappercross-platform

More Graphics packages