{
  "verified_at": "2026-10-04",
  "upstream_release": {
    "tag": "v12.15",
    "commit": "71aa99d37c02a7b4c435275ca9ef50e612f6efa1",
    "url": "https://github.com/ffmpegwasm/ffmpeg.wasm/releases/tag/v12.15",
    "verification": "release title and source package.json agree with both npm package versions; npm metadata does not include gitHead; binary reproducibility has not been established"
  },
  "source_archive": {
    "file": "ffmpeg-wasm-71aa99d37c02a7b4c435275ca9ef50e612f6efa1.tar.gz",
    "url": "https://codeload.github.com/ffmpegwasm/ffmpeg.wasm/tar.gz/71aa99d37c02a7b4c435275ca9ef50e612f6efa1",
    "sha256": "53c5842f160cece0e39345876f9483b56aa84b966637ff6f624353a0fa884219",
    "scope": "ffmpeg.wasm wrapper, wasm bindings, FFmpeg overrides, Dockerfile and build scripts. This archive does not contain complete FFmpeg/dependency source trees."
  },
  "packages": [
    {
      "name": "@ffmpeg/ffmpeg",
      "version": "0.12.15",
      "license": "MIT",
      "tarball": "https://registry.npmjs.org/@ffmpeg/ffmpeg/-/ffmpeg-0.12.15.tgz",
      "npm_sha1": "e5b05c2b5c946f3464b3aa85461e4654a4649d80",
      "npm_integrity": "sha512-1C8Obr4GsN3xw+/1Ww6PFM84wSQAGsdoTuTWPOj2OizsRDLT4CXTaVjPhkw6ARyDus1B9X/L2LiXHqYYsGnRFw==",
      "tarball_sha256": "c8a23365fb39b46d3d1d9baa2e74b522d00ce5d57e8b20471ad2665eaad38e3e",
      "distributed_files": [
        {
          "path": "worker/classes.js",
          "bytes": 9747,
          "sha256": "7a829c898bdbc3a8806652a5502d9101178ce4e988a2c50b3abc1306ce4fc919"
        },
        {
          "path": "worker/const.js",
          "bytes": 1016,
          "sha256": "9e3bc9dd84781c81daf459e2c46eeec815edac35089832681d9a9a0f383060d0"
        },
        {
          "path": "worker/errors.js",
          "bytes": 332,
          "sha256": "619310d7ef5fe5fefa0a31927db862b7c291713cfef4d71753fa8aafd18f4db6"
        },
        {
          "path": "worker/index.js",
          "bytes": 58,
          "sha256": "cad19572420f7ead17272082d9582ebaed7f2856e19875542f83daf8d25d3b5d"
        },
        {
          "path": "worker/types.js",
          "bytes": 295,
          "sha256": "72f80e6fd44fcd18b55c9a0deb3bc70b9bb37480cf969045ca4521f5a11300f5"
        },
        {
          "path": "worker/utils.js",
          "bytes": 138,
          "sha256": "8c2e0e16445f8d3a0acbb812f2c60541a92c88ed0bf9ffe96c52e7fb6c8b1d72"
        },
        {
          "path": "worker/worker.js",
          "bytes": 5085,
          "sha256": "feff0ac937ea225e997e1fae997a74f8b8d572423a526da59eb56624b1f3cde7"
        }
      ],
      "integrity_verified": true
    },
    {
      "name": "@ffmpeg/core",
      "version": "0.12.10",
      "license": "GPL-2.0-or-later",
      "tarball": "https://registry.npmjs.org/@ffmpeg/core/-/core-0.12.10.tgz",
      "npm_sha1": "3177e88852bfbfaad5d258e9e0ac1fd9dffd3223",
      "npm_integrity": "sha512-dzNplnn2Nxle2c2i2rrDhqcB19q9cglCkWnoMTDN9Q9l3PvdjZWd1HfSPjCNWc/p8Q3CT+Es9fWOR0UhAeYQZA==",
      "tarball_sha256": "d00089ce82e1bdf637ddbe42e0c3d41a1ba8cf4c9e825e7fa4d0bb970e844bd4",
      "distributed_files": [
        {
          "path": "ffmpeg-core.js",
          "bytes": 111818,
          "sha256": "9842e9f87eb4e86557b5335101c5b4a5a2f8873eba355a07f51d34bd3d63364b",
          "upstream_bytes": 111804,
          "upstream_sha256": "67a48f11645f85439f3fde4f2119042c16b374b910206b7a7a24f342e28dcae3",
          "modified": true,
          "local_patch_id": "ffprobe-return-value-v1"
        },
        {
          "path": "ffmpeg-core.wasm",
          "bytes": 32232419,
          "sha256": "9f57947a5bd530d8f00c5b3f2cb2a3492faa7e5d823315342d6a8656d0a6b7b7"
        }
      ],
      "integrity_verified": true
    }
  ],
  "source_distribution_complete": false,
  "corresponding_source_note": "Build recipes refer to upstream repositories/tags/branches; moving branch revisions actually used to produce the published npm binary are not established.",
  "build_source_references": [
    {
      "repository": "https://github.com/ffmpegwasm/x264.git",
      "ref": "4-cores",
      "build_ref_variable": "X264_BRANCH",
      "immutability": "moving branch"
    },
    {
      "repository": "https://github.com/ffmpegwasm/x265.git",
      "ref": "3.4",
      "build_ref_variable": "X265_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/libvpx.git",
      "ref": "v1.13.1",
      "build_ref_variable": "LIBVPX_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/lame.git",
      "ref": "master",
      "build_ref_variable": "LAME_BRANCH",
      "immutability": "moving branch"
    },
    {
      "repository": "https://github.com/ffmpegwasm/Ogg.git",
      "ref": "v1.3.4",
      "build_ref_variable": "OGG_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/theora.git",
      "ref": "v1.1.1",
      "build_ref_variable": "THEORA_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/opus.git",
      "ref": "v1.3.1",
      "build_ref_variable": "OPUS_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/vorbis.git",
      "ref": "v1.3.3",
      "build_ref_variable": "VORBIS_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/zlib.git",
      "ref": "v1.2.11",
      "build_ref_variable": "ZLIB_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/libwebp.git",
      "ref": "v1.3.2",
      "build_ref_variable": "LIBWEBP_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/ffmpegwasm/freetype2.git",
      "ref": "VER-2-10-4",
      "build_ref_variable": "FREETYPE2_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/fribidi/fribidi.git",
      "ref": "v1.0.9",
      "build_ref_variable": "FRIBIDI_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/harfbuzz/harfbuzz.git",
      "ref": "5.2.0",
      "build_ref_variable": "HARFBUZZ_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/libass/libass.git",
      "ref": "0.15.0",
      "build_ref_variable": "LIBASS_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/FFmpeg/FFmpeg.git",
      "ref": "n5.1.4",
      "build_ref_variable": "FFMPEG_VERSION",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    },
    {
      "repository": "https://github.com/sekrit-twc/zimg.git",
      "ref": "release-3.0.5",
      "build_ref_variable": "ZIMG_BRANCH",
      "immutability": "upstream tag/ref; not independently proven to be the binary build revision"
    }
  ],
  "toolchain": {
    "docker_base": "emscripten/emsdk:3.1.40",
    "emscripten_ports": [
      "sdl2",
      "sdl2-mt"
    ],
    "note": "The exact image digest and full linked runtime/port source inventory have not been established.",
    "sdl2_version": "2.24.2",
    "sdl2_source_url": "https://github.com/libsdl-org/SDL/archive/release-2.24.2.zip",
    "sdl2_archive_sha512_from_emscripten": "b178bdc8f7c40271e09a72f639649d1d61953dda4dc12b77437259667b63b961fd3b2c67b0de6fdc5f9f9c80c49bfafd164e4c13715bc1056e550acc8bad5a3c",
    "emscripten_commit": "5c27e79dd0a9c4e27ef2326841698cdd4f6b5784",
    "runtime_source_snapshot": "See source-manifest.json: Emscripten repository includes musl, libc++, libc++abi, compiler-rt and JavaScript runtime source; SDL2 source is separately supplied."
  },
  "local_modifications": [
    {
      "id": "ffprobe-return-value-v1",
      "date": "2026-10-04",
      "scope": "distributed ESM ffmpeg-core.js only; npm package and WASM unchanged",
      "reason": "capture normal C ffprobe return value in Module.ret; preserve abort/error handling",
      "patch_file": "binding-patch.txt",
      "modified_source": "build-reference/patched-bind.js",
      "generator_source": "build-reference/prepare-video-engine.mjs",
      "old_text": "Module[\"_ffprobe\"](args.length,stringsToPtr(args))",
      "new_text": "Module[\"ret\"]=Module[\"_ffprobe\"](args.length,stringsToPtr(args))",
      "occurrences": 1,
      "original_sha256": "67a48f11645f85439f3fde4f2119042c16b374b910206b7a7a24f342e28dcae3",
      "distributed_sha256": "9842e9f87eb4e86557b5335101c5b4a5a2f8873eba355a07f51d34bd3d63364b",
      "distributed_bytes": 111818,
      "hash_verification": "deterministically calculated from the verified npm file with exactly one replacement; actual generated file must match",
      "generator_source_sha256": "fc5ebb0f40937aa57870f377785260a1d333bdb5a687715949924fcb09cf7deb",
      "modified_source_sha256": "11d331c7e6be3659d756f11336c67f862937b5c92d2246a4dda87e72bbc02cd1"
    }
  ],
  "source_snapshots": {
    "manifest": "source-manifest.json",
    "manifest_sha256": "b72f879254e53e1c6a793519b416f31c15ed7b360cb13dd5bc6119f89532c65f",
    "archive_count": 21,
    "archive_total_bytes": 108553971,
    "reference_archive_collection_complete": true,
    "corresponding_source_confirmed": false,
    "index": "index.html",
    "build_instructions": "BUILDING.txt",
    "note": "All listed candidate reference archives collected and hashed; does not prove exact source correspondence for the distributed npm binary."
  }
}
