FFmpeg-update is a package manager for the FFmpeg suite, available as both a CLI tool and a Python library. It fetches pre-built, static binaries published by Martin Riedl.
Supported Platforms (Upstream): Linux amd64, Linux arm64v8, macOS Intel (Deprecated), Apple Silicon
- Install [pre-built static binaries of] FFmpeg, FFprobe, and/or FFplay
- Fetch latest release or snapshot builds
- Configure custom installation location
- Update to latest version
- Check for updates
- Uninstall from system
- Smart permission handling
- Atomic file system operations
- Automatic operating system and machine architecture detection
pip install ffmpeg-updateThe installation provides the ffup executable.
ffup <install|update [--dry-run]|check|uninstall> [OPTIONS] [ffmpeg] [ffprobe] [ffplay]Alternatively, can be invoked as a module with python -m ffmpeg_update <COMMAND>.
Hint: Multiple names can be passed, e.g.
ffup install ffmpeg ffprobe
Note: Default is
ffmpeg, if no name is passed
-
--dir: The path to the installation directory- Environment variable:
$FFUP_DIR/$XDG_BIN_HOME - Default:
~/.local/bin - Functions:
check,install,uninstall,update
- Environment variable:
-
--build: The build type- Choices:
release,snapshot - Environment Variable:
$FFUP_BUILD - Default:
snapshot - Functions:
check,install,update
- Choices:
-
--arch: The machine architecture- Choices:
amd64,arm64 - Environment Variable:
$FFUP_ARCH - Default: Auto-detect using
platform.machine() - Functions:
check,install,update
- Choices:
-
--os: The operating system- Choices:
linux,macos - Environment Variable:
$FFUP_OS - Default: Auto-detect using
platform.system() - Functions:
check,install,update
- Choices:
-
--dry-run: A flag to skip download/install, and only check for updatesffup checkis an alias forffup update --dry-run- Default:
False - Functions:
update
update(bins = {"ffmpeg"}, /, *, dry_run = False, dir, tempdir, progress, client) -> Noneinstall(bins = {"ffmpeg"}, /, *, dir, tempdir, progress, client) -> Noneuninstall(bins = {"ffmpeg"}, /, *, dir) -> Noneget_arch() -> Literal["amd64", "arm64"]get_os() -> Literal["linux", "macos"]
bins: Asetof binary names
- Must contain one or more of
"ffmpeg","ffprobe", and"ffplay"
dry_run: Aboolindicating whether to skip download/install
dir: Apathlib.Pathto the installation directory
- Must exist and be absolute
tempdir: Atempfile.TemporaryDirectory[str]used to store and extract the downloaded archives
progress: Arich.progress.Progressused to show progress bars in the terminal
client: Aniquests.Sessionused to make HTTP requests
- Must set parameter
base_urltof"https://ffmpeg.martin-riedl.de/redirect/latest/{os}/{arch}/{build}/"build:"release","snapshot"arch:"amd64","arm64"os:"linux","macos"
- By design, all operations will fail if the path in question does not exist
- For new installations, ensure that the installation directory exists
- For other operations, ensure that the path points to the installed binary
404 Client Error: Not Found for url: ...- Caused by invalid values for one or more of
build,arch, andosparameters
- Caused by invalid values for one or more of
- Triggers automatic escalation via
sudo - The user is prompted for a password at
stdin