51 lines
2.2 KiB
Markdown
51 lines
2.2 KiB
Markdown
# FFmpeg WebAssembly Corresponding Source
|
|
|
|
This archive accompanies the exact `@ffmpeg/core` and `@ffmpeg/core-mt`
|
|
0.12.10 object code distributed by av-tools 0.1.0.
|
|
|
|
`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 upstream build selects Emscripten SDK 3.1.40 and FFmpeg n5.1.4. av-tools
|
|
does not modify the five published JavaScript/WebAssembly core assets. Their
|
|
exact sizes, hashes and embedded configure arguments are recorded in the
|
|
application's `SOURCE.md` 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:
|
|
|
|
```sh
|
|
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. It is not a turnkey offline or
|
|
byte-for-byte reproducible build recipe. To reconstruct a pinned build,
|
|
adapt each remote `ADD` to use the corresponding bundled source tree. Replace
|
|
the zimg `git clone -b ... --recursive` step with the bundled `sources/zimg/`
|
|
tree, which already contains its pinned GoogleTest submodule at
|
|
`test/extra/googletest/`. Keep the included build scripts and Emscripten
|
|
version unchanged. The upstream targets are `make prd` for single-thread and
|
|
`make prd-mt` for multithread.
|
|
|
|
General-purpose build tooling such as Git, Docker/BuildKit and the Emscripten
|
|
3.1.40 container image is not copied into this archive.
|