# PyAV-Org/PyAV

﻿﻿Pythonic bindings for FFmpeg's libraries.

Repository: https://github.com/PyAV-Org/PyAV
Canonical: https://ross.abutalabs.com/products/pyav
Homepage: https://pyav.basswood-io.com/
Language: Python
License: BSD-3-Clause
License Family: permissive
Topics: ffmpeg, pyav, python
Last push: 2026-08-26T17:55:53+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 85, longevity 100
- inputs: {"age_days": 5029, "days_push": 7, "days_rel": 21, "gap_med": 41, "n_releases_24m": 6}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3269, forks 440 (observed 2026-08-28T04:07:52.996980+00:00)

## What it is
PyAV provides Pythonic bindings for FFmpeg's libraries, exposing containers, streams, packets, codecs, frames, filters, and resamplers for direct, precise media processing. It integrates with NumPy and Pillow and ships binary wheels with FFmpeg bundled for Linux, macOS, and Windows.

## Use cases
- decode video frames to numpy arrays in python
- extract frames from a video as images
- encode and mux audio/video files programmatically
- remux video containers without re-encoding
- resample and filter audio streams in python
- read video metadata and streams
- generate videos with subtitles programmatically

## When to choose
- you need frame-level, codec-level, or packet-level control over media that ffmpeg CLI can't easily provide
- you want to pipe media data into NumPy/Pillow or ML pipelines
- you need precise seeking, demuxing, or bitstream filtering in Python

## When to avoid
- the ffmpeg command-line tool already does the job without contortions
- you want a high-level abstraction that hides media complexity
- you need CPython sub-interpreter support or easy source builds on Windows

## Facets
- artifact type: library
- maturity: active
- function: video-processing, audio-processing, image-processing, sdk
- domain: media, developer-tools
- platform: python, windows, cross-platform
- tags: ffmpeg, bindings, cython, codecs, containers, transcoding, numpy, pillow, video, audio, linux, macos

## Member repositories
- PyAV-Org/PyAV (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:52.996980+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:43:50.072405+00:00, confidence not recorded.
  - readme: https://github.com/PyAV-Org/PyAV (fetched 2026-08-28T04:07:52.996980+00:00, sha f13df189d7f0)
  - homepage: https://pyav.basswood-io.com/ (fetched 2026-08-29T09:36:45.669329+00:00, sha f95cff880652)
  - site_page: https://pyav.basswood.io/docs/stable/genindex.html (fetched 2026-08-29T09:36:45.678319+00:00, sha 95fc94131a55)
  - site_page: https://pyav.basswood.io/docs/stable/py-modindex.html (fetched 2026-08-29T09:36:45.680724+00:00, sha 769522c86ee1)
  - site_page: https://pyav.basswood.io/docs/stable/overview/caveats.html (fetched 2026-08-29T09:36:45.682621+00:00, sha 4897ba295878)
  - site_page: https://pyav.basswood.io/docs/stable/api/container.html (fetched 2026-08-29T09:36:45.685892+00:00, sha beadc5155caf)
  - site_page: https://pyav.basswood.io/docs/stable/api/stream.html (fetched 2026-08-29T09:36:45.688613+00:00, sha 1dcb483f67cb)
  - site_page: https://pyav.basswood.io/docs/stable/api/packet.html (fetched 2026-08-29T09:36:45.691273+00:00, sha c4712f8e0aa6)
  - site_page: https://pyav.basswood.io/docs/stable/api/codec.html (fetched 2026-08-29T09:36:45.693922+00:00, sha f503677b564b)
  - site_page: https://pyav.basswood.io/docs/stable/api/bitstream.html (fetched 2026-08-29T09:36:45.696326+00:00, sha 404370db8c16)
- Data as of 2026-08-30T08:39:29.467469+00:00.
