Skip to main content

Portable FFmpeg

Downloads static FFmpeg builds for Windows, macOS, and Linux.

  • Supports Windows, macOS, and Linux
  • Supports x86_64 architecture on all platforms, ARM64 on macOS and Linux
  • Automatic platform detection and binary caching
  • Explicit FFmpeg 9.0 support on Windows amd64 and macOS amd64/arm64

Usage

Python API

from portable_ffmpeg import get_ffmpeg
ffmpeg_path, ffprobe_path = get_ffmpeg()
print(ffmpeg_path)  # Path to ffmpeg executable

Command Line Interface

After installation, you can use static_ffmpeg and static_ffprobe directly from the command line:

# Use static ffmpeg
static_ffmpeg -i input.mp4 output.mp3

# Use static ffprobe
static_ffprobe -v quiet -print_format json -show_format input.mp4

# Print paths to the binaries
print_paths

The CLI commands automatically download and cache the appropriate static binaries for your platform.

PATH Management

You can also programmatically manage your PATH:

from portable_ffmpeg import add_to_path, remove_from_path

# Add FFmpeg binaries to PATH
add_to_path()

# Add only if FFmpeg is not already available (weak mode)
add_to_path(weak=True)

# Remove from PATH
remove_from_path()

Sources of Static Builds

This package downloads static FFmpeg binaries from the following trusted sources:

Windows (x86_64)

  • Source: BtbN FFmpeg Builds
  • Description: GitHub Actions-built GPL static binaries with daily automated releases and tagged version builds
  • Versions: LATEST remains the rolling BtbN master build; V8 selects the current BtbN 8.1 asset and V7 retains its existing 7.1 mapping
  • V9: GyanD/codexffmpeg 9.0 essentials, with SHA256 e6b54767a6065919048f1a098eb27211ca4e12b4348a05d88777a5855d0b6e71
  • License: The verified GyanD archive includes a GNU GPLv3 LICENSE file.

Linux (x86_64 and arm64)

  • Source: BtbN FFmpeg Builds for LATEST, V8, and V7
  • V9: Not configured until BtbN or another trusted source publishes a redistributable stable 9.0 build. Martin Riedl's Linux 9.0 build metadata enables nonfree DeckLink support, so it is not used as a package default.
  • Legacy V5/V6 (Linux only): Older builds are sourced from John Van Sickle

macOS

FFmpeg 9.0 (Intel and Apple Silicon)

  • Source: Martin Riedl's FFmpeg Build Server
  • LATEST and V9: Both select the verified stable FFmpeg 9.0 release assets below. Each asset has a matching .sha256 sidecar.
  • License: The verified macOS V9 binaries report GPLv3.
Architecture FFmpeg FFprobe
Intel (amd64) https://ffmpeg.martin-riedl.de/download/macos/amd64/1785871427_9.0/ffmpeg.zip https://ffmpeg.martin-riedl.de/download/macos/amd64/1785871427_9.0/ffprobe.zip
Apple Silicon (arm64) https://ffmpeg.martin-riedl.de/download/macos/arm64/1785863997_9.0/ffmpeg.zip https://ffmpeg.martin-riedl.de/download/macos/arm64/1785863997_9.0/ffprobe.zip

The existing OSXExperts mappings remain available for explicit V8 and V7 selections.

Version coverage

Selector Windows amd64 Linux amd64/arm64 macOS amd64/arm64
LATEST BtbN rolling master BtbN rolling master Martin Riedl stable 9.0
V9 GyanD/codexffmpeg stable 9.0 Not configured pending a redistributable stable 9.0 asset Martin Riedl stable 9.0
V8, V7 BtbN 8.1/7.1 BtbN 8.1/7.1 Existing OSXExperts 8.0/7.x mappings
V6, V5 Not configured Existing John Van Sickle mappings Not configured

Alternative Sources

The following sources provide FFmpeg static builds but are not currently used by this package:

  • EverMeet FFmpeg

    • Platforms: macOS only
    • Architectures: x86_64
    • Description: Long-standing macOS static builds provider
  • FreeBSD FFmpeg Static

    • Platforms: FreeBSD only
    • Architectures: Various
    • Description: Static builds specifically for FreeBSD systems
  • John Van Sickle

    • Platforms: Linux
    • Architectures: x86_64, ARM64, i686, armhf, armel
    • Description: Static Linux builds (used for legacy V5/V6 version support)

Caching

Downloaded binaries are cached in the package's binaries/ directory to avoid re-downloading. Each virtual environment gets its own copy of the binaries.

The cache is organized by platform and architecture (e.g., linux-amd64, windows-amd64, osx-arm64).

Cache Management

from portable_ffmpeg import clear_cache

# Clear all cached binaries
clear_cache()

Or use the command line:

clear_cache

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

portable_ffmpeg-0.3.0.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

portable_ffmpeg-0.3.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file portable_ffmpeg-0.3.0.tar.gz.

File metadata

  • Download URL: portable_ffmpeg-0.3.0.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for portable_ffmpeg-0.3.0.tar.gz
Algorithm Hash digest
SHA256 3d9ee9c2067b451ec026779c08cff8a539c168d47e106a69190e68276fe51a1d
MD5 50fb0bd6a8996969c5926750d82d9369
BLAKE2b-256 8802646e45043d305a51020c64c944dccf9cc74de02096d136f371b66aca918f

See more details on using hashes here.

File details

Details for the file portable_ffmpeg-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: portable_ffmpeg-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for portable_ffmpeg-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 076e3921ed96cb8f2bd27ba5b1e91069ef7d2574ecbd057c900ccbb2bd49c855
MD5 5103ea95acd63a789df69c4f8933a91d
BLAKE2b-256 106b11038a5da5846c49687fd8eda78341e73cd81fc6227a2c769cb62a7b5f42

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page