# FFmpeg WASM: licenses, sources, and build information

This directory redistributes unmodified npm runtime assets:

1. `@ffmpeg/ffmpeg@0.12.15`: MIT wrapper; `ffmpeg.js` and `814.ffmpeg.js`.
2. `@ffmpeg/core@0.12.10`: GPL-2.0-or-later WebAssembly core, including FFmpeg and external libraries. The wrapper's MIT license does not replace the core's GPL license.

## Source code and build

The upstream commit that explicitly releases core 0.12.10 is `71aa99d37c02a7b4c435275ca9ef50e612f6efa1`:
https://github.com/ffmpegwasm/ffmpeg.wasm/commit/71aa99d37c02a7b4c435275ca9ef50e612f6efa1

The corresponding upstream repository snapshot is included as:
`source/ffmpeg-wasm-core-0.12.10-source.tar.gz`

Public source archive URL:
https://github.com/ffmpegwasm/ffmpeg.wasm/archive/71aa99d37c02a7b4c435275ca9ef50e612f6efa1.tar.gz

That snapshot includes the Dockerfile, Emscripten build scripts, bindings, patched FFmpeg command entry points, and build documentation. The Dockerfile fetches FFmpeg n5.1.4 plus the linked libraries listed below. Their upstream source is required when rebuilding; the snapshot alone does not contain every dependency's C/C++ source.

FFmpeg source, version n5.1.4:
https://github.com/FFmpeg/FFmpeg/tree/n5.1.4
https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n5.1.4.tar.gz

Rebuild instructions from the included source: install Docker 23+ with buildx and make on a suitable build machine, unpack the source snapshot, and follow its core contribution guide / Makefile. In that source directory, the documented production single-thread target is `make prd`; `make prd-mt` is the different multithread target. The Dockerfile and build scripts included here document `FFMPEG_ST`, linked libraries, and compilation flags. The production build enables WebAssembly SIMD (-msimd128), so the website visitor needs a modern browser with WebAssembly SIMD and BigInt, but no native build tools.

Core build guide at the pinned commit:
https://github.com/ffmpegwasm/ffmpeg.wasm/blob/71aa99d37c02a7b4c435275ca9ef50e612f6efa1/apps/website/docs/contribution/core.md

## Linked dependency source locations

These references are taken from the release Dockerfile. Some upstream Dockerfile references are branches (`master`, `4-cores`) rather than immutable dependency commits; they identify the published upstream build recipe and are not a claim of byte-for-byte reproducibility from today's branch heads.

1. x264: https://github.com/ffmpegwasm/x264/tree/4-cores
2. x265 3.4: https://github.com/ffmpegwasm/x265/tree/3.4
3. libvpx v1.13.1: https://github.com/ffmpegwasm/libvpx/tree/v1.13.1
4. LAME: https://github.com/ffmpegwasm/lame/tree/master
5. Ogg v1.3.4: https://github.com/ffmpegwasm/Ogg/tree/v1.3.4
6. Theora v1.1.1: https://github.com/ffmpegwasm/theora/tree/v1.1.1
7. Opus v1.3.1: https://github.com/ffmpegwasm/opus/tree/v1.3.1
8. Vorbis v1.3.3: https://github.com/ffmpegwasm/vorbis/tree/v1.3.3
9. zlib v1.2.11: https://github.com/ffmpegwasm/zlib/tree/v1.2.11
10. libwebp v1.3.2: https://github.com/ffmpegwasm/libwebp/tree/v1.3.2
11. FreeType 2.10.4: https://github.com/freetype/freetype/tree/VER-2-10-4
12. FriBidi v1.0.9: https://github.com/fribidi/fribidi/tree/v1.0.9
13. HarfBuzz 5.2.0: https://github.com/harfbuzz/harfbuzz/tree/5.2.0
14. libass 0.15.0: https://github.com/libass/libass/tree/0.15.0
15. zimg release-3.0.5: https://github.com/sekrit-twc/zimg/tree/release-3.0.5

License texts and notices are in `licenses/`. npm package metadata and the SHA-512-verified archive locations are recorded in `../extended-manifest.json`; every distributed file has a SHA-256 hash there. The runtime binaries are unmodified.
