Skip to content

build: build with ffmpeg-build - #60

Merged
ryan-morris merged 9 commits into
mainfrom
chore/ffmpeg-build
Oct 15, 2026
Merged

ryan-morris merged 9 commits into
mainfrom
chore/ffmpeg-build

Conversation

@ryan-morris

@ryan-morris ryan-morris commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

What

This repository stops building FFmpeg with its own scripts and builds it with ffmpeg-build instead. The same 120 builds are defined in ffmpeg-build.yml, versions are locked in ffmpeg.lock, and small workflows call ffmpeg-build's reusable workflows (pinned by commit):

  • ci.yml: checks ffmpeg-build.yml and ffmpeg.lock (valid, every target can be planned) in a minute, building nothing; merges the lock updates and Dependabot's PRs once result passes.
  • codeql.yml: CodeQL on the workflows, on every PR, on main and weekly (security-and-quality queries).
  • release.yml: the daily release of whatever changed. It builds and tests every target of a release before publishing it.
  • update-lock.yml: the daily lock update (new library versions, FFmpeg point releases, new ffmpeg-build versions), opened as devenvy-bot so it gets CI and code scanning like any PR.

Removed: scripts/ (the bash build system), deps.json, Renovate, the generated matrix docs, the old CodeQL workflow and config (C/C++ and the .build/ exclusion no longer apply; the new codeql.yml scans the workflows), DEVELOPMENT.md and SOURCE_OFFER.txt. The docs are a README and one usage page.

Same as today

All 120 targets (FFmpeg 8 and 9 × 15 platforms × 4 licenses) were built and tested with this engine before this PR: every Linux, Windows and Android build, and every kind of Apple build. Spot comparisons with the published 9.0.2.3 archives (linux-x64-gplv3, linux-musl-x64-lgplv2) found the same files, configure flags, registered components, sonames and linking. Asset names, the iOS bundle layout, SHA256SUMS and the 4-part tags are unchanged; the next releases are 8.1.3.4 and 9.0.2.4.

Carried over: the NVIDIA headers hold on SDK 13.0 (#54, as pin: { nvenc: '13.0' }); the mbedTLS 3.x hold (#18, now in ffmpeg-build's recipe); Vulkan on the Apple v3 builds through MoltenVK; win-x64 debug symbols (#20) as a release asset.

Changes on purpose

  • legal/ becomes one THIRD-PARTY-NOTICES.txt at each archive's root (devenvy/ffmpeg-dotnet is updated to match before its next release).
  • gplv2 builds gain SRT/RIST encryption: mbedTLS under its GPL-2.0-or-later option.
  • Whisper uses the GPU on v2 Windows and Android builds, through the system's Vulkan library (nothing Apache-2.0 is shipped).
  • Each release also has manifest.yml (what each build is made of) and ffmpeg-<version>-sources.tar.gz.

Before merging

  • Earlier pushes of this PR built and tested all 120 targets with this engine (all passed). The first release after merging builds them again before publishing.
  • The main ruleset should require result (the old branch protection's build/test/Analyze (c-cpp)/shellcheck checks no longer exist).

🤖 Generated with Claude Code

ryan-morris and others added 5 commits October 13, 2026 23:07
ffmpeg-build.yml holds the 120 builds (FFmpeg 8 and 9, 15 platforms, four licenses) and ffmpeg.lock their versions;
the CI, release and lock-update workflows call ffmpeg-build's reusable workflows. The build scripts, the version
ledger, Renovate and the generated matrix docs go.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
THIRD-PARTY-NOTICES.txt replaces legal/; gplv2 builds gain SRT/RIST encryption (mbedTLS under its GPL-2.0-or-later
option); v2 Windows and Android Whisper runs on the GPU through the system's Vulkan library.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lock updates are opened as devenvy-bot, so they start CI and code scanning, and merge once the result check passes;
Dependabot's action bumps merge the same way; a new FFmpeg major is reported. Permissions are granted per job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s to v0.0.2

NVENC needs driver 570+ on SDK 13.0 and 610+ on 13.1, which the last driver branch for GTX 900/10-series cards never
reaches (#54). The engine's reusable workflows are pinned by commit, as the org's code scanning expects.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GnuTLS's system priority file is /etc/gnutls/config rather than a path inside the build's deps folder, which the
maccatalyst gplv2 builds' release check rejected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ryan-morris and others added 3 commits October 14, 2026 19:50
The builds install the engine the lock names, so the GnuTLS fix in 0.0.3 needs the lock to name it too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orkflow

A pull request now runs ffmpeg-build's check.yml (is ffmpeg-build.yml valid, does ffmpeg.lock cover it, can every
target be planned) in a minute instead of building every target; the daily release builds and tests them all before
it publishes. codeql.yml scans the workflows on every pull request, on main and weekly, in place of the default
setup. ffmpeg-build's workflows move to v0.0.5; workflow names are capitalised like the other repositories'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant