Report repository build, publication, or package vulnerabilities through a private GitHub security advisory. Report FFmpeg vulnerabilities directly to the FFmpeg security team at security@ffmpeg.org. Do not disclose an uncoordinated vulnerability in a public issue.
- Exact dotted source versions are accepted; snapshots, RCs, and shell input are rejected.
- Source and detached signatures come only from
https://ffmpeg.org/releases. - The vendored official key fingerprint is asserted before an isolated
gpgvverification. Machine-readableVALIDSIGoutput and process exit status are mandatory. - One canonical source manifest binds version, filenames, SHA-256, source-derived epoch, and signer. Every build leg rechecks it.
- Actions are pinned to full commit SHAs and manylinux images to digests.
- Linux ARM uses a native ARM runner. Windows uses UCRT64 and w32threads, with GCC/winpthreads selected statically and dynamic winpthread imports rejected.
- Minimal configure output, architecture, exports, imports, dependency closure, and H.264 registration are release gates.
- Archives, wheels, metadata, and PEP 427 RECORD files are deterministic and validated before publication.
- Existing release assets are never overwritten. Publication uses a draft followed by an exact upload and final visibility change.
The repository default is contents: read. Only the GitHub release job
receives contents: write. Only the PyPI environment job receives
id-token: write. Nightly discovery receives actions: write solely to
dispatch the reviewed release workflow. No PAT or package index secret is
stored.
Repository-authored tooling and Python discovery code is MIT licensed. Bundled FFmpeg shared libraries are LGPL-2.1-or-later. Exact corresponding source, signature, actual LGPL texts, build configuration, and dependency inventory accompany every release.
For an affected release, publish a corrected upstream FFmpeg version or a new ifm build revision. Do not mutate or replace the original release.