diff --git a/packages/ffmpeg/src/classes.ts b/packages/ffmpeg/src/classes.ts index bb366d9cba1..4fc794a0522 100644 --- a/packages/ffmpeg/src/classes.ts +++ b/packages/ffmpeg/src/classes.ts @@ -163,9 +163,15 @@ export class FFmpeg { */ public load = (config: FFMessageLoadConfig = {}): Promise => { if (!this.#worker) { - this.#worker = new Worker(new URL("./worker.js", import.meta.url), { - type: "module", - }); + if (!config.workerLoadURL) { + this.#worker = new Worker(new URL("./worker.js", import.meta.url), { + type: "module", + }); + } else { + this.#worker = new Worker(config.workerLoadURL, { + type: "module", + }); + } this.#registerHandlers(); } return this.#send({ diff --git a/packages/ffmpeg/src/types.ts b/packages/ffmpeg/src/types.ts index 411cf291886..1058663a7ee 100644 --- a/packages/ffmpeg/src/types.ts +++ b/packages/ffmpeg/src/types.ts @@ -22,6 +22,12 @@ export interface FFMessageLoadConfig { * @defaultValue `https://unpkg.com/@ffmpeg/core-mt@${CORE_VERSION}/dist/umd/ffmpeg-core.worker.js`; */ workerURL?: string; + /** + * `worker.js` URL. + * + * @defaultValue `new URL('./worker.js')`; + */ + workerLoadURL?: string; } export interface FFMessageExecData {