![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
ffbinaries-plus
Advanced tools
Download binaries for ffmpeg, ffprobe, ffserver and ffplay (Windows, macOS, Linux)
[!NOTE] This fork replaces
request
dependency withaxios
since the first has been deprecated
Downloads precompiled ffmpeg, ffprobe, ffplay and ffserver binaries from ffbinaries.com.
This module is cross-platform and can be used through CLI or as a Node module (i.e. as a build step or a part of app boot routine).
You can download whatever binaries you need during the build if you'd like to bundle the binaries with your distributable files or just download it on user's machine during initial setup process.
You can run it from your code or through CLI.
If output
argument is specified the binary will be placed there.
It will default to current working directory.
If platform
argument is missing then the current platform will be automatically
detected and binaries for it will be downloaded.
If components
argument is missing then binaries of all available components
will be downloaded (see Included components section).
When installed globally with npm i ffbinaries -g
this module will register
itself on command line interface.
CLI uses the following syntax:
ffbinaries [components] [--platform] [--output] [--quiet] [--version]
Each flag can also be abbreviated in your scripts with -p
, -o
, -q
and -v
respectively.
Download all binaries for your platform
ffbinaries
Download all binaries for a specified platform
ffbinaries --platform=mac
Download only ffplay for 64-bit Windows, quiet output
ffbinaries ffplay --platform=win-64 --quiet
Download only ffmpeg and ffprobe, version 3.2 for 64-bit Linux, quiet output, save binaries in a specified directory
ffbinaries ffmpeg ffprobe -p=linux-64 -q -v=3.2 -o=/usr/local/bin
Additional commands
There are also ffbinaries help
, ffbinaries versions
and ffbinaries clearcache
.
ffbinaries
library exports the following methods:
downloadBinaries(platform, opts, callback)
downloads and extracts the requested binaries.
The opts
parameter is an object that can contain these optional parameters:
destination
: the path where the binaries will be downloaded to. If not provided it will default to .
.components
: an array of string values that describes which components to download. If not provided it will default to all components available for the platform.version
: version of ffmpeg to downloadforce
: ignore check for existing binaries in the destination and overwrite them if necessaryquiet
: suppress verbose logstickerFn
: a progress-update function, triggered with percentage as argument at an interval until download is completedtickerInterval
: frequency at which the ticker progress updates are issued (in ms; defaults to 1000
)getVersionData(version, callback)
fetches the full data set without downloading any binaries.
listVersions(callback)
returns the list of available versions from the API
listPlatforms()
returns the list of available platforms
detectPlatform()
returns the platform code of the machine as detected by the module.
resolvePlatform(input)
resolves input to a platform code (matches aliases).
getBinaryFilename(component, platform)
resolves a filename of a binary
for a given platform (appends ".exe" in Windows).
locateBinariesSync(components, opts)
looks for binaries already existing
in the system. Returns object with located binaries, their paths and versions.
opts
parameter is an object that can specify these additional options:
paths
to provide locations to check in firstensureExecutable
will set executable flag on the file if it's missingclearCache()
purges local cache
Download all binaries for your platform
var ffbinaries = require('ffbinaries');
ffbinaries.downloadBinaries(function () {
console.log('Downloaded all binaries for current platform.');
});
Note: you don't need to check for existence of the binaries in the destination folder. ffbinaries will check if the binaries exist first and it will not attempt to re-download them unless you specify {force: true}
.
Download only ffmpeg and ffprobe, version 3.2 for 64-bit Linux, quiet output, save binaries in a specified location
var ffbinaries = require('ffbinaries');
var dest = __dirname + '/binaries';
ffbinaries.downloadBinaries(['ffmpeg', 'ffprobe'], {platform: 'linux-64', quiet: true, destination: dest}, function () {
console.log('Downloaded ffplay and ffprobe binaries for linux-64 to ' + dest + '.');
});
The following platform codes are available:
windows-32 (aliases: win, windows, win-32), windows-64 (alias: win-64)
linux-32 (alias: linux), linux-64, linux-armhf (alias: linux-arm), linux-armel
osx-64 (aliases: mac, osx, mac-64)
You can use aliases as your platform code argument in both CLI and programmatically.
Mac | Linux | Windows | |
---|---|---|---|
ffmpeg | v | v | v |
ffprobe | v | v | v |
ffserver | v | v | |
ffplay | v | v* | v |
(* Only linux-32 and linux-64 builds of ffplay 3.2 are currently available)
The API providing data to the module is located at ffbinaries.com. The code is located in ffbinaries-api repo.
The binaries are hosted on GitHub as releases of ffbinaries-prebuilt repo.
History of changes can be found in changelog.md file.
If you'd like to contribute to this project have a look at contributing.md file for more information.
If you're experiencing issues please update to the newest version and run ffbinaries clearcache
.
If that doesn't resolve it simply raise an issue on GitHub.
Make sure to include the information about which version you're using, platform, the exact commands you're trying to execute and the output.
FAQs
Download binaries for ffmpeg, ffprobe, ffserver and ffplay (Windows, macOS, Linux)
The npm package ffbinaries-plus receives a total of 1 weekly downloads. As such, ffbinaries-plus popularity was classified as not popular.
We found that ffbinaries-plus demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.