{"id":13908293,"url":"https://github.com/shaka-project/static-ffmpeg-binaries","last_synced_at":"2025-10-27T19:46:50.757Z","repository":{"id":41806077,"uuid":"393184091","full_name":"shaka-project/static-ffmpeg-binaries","owner":"shaka-project","description":"Static binaries of FFmpeg, for multiple OS \u0026 CPU combinations, built from source in a GitHub Actions workflow.","archived":false,"fork":false,"pushed_at":"2025-01-17T22:20:12.000Z","size":213,"stargazers_count":19,"open_issues_count":0,"forks_count":13,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T03:51:11.892Z","etag":null,"topics":["ffmpeg","ffprobe","shaka","shaka-packager","shaka-streamer","static-binaries","static-binary"],"latest_commit_sha":null,"homepage":"https://github.com/shaka-project/static-ffmpeg-binaries/releases","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shaka-project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-05T22:24:41.000Z","updated_at":"2025-02-23T10:07:18.000Z","dependencies_parsed_at":"2023-01-20T01:48:45.487Z","dependency_job_id":"a7fc5188-9fc0-4fbe-8ace-7e0651e94f4c","html_url":"https://github.com/shaka-project/static-ffmpeg-binaries","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fstatic-ffmpeg-binaries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fstatic-ffmpeg-binaries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fstatic-ffmpeg-binaries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shaka-project%2Fstatic-ffmpeg-binaries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shaka-project","download_url":"https://codeload.github.com/shaka-project/static-ffmpeg-binaries/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248897206,"owners_count":21179556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ffmpeg","ffprobe","shaka","shaka-packager","shaka-streamer","static-binaries","static-binary"],"created_at":"2024-08-06T23:02:37.344Z","updated_at":"2025-10-27T19:46:45.721Z","avatar_url":"https://github.com/shaka-project.png","language":"Shell","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# static-ffmpeg-binaries\n\nStatic binaries of FFmpeg, for multiple OS \u0026amp; CPU combinations, built from\nsource in a GitHub Actions workflow.\n\nTo download binaries, visit the [releases page][releases].\n\n\n# License\n\nThe GitHub Actions workflows and other scripts in this repo are covered by the\nApache license.\nPlease see the [workflow source][workflow], [API client source][api-client],\n[version script source][version-script], and see [the Apache license][apache]\nfor license details.\n\nThe resulting FFmpeg binaries are built using GPL libraries, and are therefore\npublished under the GPL license.\nPlease see the [releases page][releases] for binaries, and see [FFmpeg's GPL\nlicense][gpl] for license details.\n\n\n# How are they built?\n\nFFmpeg and its key dependencies are all built from source and linked statically.\nEach run of the GitHub Actions workflow logs the MD5 sums of the binaries, and\nit places the MD5 sums into the release notes.  You can see how they were built,\nand you can verify that they haven't been tampered with.  The sums in the\nworkflow logs, release notes, and the binaries should all match.\nYou can read the details in the [workflow source][workflow].\n\nMinimal third-party GitHub Actions have been used in this workflow, to protect\nagainst supply-chain attacks.  The following actions are used:\n\n - mxschmitt/action-tmate: Used only on failure to debug failed builds, and\n   only if debug is configured at the repo level.\n\n\n# Triggering a build\n\nUpdate the version numbers as needed in the [version file][version-file], then\ncreate a tag on the new commit.  Full builds will be triggered, and binaries\nwill be attached to a release on the new tag.\n\n\n# Tag names\n\nTag names should follow the form of `$FFMPEG_VERSION-$WORKFLOW_RELEASE_NUMBER`.\nFor example, the first time we release a build based on FFmpeg n4.4, the tag\nshould be \"n4.4-1\".  If we need to update the dependencies, or change the\nconfiguration, or make any other changes to the workflow that don't change the\nFFmpeg version, the next release would be \"n4.4-2\".  When FFmpeg n4.5 is\nreleased upstream, we could update to that and then tag \"n4.5-1\".\n\n\n# Local builds\n\nYou can do these steps on your actual device, or on a virtual device or\ncontainer to avoid polluting your system.\n\n1. Set up a build environment (packages, tools, etc) similar to what is done in\n   the [workflow source][workflow] for your OS.\n2. If you are using Linux or macOS, run `export SUDO=sudo`.\n3. If you are using Linux, run `export RUNNER_OS=Linux`.\n4. If you are using macOS, run `export RUNNER_OS=macOS`.\n5. If you are using Linux, run `export RUNNER_OS=Windows`.\n6. Set a temp path for `GITHUB_ENV`, for example `export GITHUB_ENV=/tmp/github.env`.\n7. Create a build folder.  For example, `mkdir -p build`.  It does not need to\n   be in the git working directory.\n8. Change into that build directory.\n9. Create a symlink to the repo root called `repo-src` to emulate the structure\n   used by the workflow.  For example, if `build` is inside the repo, use\n   `ln -s ../ repo-src`.\n10. Run the build scripts in [`build-scripts`][] in numerical order.\n\n\n# Docker builds\n\nYou can run the above steps automatically in an Ubuntu Docker container with:\n\n```sh\ndocker build -t static-ffmpeg-binaries /path/to/static-ffmpeg-binaries\ndocker run -v /path/to/static-ffmpeg-binaries:/src static-ffmpeg-binaries /src/build.sh\n```\n\n\n[releases]: https://github.com/shaka-project/static-ffmpeg-binaries/releases\n[workflow]: https://github.com/shaka-project/static-ffmpeg-binaries/blob/main/.github/workflows/release.yaml\n[api-client]: https://github.com/shaka-project/static-ffmpeg-binaries/blob/main/api-client/main.js\n[version-script]: https://github.com/shaka-project/static-ffmpeg-binaries/blob/main/get-version.sh\n[version-file]: https://github.com/shaka-project/static-ffmpeg-binaries/blob/main/versions.txt\n[apache]: https://github.com/shaka-project/static-ffmpeg-binaries/blob/main/LICENSE\n[gpl]: https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.GPLv3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaka-project%2Fstatic-ffmpeg-binaries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaka-project%2Fstatic-ffmpeg-binaries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaka-project%2Fstatic-ffmpeg-binaries/lists"}