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
LICENSEfile.
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
.sha256sidecar. - 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:
-
- Platforms: macOS only
- Architectures: x86_64
- Description: Long-standing macOS static builds provider
-
- Platforms: FreeBSD only
- Architectures: Various
- Description: Static builds specifically for FreeBSD systems
-
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d9ee9c2067b451ec026779c08cff8a539c168d47e106a69190e68276fe51a1d
|
|
| MD5 |
50fb0bd6a8996969c5926750d82d9369
|
|
| BLAKE2b-256 |
8802646e45043d305a51020c64c944dccf9cc74de02096d136f371b66aca918f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
076e3921ed96cb8f2bd27ba5b1e91069ef7d2574ecbd057c900ccbb2bd49c855
|
|
| MD5 |
5103ea95acd63a789df69c4f8933a91d
|
|
| BLAKE2b-256 |
106b11038a5da5846c49687fd8eda78341e73cd81fc6227a2c769cb62a7b5f42
|