static-ffmpeg
Cross platform ffmpeg to work on various systems.
Decision gist · record as of 2026-08-14
Yes, if you are distributing a Python tool or library that depends on ffmpeg and want to eliminate the friction of users installing ffmpeg separately. The package is stable, has low install friction, and covers the major platforms. The aging maintenance status is a minor concern—check that ffmpeg v8 meets your codec and feature needs—but the core functionality is unlikely to break. Not necessary if ffmpeg is already installed on your target systems or if you control the deployment environment.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- First call to add_paths() or any static_ffmpeg command will block while downloading the platform-specific ffmpeg binary (typically tens of MB); network access required.
- Low friction: pure Python wheel with four lightweight runtime dependencies (requests, filelock, progress, twine).
- Maintenance status is aging—last release was 210 days ago—so updates may be infrequent, but the package appears stable for its core function.
License · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing use in commercial and private projects with minimal restrictions; you must retain the license notice in distributions.
last release 2026-01-16 (210 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 233,830 downloads/mo, #9,033 on PyPI
Alternatives
Verify before relying
pip install static-ffmpeg
import static_ffmpeg
static_ffmpeg.add_paths() # downloads and installs ffmpeg v8 on first call
import os
os.system("ffmpeg -i input.mp4 output.mp3")- Whether the download timeout of 10 minutes (mentioned in release history) is sufficient for all network conditions.
- Exact size of downloaded binaries for each platform after v8.0 upgrade.
- Thread-safety guarantees beyond what the description states for concurrent add_paths() calls.
What it is and what it does
static-ffmpeg solves the problem of distributing Python tools that depend on ffmpeg without requiring users to install ffmpeg separately on their system. It downloads pre-built ffmpeg v8 and ffprobe binaries for your platform (Windows x64, macOS Intel/Apple Silicon, Linux x64/ARM64) on first use and makes them available either by adding them to the system PATH or by providing direct command-line aliases and API methods to locate the binaries.
You can use it three ways: call add_paths() to inject the static ffmpeg into your environment, invoke static_ffmpeg or static_ffprobe as command-line tools, or use the API to fetch the binary paths directly. The download happens once per platform and is cached, so subsequent calls are fast. It requires no elevated permissions and works in virtual environments.
Use it for
- Distribute a Python video-processing tool that needs ffmpeg without asking users to install it separately.
- Build a CI/CD pipeline that transcodes media files and needs ffmpeg available in a containerized environment.
- Create a command-line utility that wraps ffmpeg and wants to work out-of-the-box on Windows, macOS, and Linux.
- Develop a Python library that probes video metadata using ffprobe without depending on system ffmpeg availability.
- Package a web service that processes video uploads and needs ffmpeg available in a serverless or ephemeral compute environment.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are distributing a Python tool or library that depends on ffmpeg and want to eliminate the friction of users installing ffmpeg separately.
The package is stable, has low install friction, and covers the major platforms. The aging maintenance status is a minor concern—check that ffmpeg v8 meets your codec and feature needs—but the core functionality is unlikely to break. Not necessary if ffmpeg is already installed on your target systems or if you control the deployment environment.
Install
static-ffmpeg on PyPI
Before you install
Low friction: pure Python wheel with four lightweight runtime dependencies (requests, filelock, progress, twine). Maintenance status is aging—last release was 210 days ago—so updates may be infrequent, but the package appears stable for its core function.
First call to add_paths() or any static_ffmpeg command will block while downloading the platform-specific ffmpeg binary (typically tens of MB); network access required.
License in practice
MIT license is permissive, allowing use in commercial and private projects with minimal restrictions; you must retain the license notice in distributions.
Quickstart
pip install static-ffmpeg
import static_ffmpeg
static_ffmpeg.add_paths() # downloads and installs ffmpeg v8 on first call
import os
os.system("ffmpeg -i input.mp4 output.mp3")
Verify before relying
- Whether the download timeout of 10 minutes (mentioned in release history) is sufficient for all network conditions.
- Exact size of downloaded binaries for each platform after v8.0 upgrade.
- Thread-safety guarantees beyond what the description states for concurrent add_paths() calls.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.6.0 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesrequestsfilelockprogresstwine |
| Maintenance | Aging 210 days since the last release |
| First released | |
| Downloads | 233,830 / month, #9,033 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Environment :: ConsoleLicense :: OSI Approved :: MIT LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: Python :: 3.6Programming Language :: Python :: 3.9 |
Evidence: static_ffmpeg-3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “install ffmpeg programmatically”
- static-ffmpegInstalls ffmpeg v8 and ffprobe binaries for your platform on first…
- ffmpyffmpy is a Python wrapper around FFmpeg that lets you build and…
- ffmpegWraps FFmpeg and FFprobe command-line tools to programmatically…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also ffmpeg · ffmpy · ffmpeg-python · typed-ffmpeg · python-ffmpeg · imageio-ffmpeg · knowit · dlib-bin · shellcheck-py · stpyv8