Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sk/ffmpeg 6.1.1 #9

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
7e7a317
update to include ffprobe
marcello3d Sep 10, 2020
4343bc4
simplify test workflow, add retry to download logic
marcello3d Sep 10, 2020
60e93c1
try to fix tar commands on linux
marcello3d Sep 10, 2020
26a9fe8
try again
marcello3d Sep 10, 2020
dd28c2c
more bash logging
marcello3d Sep 10, 2020
a2e5797
a different way of checking for macos
marcello3d Sep 10, 2020
d75e68c
update binary-release-tag, fix install script
marcello3d Sep 10, 2020
658cc7b
4.3.1-rc.2
marcello3d Sep 10, 2020
de47039
update rc
marcello3d Sep 11, 2020
86a3b73
Allow for specifying custom base url in install process (#2)
srubin Feb 2, 2021
d414635
Ensure that cache directory exists (#3)
srubin Feb 3, 2021
3c94364
patch-package dep
srubin Feb 3, 2021
e3e9b04
only warn on license/readme
srubin Feb 3, 2021
0825664
Support ffmpeg 6.0 (#7)
srubin Sep 15, 2023
a6d4d63
fix http-basic version
srubin Sep 15, 2023
aa0b4be
update download link
srubin Sep 15, 2023
3669111
Update index.sh
srubin Sep 15, 2023
c23080d
Update index.sh
srubin Sep 15, 2023
caa9e48
Update index.sh
srubin Sep 15, 2023
59064e0
Update release-binaries.yml
srubin Sep 16, 2023
5bdfd1c
Update release-binaries.yml
srubin Sep 16, 2023
516027d
Update index.sh
srubin Sep 16, 2023
4ec39c2
Update index.sh
srubin Sep 16, 2023
2348468
Update package.json
srubin Sep 16, 2023
8d061c6
Upgrading releases to ffmpeg 6.1 for multi-threading updates
srikanth-descript Mar 19, 2024
31c4c68
Upgrading versions
srikanth-descript Mar 19, 2024
3664f63
Changing rc version
srikanth-descript Mar 19, 2024
dee7e12
Creating rc.2 relese with security fixes
srikanth-descript Jun 7, 2024
e424956
Adding write permission
srikanth-descript Jun 11, 2024
1153e53
Writeall
srikanth-descript Jun 11, 2024
bd5e6ac
Changing perms
srikanth-descript Jun 11, 2024
54bd6f9
Changing release action
srikanth-descript Jun 11, 2024
df524fa
Re-tag
srikanth-descript Jun 11, 2024
01b5569
Fix binary release tag
srikanth-descript Jun 11, 2024
5a18311
Updating package.json
srikanth-descript Jun 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
217 changes: 33 additions & 184 deletions .github/workflows/release-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ name: Release Binaries

jobs:
release:
permissions:
contents: write
deployments: write
issues: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Expand All @@ -16,189 +20,34 @@ jobs:

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/darwin-x64
asset_name: darwin-x64
asset_content_type: application/octet-stream

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/darwin-x64.README
asset_name: darwin-x64.README
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-arm
asset_name: linux-arm
asset_content_type: application/octet-stream

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-arm.README
asset_name: linux-arm.README
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-arm.LICENSE
asset_name: linux-arm.LICENSE
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-arm64
asset_name: linux-arm64
asset_content_type: application/octet-stream

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-arm64.README
asset_name: linux-arm64.README
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-arm64.LICENSE
asset_name: linux-arm64.LICENSE
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-ia32
asset_name: linux-ia32
asset_content_type: application/octet-stream

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-ia32.README
asset_name: linux-ia32.README
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-ia32.LICENSE
asset_name: linux-ia32.LICENSE
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-x64
asset_name: linux-x64
asset_content_type: application/octet-stream

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-x64.README
asset_name: linux-x64.README
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/linux-x64.LICENSE
asset_name: linux-x64.LICENSE
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/win32-ia32
asset_name: win32-ia32
asset_content_type: application/octet-stream

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/win32-ia32.README
asset_name: win32-ia32.README
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/win32-ia32.LICENSE
asset_name: win32-ia32.LICENSE
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/win32-x64
asset_name: win32-x64
asset_content_type: application/octet-stream

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/win32-x64.README
asset_name: win32-x64.README
asset_content_type: text/plain

- uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: bin/win32-x64.LICENSE
asset_name: win32-x64.LICENSE
asset_content_type: text/plain
name: Release ${{ github.ref }}
token: ${{ secrets.GITHUB_TOKEN }}
files: |
bin/darwin-arm64.README
bin/darwin-x64.README
bin/ffmpeg-darwin-arm64
bin/ffmpeg-darwin-x64
bin/ffmpeg-linux-arm
bin/ffmpeg-linux-arm64
bin/ffmpeg-linux-ia32
bin/ffmpeg-linux-x64
bin/ffmpeg-win32-x64
bin/ffprobe-darwin-arm64
bin/ffprobe-darwin-x64
bin/ffprobe-linux-arm
bin/ffprobe-linux-arm64
bin/ffprobe-linux-ia32
bin/ffprobe-linux-x64
bin/ffprobe-win32-x64
bin/linux-arm.LICENSE
bin/linux-arm.README
bin/linux-arm64.LICENSE
bin/linux-arm64.README
bin/linux-ia32.LICENSE
bin/linux-ia32.README
bin/linux-x64.LICENSE
bin/linux-x64.README
bin/win32-x64.LICENSE
15 changes: 15 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Test

on: [push]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 16.x
- run: npm install
- run: npm ci
- run: npm test
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ bin/*
/ffmpeg.exe
/ffmpeg.README
/ffmpeg.LICENSE
/ffprobe
/ffprobe.exe
/ffprobe.README
/ffprobe.LICENSE
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ addons:
- unzip
- tar
script:
- npm run install
- npm test
- 'file=$(npm pack -s) && file=$(realpath $file)'
- 'cd $(mktemp -d) && npm init -y'
Expand Down
38 changes: 23 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,46 @@
# ffmpeg-static
# ffmpeg-ffprobe-static

**[ffmpeg](https://ffmpeg.org) static binaries for Mac OSX and Linux and Windows.**
Fork of [ffmpeg-static](https://github.com/eugeneware/ffmpeg-static) that includes ffprobe.

Supports macOS (64-bit), Linux (32 and 64-bit, armhf, arm64) and Windows (32 and 64-bit). [The ffmpeg version currently used is `4.3.1`.](https://github.com/eugeneware/ffmpeg-static/releases/tag/b4.3.1)
## Info

*Note:* The version of `ffmpeg-static` follows [SemVer](http://semver.org). When releasing new versions, **we do *not* consider breaking changes in `ffmpeg` itself**, but only the JS interface (see below). To stop `ffmpeg-static` from breaking your code by getting updated, [lock the version down](https://docs.npmjs.com/files/package.json#dependencies) or use a [lockfile](https://docs.npmjs.com/files/package-lock.json).
**[ffmpeg](https://ffmpeg.org) static binaries for Mac OSX, Linux, Windows and FreeBSD.**

[![npm version](https://img.shields.io/npm/v/ffmpeg-static.svg)](https://www.npmjs.com/package/ffmpeg-static)
[![build status](https://travis-ci.org/eugeneware/ffmpeg-static.svg?branch=master)](http://travis-ci.org/eugeneware/ffmpeg-static)
![minimum Node.js version](https://img.shields.io/node/v/ffmpeg-static.svg)
Supports macOS (64-bit and arm64), Linux (32 and 64-bit, armhf, arm64) and Windows (32 and 64-bit). [The ffmpeg version currently used is `6.0`.](https://github.com/descriptinc/ffmpeg-ffprobe-static/releases/tag/b6.0)

*Note:* The version of `ffmpeg-ffprobe-static` follows [SemVer](http://semver.org). When releasing new versions, **we do *not* consider breaking changes in `ffmpeg` itself**, but only the JS interface (see below). To stop `ffmpeg-ffprobe-static` from breaking your code by getting updated, [lock the version down](https://docs.npmjs.com/files/package.json#dependencies) or use a [lockfile](https://docs.npmjs.com/files/package-lock.json).

[![npm version](https://img.shields.io/npm/v/ffmpeg-ffprobe-static.svg)](https://www.npmjs.com/package/ffmpeg-ffprobe-static)
[![Actions Status](https://github.com/descriptinc/ffmpeg-ffprobe-static/workflows/test/badge.svg)](https://github.com/descriptinc/ffmpeg-ffprobe-static/actions)
![minimum Node.js version](https://img.shields.io/node/v/ffmpeg-ffprobe-static.svg)

## Installation

This module is installed via npm:

``` bash
$ npm install ffmpeg-static
$ npm install ffmpeg-ffprobe-static
```

*Note:* During installation, it will download the appropriate `ffmpeg` binary from the [`b4.3.1` GitHub release](https://github.com/eugeneware/ffmpeg-static/releases/tag/b4.3.1). Use and distribution of the binary releases of FFmpeg are covered by their respective license.
*Note:* During installation, it will download the appropriate `ffmpeg` binary from the [`b6.0` GitHub release](https://github.com/descriptinc/ffmpeg-ffprobe-static/releases/tag/b6.0). Use and distribution of the binary releases of FFmpeg are covered by their respective license.

Alternatively, it will fetch binaries from `FFMPEG_FFPROBE_STATIC_BASE_URL` if set as an environment variable. The default base URL is https://github.com/descriptinc/ffmpeg-ffprobe-static/releases/download/. The install script will fetch binaries from `BASE_URL/binary-release-tag` (the `binary-release-tag` is set in package.json and can customized by setting `FFMPEG_BINARY_RELEASE`).

### Electron & other cross-platform packaging tools

Because `ffmpeg-static` will download a binary specific to the OS/platform, you need to purge `node_modules` before (re-)packaging your app *for a different OS/platform* ([read more in #35](https://github.com/eugeneware/ffmpeg-static/issues/35#issuecomment-630225392)).
Because `ffmpeg-ffprobe-static` will download a binary specific to the OS/platform, you need to purge `node_modules` before (re-)packaging your app *for a different OS/platform* ([read more in #35](https://github.com/eugeneware/ffmpeg-static/issues/35#issuecomment-630225392)).

## Example Usage

Returns the path of a statically linked ffmpeg binary on the local filesystem.

``` js
var pathToFfmpeg = require('ffmpeg-static');
var pathToFfmpeg = require('ffmpeg-ffprobe-static');
console.log(pathToFfmpeg);
```

```
/Users/j/playground/node_modules/ffmpeg-static/ffmpeg
/Users/j/playground/node_modules/ffmpeg-ffprobe-static/ffmpeg
```

Check the [example script](example.js) for a more thorough example.
Expand All @@ -43,17 +49,19 @@ Check the [example script](example.js) for a more thorough example.

[The build script](build/index.sh) downloads binaries from these locations:

- [Windows builds](https://ffmpeg.zeranoe.com/builds/win64/static/)
- [Windows x64 builds](https://github.com/ShareX/FFmpeg/)
- [Windows x86 builds](https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/)
- [Linux builds](https://johnvansickle.com/ffmpeg/)
- [macOS builds](https://evermeet.cx/pub/ffmpeg/)
- macOS builds [for Intel](https://evermeet.cx/pub/ffmpeg/) / [for ARM (Apple Silicon)](https://osxexperts.net/)
- [FreeBSD builds](https://github.com/Thefrank/ffmpeg-static-freebsd/releases)

The build script extracts build information and (when possible) the license file from the downloaded package or the distribution server. Please consult the individual build's project site for exact source versions, which you can locate based on the version information included in the README file.

## Show your support

This npm package includes statically linked binaries that are produced by the following individuals. Please consider supporting and donating to them who have been providing quality binary builds for many years:

- **Windows builds**: [Kyle Schwarz](https://ffmpeg.zeranoe.com/builds/)
- **Windows builds**: [Jaex](https://getsharex.com/donate/)
- **Linux builds**: [John Van Sickle](https://www.johnvansickle.com/ffmpeg/)
- **macOS builds**: [Helmut K. C. Tessarek](https://evermeet.cx/ffmpeg/#donations)

Expand Down
Loading
Loading