ffmpeg-update is a Python package designed to manage FFmpeg static binaries on macOS and Linux. It fetches the latest builds published by Martin Riedl.
- Install static builds of FFmpeg, FFprobe, and/or FFplay.
- Update to the latest version.
- Check for update.
- Uninstall from the system.
- Supports custom installation paths.
- Supports both Linux and macOS (Windows builds are not available upstream).
uv tool install git+https://github.com/pantheraleo-7/ffmpeg-update
pip install git+https://github.com/pantheraleo-7/ffmpeg-update
The installation provides the ffup
command.
- Install:
ffup install [--dir <custom-path>]
- Update:
ffup update [--dir <custom-path>] [--dry-run]
- Check:
ffup check [--dir <custom-path>]
- Uninstall:
ffup uninstall [--dir <custom-path>]
Alternatively, the package can be run as a CLI module.
python -m ffup <command>
- Install:
ffup install [--dir <custom-path>]
- Downloads and installs the binary.
- Flags and Environment variables:
--dir <custom-path>
: Specifies the installation directory.$XDG_BIN_HOME
: Used as the installation directory if--dir
is not specified.- Defaults to
~/.local/bin
if none of the above is defined.
- Update:
ffup update [--dir <custom-path>] [--dry-run]
- Updates the binary to the latest version.
- Flags:
--dir <custom-path>
: Specifies the directory where the binary is installed.- Defaults to the first executable found on the
$PATH
. --dry-run
: Only checks for update, skips download and install.
- Check:
ffup check [--dir <custom-path>]
- Checks for update.
- Same as
ffup update [--dir <custom-path>] --dry-run
. - Flags:
--dir <custom-path>
: Specifies the directory where the binary is installed.- Defaults to the first executable found on the
$PATH
.
- Uninstall:
ffup uninstall [--dir <custom-path>]
- Removes the installed binary.
- Flags:
--dir <custom-path>
: Specifies the directory where the binary is installed.- Defaults to the first executable found on the
$PATH
.
--sys
or$FF_SYS
: Specifies the platform name (macos
,linux
). Default is to detect usingplatform
stdlib.--arch
or$FF_ARCH
: Specifies the platform architecture (arm64
,amd64
). Default is to detect usingplatform
stdlib.--repo
or$FF_REPO
: Specifies the static build type (snapshot
,release
). Defaults tosnapshot
.--bin
or$FF_BIN
: Specifies the binary name (ffmpeg
,ffprobe
,ffplay
). Defaults toffmpeg
.
Note: Flags have precedence over their respective environment variables.
Note: Command arguments may be given positionally. Global arguments are always specified with their respective keywords (flags).
- Permission issues are resolved automatically with
sudo
when necessary (and, consequently, user is prompted for password atstdin
). - Checks for path handling are exhaustive, with appropriate messages written to
stdout
.