GithubHelp home page GithubHelp logo

federicocarboni / setup-ffmpeg Goto Github PK

View Code? Open in Web Editor NEW
105.0 2.0 13.0 2.05 MB

Set up your GitHub Actions workflow with ffmpeg

License: MIT License

JavaScript 100.00%
ffmpeg github-action github-actions ffprobe

setup-ffmpeg's Introduction

setup-ffmpeg

This action sets up and caches a specific FFmpeg version, providing the ffmpeg and ffprobe commands.

Builds are downloaded from the following sources:

v3 vs v2

Version 3 of this action downloads binaries directly from the sources listed above instead of periodically updating GitHub releases. In turn this means it receives updates more frequently and supports git master builds and selecting a specific version.

By default the latest release version available for the platform is used. As upstream sources are not guaranteed to update at the same time, the action may at times install different versions of ffmpeg for different operating systems, unless a specific version is requested.

Usage

See action.yml.

steps:
  - uses: actions/checkout@v3
  - uses: FedericoCarboni/setup-ffmpeg@v3
    id: setup-ffmpeg
    with:
      # A specific version to download, may also be "release" or a specific version
      # like "6.1.0". At the moment semver specifiers (i.e. >=6.1.0) are supported
      # only on Windows, on other platforms they are allowed but version is matched
      # exactly regardless.
      ffmpeg-version: release
      # Target architecture of the ffmpeg executable to install. Defaults to the
      # system architecture. Only x64 and arm64 are supported (arm64 only on Linux).
      architecture: ''
      # Linking type of the binaries. Use "shared" to download shared binaries and 
      # "static" for statically linked ones. Shared builds are currently only available
      # for windows releases. Defaults to "static"
      linking-type: static
      # As of version 3 of this action, builds are no longer downloaded from GitHub
      # except on Windows: https://github.com/GyanD/codexffmpeg/releases.
      github-token: ${{ github.server_url == 'https://github.com' && github.token || '' }}
  - run: ffmpeg -i input.avi output.mkv

Outputs

  • ffmpeg-version: Installed version of FFmpeg.
  • ffmpeg-path: Path to the install directory containing ffmpeg and ffprobe binaries.
  • cache-hit: A boolean value indicating whether the tool cache was hit.

setup-ffmpeg's People

Contributors

deepdiver1975 avatar federicocarboni avatar joanise avatar michaeldeboey avatar rob93c avatar thesn10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

setup-ffmpeg's Issues

Action doesn't install FFmpeg 6

Hello all,
looking at one of my recent action's logs, I noticed that setup-ffmpeg still retrieves the version 5.0.1 of both FFmpeg and FFprobe.

After a quick look, I found that the action to create a release has been failing since July 2022 and its most recent execution shows the following error:

Run actions/create-release@v1
with:
tag_name: ffmpeg-6.0-
release_name: FFmpeg Build v6.0
draft: false
prerelease: false
env:
GITHUB_TOKEN: ***
Error: Validation Failed: {"resource":"Release","code":"custom","field":"tag_name","message":"tag_name is not a valid tag"}, {"resource":"Release","code":"custom","field":"tag_name","message":"tag_name is not well-formed"}, {"resource":"Release","code":"custom","message":"Published releases must have a valid tag"}

Also, the action used internally (actions/create-release) is not maintained anymore so it can be worth considering to replace it with one of its alternatives listed in their README.

Git lfs videos are invalid

Hi there,

Thanks for creating this action!

I'm having trouble using it though, for some reason my files are said to be invalid when everything works fine locally.

Ideally I would keep the video as mp4, but I tried running it as AVI as well, and other than the "moov_atom_not_found", everything was the same.

https://github.com/Flowtter/crispy/actions/runs/3905792300
https://github.com/Flowtter/crispy/actions/runs/3905696275

The commit: Flowtter/crispy@dd07ae6

I'm also wondering if the problem would be that the video is saved using git-lfs

edit: Without git-lfs, it seems to work fine. So the problem is git-lfs

ffmpeg 6.1 release does not support drawtext

Yesterday, our builds were succeeding with ffmpeg build 6.0. Today, they are failing with ffmpeg build 6.1 because of a missing drawtext filter.

[AVFilterGraph @ 0x6c7a600] No such filter: 'drawtext'

feature: pin to a specific release

Currently this action will install the latest available FFmpeg release. This makes it likely that the version we rely on for testing will be out of sync with our local development and remote production versions.

An option to specify the version would be very helpful.

This option might make some people think they can specify any arbitrary version of ffmpeg and it will be installed. Documentation may be necessary to clarify that only versions tagged in https://github.com/FedericoCarboni/setup-ffmpeg/releases can be chosen.

Rate limit exceeded error on macos

I am trying to use this action in my project running both Windows and Mac jobs.
It was working before for both, but now it only works on the Windows jobs.

When running it on the Mac job, I get this error Error: API rate limit exceeded for 199.7.166.17. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

Darwin ARM64: Unsupported architecture

Error: AssertionError [ERR_ASSERTION]: Unsupported architecture (only x64 is supported)

using latest MacOS on GitHub Action:

Current runner version: '2.316.0'
Operating System
  macOS
  14.4.1
  23E224
Runner Image
  Image: macos-14-arm64
  Version: 20240422.3

worked before the update of their images:

Current runner version: '2.315.0'
Operating System
  macOS
  12.7.4
  21H1123
Runner Image
  Image: macos-12
  Version: 20240412.2

Fetching versions list fails sometime

Hi,
I am using this action in a repo where 8 jobs starts simultaneously and in some cases It throws fetch failed error. This error doesn't occur in v2

image

Warnings from GitHub just started when using this action

I have this in my workflow:

      - uses: FedericoCarboni/setup-ffmpeg@v1
        id: setup-ffmpeg

and I get these warnings from GitHub actions - noticed today for the first time:

Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.