Files
av-tools/scripts/ffmpeg-source-README.md

2.5 KiB

FFmpeg WebAssembly Corresponding Source

This archive accompanies the reviewed single-thread and multithread FFmpeg WebAssembly core profile distributed by av-tools. The profile retains the upstream core version 0.12.10 and FFmpeg n5.1.4 identities, but it is rebuilt from source rather than copied from the published @ffmpeg/core packages.

SOURCE_LOCK.json records the immutable Git commit for ffmpeg.wasm, FFmpeg and every external library selected by the upstream v12.15 build. The source trees are stored under sources/. In particular, the upstream branch names 4-cores and master have been resolved to the commits from which the published core was built; neither branch changed between its recorded commit and the upstream core release.

The original build-control files are in sources/ffmpeg.wasm/, including:

  • Dockerfile;
  • Makefile;
  • build/ffmpeg.sh;
  • build/ffmpeg-wasm.sh;
  • the other dependency scripts under build/.

The build uses Emscripten SDK 3.1.40 and FFmpeg n5.1.4. Its one source patch applies upstream ffmpeg.wasm commit b409e36475bc21f0451b5b1e1d126fa82871439a, which raises the Emscripten stack to 5 MiB and fixes the libopus encode failure reported upstream. The tracked scripts/build-reviewed-ffmpeg-core.sh driver in the matching av-tools source release also isolates optional host dependencies and records the exact toolchain identities. The generated assets' exact sizes, hashes and embedded configure arguments are recorded in the application's SOURCE.md, scripts/reviewed-ffmpeg-core-lock.json and docs/FFMPEG_BUILD.md.

The source archive preserves each component's own licence and copyright notices. av-tools itself is distributed separately under GPL-3.0-or-later. Codec patent permissions, where required, are separate from copyright licences.

To fetch and verify an identity:

git init source-check
git -C source-check fetch --depth 1 <repository> <revision>
test "$(git -C source-check rev-parse FETCH_HEAD)" = "<revision>"

The included ffmpeg.wasm Dockerfile documents the historical upstream build, but still names remote tags and branches. For the distributed reviewed profile, use this archive together with the matching av-tools source release and invoke its scripts/build-reviewed-ffmpeg-core.sh driver. The bundled sources/zimg/ tree already contains its pinned GoogleTest submodule at test/extra/googletest/.

General-purpose build tooling such as Git, Docker/BuildKit and the Emscripten 3.1.40 container image is not copied into this archive.