From ccf814680f7249e147a961fc9a1d75c96e2cfd2b Mon Sep 17 00:00:00 2001 From: project516 <138796702+Project516@users.noreply.github.com> Date: Thu, 29 Oct 2026 17:28:34 -0500 Subject: [PATCH 1/2] Release 0.17.1. --- CHANGELOG.md | 2 +- apps/vanilla-app/download-assets.js | 8 ++++---- apps/website/docs/getting-started/usage.md | 18 +++++++++--------- .../website/src/components/Playground/const.ts | 2 +- packages/core-jspi/package.json | 2 +- packages/core-mt/package.json | 2 +- packages/core/package.json | 2 +- packages/ffmpeg/package.json | 2 +- packages/ffmpeg/src/const.ts | 2 +- packages/types/package.json | 2 +- packages/util/package.json | 2 +- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 870a2c6b8b..0b9f346a0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to this project are documented in this file. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). -## Unreleased +## 0.17.1 ### Changed diff --git a/apps/vanilla-app/download-assets.js b/apps/vanilla-app/download-assets.js index aa8c2c2c0c..0be9d9c46f 100644 --- a/apps/vanilla-app/download-assets.js +++ b/apps/vanilla-app/download-assets.js @@ -5,10 +5,10 @@ const fs = require("fs"); const NPM_URL = "https://registry.npmjs.org"; const ROOT = "public/assets"; -const FFMPEG_VERSION = "0.17.0"; -const UTIL_VERSION = "0.17.0"; -const CORE_VERSION = "0.17.0"; -const CORE_MT_VERSION = "0.17.0"; +const FFMPEG_VERSION = "0.17.1"; +const UTIL_VERSION = "0.17.1"; +const CORE_VERSION = "0.17.1"; +const CORE_MT_VERSION = "0.17.1"; const FFMPEG_TGZ = `ffmpeg-wasm-${FFMPEG_VERSION}.tgz`; const UTIL_TGZ = `ffmpeg-wasm-util-${UTIL_VERSION}.tgz`; diff --git a/apps/website/docs/getting-started/usage.md b/apps/website/docs/getting-started/usage.md index d0aa0c2409..7d87781a78 100644 --- a/apps/website/docs/getting-started/usage.md +++ b/apps/website/docs/getting-started/usage.md @@ -17,7 +17,7 @@ single-thread core is about {Math.round(coreSizes.core["ffmpeg-core.wasm"] / 1e6 :::caution If you are a [vite](https://vitejs.dev/) user, use `esm` in **baseURL** instead of `umd`: -~~https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/umd~~ => https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/esm +~~https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/umd~~ => https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/esm ::: ```jsx live @@ -30,7 +30,7 @@ function() { const messageRef = useRef(null); const load = async () => { - const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/umd' + const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/umd' const ffmpeg = ffmpegRef.current; ffmpeg.on('log', ({ message }) => { messageRef.current.innerHTML = message; @@ -91,7 +91,7 @@ function() { const messageRef = useRef(null); const load = async () => { - const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core-mt@0.17.0/dist/umd' + const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core-mt@0.17.1/dist/umd' const ffmpeg = ffmpegRef.current; ffmpeg.on('log', ({ message }) => { messageRef.current.innerHTML = message; @@ -143,7 +143,7 @@ function() { const messageRef = useRef(null); const load = async () => { - const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/umd' + const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/umd' const ffmpeg = ffmpegRef.current; ffmpeg.on('log', ({ message }) => { messageRef.current.innerHTML = message; @@ -203,7 +203,7 @@ function() { const messageRef = useRef(null); const load = async () => { - const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/umd' + const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/umd' const ffmpeg = ffmpegRef.current; // Listen to progress event instead of log. ffmpeg.on('progress', ({ progress, time }) => { @@ -254,7 +254,7 @@ function() { const messageRef = useRef(null); const load = async () => { - const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/umd' + const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/umd' const ffmpeg = ffmpegRef.current; ffmpeg.on('log', ({ message }) => { messageRef.current.innerHTML = message; @@ -324,7 +324,7 @@ function() { const messageRef = useRef(null); const load = async () => { - const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/umd' + const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/umd' const ffmpeg = ffmpegRef.current; ffmpeg.on('log', ({ message }) => { messageRef.current.innerHTML = message; @@ -383,7 +383,7 @@ function() { const messageRef = useRef(null); const load = async () => { - const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.0/dist/umd' + const baseURL = 'https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@0.17.1/dist/umd' const ffmpeg = ffmpegRef.current; ffmpeg.on('log', ({ message }) => { messageRef.current.innerHTML = message; @@ -587,7 +587,7 @@ Install the package and point `coreURL` and `wasmURL` at it. `FFmpeg` works the same as with the other cores: ```ts -const baseURL = "https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core-jspi@0.17.0/dist/umd"; +const baseURL = "https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core-jspi@0.17.1/dist/umd"; await ffmpeg.load({ coreURL: await toBlobURL(`${baseURL}/ffmpeg-core.js`, "text/javascript"), wasmURL: await toBlobURL(`${baseURL}/ffmpeg-core.wasm`, "application/wasm"), diff --git a/apps/website/src/components/Playground/const.ts b/apps/website/src/components/Playground/const.ts index e856ad7ca5..71106b1c54 100644 --- a/apps/website/src/components/Playground/const.ts +++ b/apps/website/src/components/Playground/const.ts @@ -1,6 +1,6 @@ import coreSizes from "../../data/core-sizes.json"; -export const CORE_VERSION = "0.17.0"; +export const CORE_VERSION = "0.17.1"; export const CORE_URL = `https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`; export const CORE_MT_URL = `https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core-mt@${CORE_VERSION}/dist/umd/ffmpeg-core.js`; diff --git a/packages/core-jspi/package.json b/packages/core-jspi/package.json index 460f5909e0..ffce8505f8 100644 --- a/packages/core-jspi/package.json +++ b/packages/core-jspi/package.json @@ -1,6 +1,6 @@ { "name": "@project516/ffmpeg-wasm-core-jspi", - "version": "0.17.0", + "version": "0.17.1", "description": "Experimental FFmpeg WebAssembly version (single thread, JSPI)", "main": "./dist/umd/ffmpeg-core.js", "exports": { diff --git a/packages/core-mt/package.json b/packages/core-mt/package.json index 34acd2469c..a58dca888b 100644 --- a/packages/core-mt/package.json +++ b/packages/core-mt/package.json @@ -1,6 +1,6 @@ { "name": "@project516/ffmpeg-wasm-core-mt", - "version": "0.17.0", + "version": "0.17.1", "description": "FFmpeg WebAssembly version (multi thread)", "main": "./dist/umd/ffmpeg-core.js", "exports": { diff --git a/packages/core/package.json b/packages/core/package.json index 35b3270a6f..e1c5a4fe02 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@project516/ffmpeg-wasm-core", - "version": "0.17.0", + "version": "0.17.1", "description": "FFmpeg WebAssembly version (single thread)", "main": "./dist/umd/ffmpeg-core.js", "exports": { diff --git a/packages/ffmpeg/package.json b/packages/ffmpeg/package.json index af0f74e9e3..44b9625b07 100644 --- a/packages/ffmpeg/package.json +++ b/packages/ffmpeg/package.json @@ -1,6 +1,6 @@ { "name": "@project516/ffmpeg-wasm", - "version": "0.17.0", + "version": "0.17.1", "description": "FFmpeg WebAssembly version for browser", "main": "./dist/umd/ffmpeg.js", "types": "./dist/esm/index.d.ts", diff --git a/packages/ffmpeg/src/const.ts b/packages/ffmpeg/src/const.ts index b750803d16..69fe39b265 100644 --- a/packages/ffmpeg/src/const.ts +++ b/packages/ffmpeg/src/const.ts @@ -1,7 +1,7 @@ export const MIME_TYPE_JAVASCRIPT = "text/javascript"; export const MIME_TYPE_WASM = "application/wasm"; -export const CORE_VERSION = "0.17.0"; +export const CORE_VERSION = "0.17.1"; export const CORE_URL = `https://cdn.jsdelivr.net/npm/@project516/ffmpeg-wasm-core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`; export enum FFMessageType { diff --git a/packages/types/package.json b/packages/types/package.json index f68bcf6154..ec8d4c3085 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@project516/ffmpeg-wasm-types", - "version": "0.17.0", + "version": "0.17.1", "description": "ffmpeg.wasm types", "types": "types", "scripts": { diff --git a/packages/util/package.json b/packages/util/package.json index 894c0eb513..d680ca31c4 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@project516/ffmpeg-wasm-util", - "version": "0.17.0", + "version": "0.17.1", "description": "browser utils for @project516/*", "main": "./dist/cjs/index.js", "type": "module", From db81eb3b46f172d7ad181a45e0c4a5ec27eea977 Mon Sep 17 00:00:00 2001 From: project516 <138796702+Project516@users.noreply.github.com> Date: Thu, 29 Oct 2026 17:56:58 -0500 Subject: [PATCH 2/2] Record the 0.17.1 core sizes and baseline from CI run 40966174136. --- apps/website/docs/results.md | 10 ++-- apps/website/src/data/core-sizes.json | 14 +++--- baseline/bench.json | 72 +++++++++++++-------------- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/apps/website/docs/results.md b/apps/website/docs/results.md index f006204d2f..6f19a0e394 100644 --- a/apps/website/docs/results.md +++ b/apps/website/docs/results.md @@ -93,8 +93,8 @@ Median of five runs on one GitHub Actions runner, against native ffmpeg version | case | native (ms) | st (ms) | st ratio | st peak RSS (MB) | mt (ms) | mt ratio | mt peak RSS (MB) | | --- | --- | --- | --- | --- | --- | --- | --- | -| h264-to-vp9 | 130 | 480 | 3.69x | 258 | 1040 | 8.00x | 698 | -| h264-to-mpeg4 | 90 | 370 | 4.11x | 226 | 960 | 10.67x | 683 | -| scale-half | 100 | 1120 | 11.20x | 370 | 970 | 9.70x | 733 | -| h264-remux-mkv | 80 | 210 | 2.63x | 170 | 920 | 11.50x | 638 | -| vp8-720p-to-mp4 | 5190 | 83490 | 16.09x | 481 | 35520 | 6.84x | 1023 | +| h264-to-vp9 | 130 | 590 | 4.54x | 195 | 1140 | 8.77x | 668 | +| h264-to-mpeg4 | 100 | 460 | 4.60x | 168 | 1040 | 10.40x | 646 | +| scale-half | 100 | 1330 | 13.30x | 342 | 1100 | 11.00x | 691 | +| h264-remux-mkv | 90 | 300 | 3.33x | 169 | 1030 | 11.44x | 630 | +| vp8-720p-to-mp4 | 5380 | 82830 | 15.40x | 439 | 35920 | 6.68x | 936 | diff --git a/apps/website/src/data/core-sizes.json b/apps/website/src/data/core-sizes.json index 27c822da10..2a5135b568 100644 --- a/apps/website/src/data/core-sizes.json +++ b/apps/website/src/data/core-sizes.json @@ -1,15 +1,15 @@ { - "version": "0.17.0", + "version": "0.17.1", "core": { - "ffmpeg-core.js": 110036, - "ffmpeg-core.wasm": 40071974 + "ffmpeg-core.js": 101869, + "ffmpeg-core.wasm": 40078258 }, "core-mt": { - "ffmpeg-core.js": 113289, - "ffmpeg-core.wasm": 32778819 + "ffmpeg-core.js": 111123, + "ffmpeg-core.wasm": 32783782 }, "core-jspi": { - "ffmpeg-core.js": 97901, - "ffmpeg-core.wasm": 32412275 + "ffmpeg-core.js": 93588, + "ffmpeg-core.wasm": 32417267 } } diff --git a/baseline/bench.json b/baseline/bench.json index 44d6e8736c..79712754c0 100644 --- a/baseline/bench.json +++ b/baseline/bench.json @@ -4,65 +4,65 @@ "st": { "h264-to-vp9": { "nativeMs": 130, - "wasmMs": 480, - "ratio": 3.69, - "peakRssKb": 263876 + "wasmMs": 590, + "ratio": 4.54, + "peakRssKb": 199432 }, "h264-to-mpeg4": { - "nativeMs": 90, - "wasmMs": 370, - "ratio": 4.11, - "peakRssKb": 231660 + "nativeMs": 100, + "wasmMs": 460, + "ratio": 4.6, + "peakRssKb": 172492 }, "scale-half": { "nativeMs": 100, - "wasmMs": 1120, - "ratio": 11.2, - "peakRssKb": 378396 + "wasmMs": 1330, + "ratio": 13.3, + "peakRssKb": 349976 }, "h264-remux-mkv": { - "nativeMs": 80, - "wasmMs": 210, - "ratio": 2.63, - "peakRssKb": 173796 + "nativeMs": 90, + "wasmMs": 300, + "ratio": 3.33, + "peakRssKb": 172556 }, "vp8-720p-to-mp4": { - "nativeMs": 5190, - "wasmMs": 83490, - "ratio": 16.09, - "peakRssKb": 492276 + "nativeMs": 5380, + "wasmMs": 82830, + "ratio": 15.4, + "peakRssKb": 449280 } }, "mt": { "h264-to-vp9": { "nativeMs": 130, - "wasmMs": 1040, - "ratio": 8, - "peakRssKb": 714976 + "wasmMs": 1140, + "ratio": 8.77, + "peakRssKb": 683632 }, "h264-to-mpeg4": { - "nativeMs": 90, - "wasmMs": 960, - "ratio": 10.67, - "peakRssKb": 699028 + "nativeMs": 100, + "wasmMs": 1040, + "ratio": 10.4, + "peakRssKb": 661588 }, "scale-half": { "nativeMs": 100, - "wasmMs": 970, - "ratio": 9.7, - "peakRssKb": 750832 + "wasmMs": 1100, + "ratio": 11, + "peakRssKb": 707112 }, "h264-remux-mkv": { - "nativeMs": 80, - "wasmMs": 920, - "ratio": 11.5, - "peakRssKb": 653340 + "nativeMs": 90, + "wasmMs": 1030, + "ratio": 11.44, + "peakRssKb": 644924 }, "vp8-720p-to-mp4": { - "nativeMs": 5190, - "wasmMs": 35520, - "ratio": 6.84, - "peakRssKb": 1047904 + "nativeMs": 5380, + "wasmMs": 35920, + "ratio": 6.68, + "peakRssKb": 958920 } } }