diff --git a/apps/browser/transcode.html b/apps/browser/transcode.html
index 06ad19b..8d3c556 100644
--- a/apps/browser/transcode.html
+++ b/apps/browser/transcode.html
@@ -21,7 +21,7 @@
const { name } = files[0];
ffmpeg.FS.writeFile(name, await fetchFile(files[0]));
message.innerHTML = 'Start transcoding';
- await ffmpeg.exec(['-i', name, 'output.mp4']);
+ await ffmpeg.exec('-i', name, 'output.mp4');
message.innerHTML = 'Complete transcoding';
const data = ffmpeg.FS.readFile('output.mp4');
diff --git a/apps/node-ts/ffmpeg/help.ts b/apps/node-ts/ffmpeg/help.ts
index 8171776..9347292 100644
--- a/apps/node-ts/ffmpeg/help.ts
+++ b/apps/node-ts/ffmpeg/help.ts
@@ -3,5 +3,5 @@ import createFFmpeg from "@ffmpeg/ffmpeg";
void (async () => {
const ffmpeg = await createFFmpeg();
ffmpeg.setLogger(({ message }) => console.log(message));
- console.log("return code: ", ffmpeg.exec(["-h"]));
+ console.log("return code: ", ffmpeg.exec("-h"));
})();
diff --git a/apps/node-ts/ffmpeg/transcode-audio.ts b/apps/node-ts/ffmpeg/transcode-audio.ts
index 880bd46..fde55c8 100644
--- a/apps/node-ts/ffmpeg/transcode-audio.ts
+++ b/apps/node-ts/ffmpeg/transcode-audio.ts
@@ -13,5 +13,5 @@ void (async () => {
);
ffmpeg.FS.writeFile("audio.wav", wav);
- console.log("return code: ", ffmpeg.exec(["-i", "audio.wav", "audio.mp4"]));
+ console.log("return code: ", ffmpeg.exec("-i", "audio.wav", "audio.mp4"));
})();
diff --git a/apps/node-ts/ffmpeg/transcode-video.ts b/apps/node-ts/ffmpeg/transcode-video.ts
index 038a60e..db80724 100644
--- a/apps/node-ts/ffmpeg/transcode-video.ts
+++ b/apps/node-ts/ffmpeg/transcode-video.ts
@@ -13,5 +13,5 @@ void (async () => {
);
ffmpeg.FS.writeFile("video.avi", avi);
- console.log("return code: ", ffmpeg.exec(["-i", "video.avi", "video.mp4"]));
+ console.log("return code: ", ffmpeg.exec("-i", "video.avi", "video.mp4"));
})();
diff --git a/packages/ffmpeg-mt/tests/ffmpeg.test.js b/packages/ffmpeg-mt/tests/ffmpeg.test.js
index 2cfa8d1..315ac2a 100644
--- a/packages/ffmpeg-mt/tests/ffmpeg.test.js
+++ b/packages/ffmpeg-mt/tests/ffmpeg.test.js
@@ -54,11 +54,11 @@ describe("exec()", () => {
});
it("should output help", () => {
- expect(ffmpeg.exec(["-h"])).to.equal(0);
+ expect(ffmpeg.exec("-h")).to.equal(0);
});
it("should transcode", () => {
- expect(ffmpeg.exec(["-i", "video.mp4", "video.avi"])).to.equal(0);
+ expect(ffmpeg.exec("-i", "video.mp4", "video.avi")).to.equal(0);
const out = ffmpeg.FS.readFile("video.avi");
expect(out.length).to.not.equal(0);
ffmpeg.FS.unlink("video.avi");
@@ -74,7 +74,7 @@ describe("setTimeout()", () => {
it("should timeout", () => {
ffmpeg.setTimeout(1); // timeout after 1ms
- expect(ffmpeg.exec(["-i", "video.mp4", "video.avi"])).to.equal(1);
+ expect(ffmpeg.exec("-i", "video.mp4", "video.avi")).to.equal(1);
});
});
@@ -88,7 +88,7 @@ describe("setLogger()", () => {
it("should handle logs", () => {
const logs = [];
ffmpeg.setLogger(({ message }) => logs.push(message));
- ffmpeg.exec(["-h"]);
+ ffmpeg.exec("-h");
expect(logs.length).to.not.equal(0);
});
});
@@ -103,7 +103,7 @@ describe("setProgress()", () => {
it("should handle progress", () => {
let progress = 0;
ffmpeg.setProgress((_progress) => (progress = _progress));
- expect(ffmpeg.exec(["-i", "video.mp4", "video.avi"])).to.equal(0);
+ expect(ffmpeg.exec("-i", "video.mp4", "video.avi")).to.equal(0);
expect(progress).to.equal(1);
ffmpeg.FS.unlink("video.avi");
});
diff --git a/packages/ffmpeg/tests/ffmpeg.test.js b/packages/ffmpeg/tests/ffmpeg.test.js
index d53c3a9..3ec75db 100644
--- a/packages/ffmpeg/tests/ffmpeg.test.js
+++ b/packages/ffmpeg/tests/ffmpeg.test.js
@@ -53,11 +53,11 @@ describe("exec()", () => {
});
it("should output help", () => {
- expect(ffmpeg.exec(["-h"])).to.equal(0);
+ expect(ffmpeg.exec("-h")).to.equal(0);
});
it("should transcode", () => {
- expect(ffmpeg.exec(["-i", "video.mp4", "video.avi"])).to.equal(0);
+ expect(ffmpeg.exec("-i", "video.mp4", "video.avi")).to.equal(0);
const out = ffmpeg.FS.readFile("video.avi");
expect(out.length).to.not.equal(0);
ffmpeg.FS.unlink("video.avi");
@@ -73,7 +73,7 @@ describe("setTimeout()", () => {
it("should timeout", () => {
ffmpeg.setTimeout(1); // timeout after 1ms
- expect(ffmpeg.exec(["-i", "video.mp4", "video.avi"])).to.equal(1);
+ expect(ffmpeg.exec("-i", "video.mp4", "video.avi")).to.equal(1);
});
});
@@ -87,7 +87,7 @@ describe("setLogger()", () => {
it("should handle logs", () => {
const logs = [];
ffmpeg.setLogger(({ message }) => logs.push(message));
- ffmpeg.exec(["-h"]);
+ ffmpeg.exec("-h");
expect(logs.length).to.not.equal(0);
});
});
@@ -102,7 +102,7 @@ describe("setProgress()", () => {
it("should handle progress", () => {
let progress = 0;
ffmpeg.setProgress((_progress) => (progress = _progress));
- expect(ffmpeg.exec(["-i", "video.mp4", "video.avi"])).to.equal(0);
+ expect(ffmpeg.exec("-i", "video.mp4", "video.avi")).to.equal(0);
expect(progress).to.equal(1);
ffmpeg.FS.unlink("video.avi");
});
diff --git a/src/bind/ffmpeg/bind.js b/src/bind/ffmpeg/bind.js
index afeb7b5..68a5819 100644
--- a/src/bind/ffmpeg/bind.js
+++ b/src/bind/ffmpeg/bind.js
@@ -50,7 +50,7 @@ function printErr(message) {
Module["logger"]({ type: "stderr", message });
}
-function exec(_args) {
+function exec(..._args) {
const args = [...Module["DEFAULT_ARGS"], ..._args];
try {
Module["_ffmpeg"](args.length, stringsToPtr(args));
diff --git a/src/types/ffmpeg/ffmpeg.d.ts b/src/types/ffmpeg/ffmpeg.d.ts
index 86b6d29..1bcd9bb 100644
--- a/src/types/ffmpeg/ffmpeg.d.ts
+++ b/src/types/ffmpeg/ffmpeg.d.ts
@@ -24,7 +24,7 @@ export interface FFmpegModule {
ret: number;
timeout: number;
- exec: (args: string[]) => number;
+ exec: (...args: string[]) => number;
reset: () => void;
setLogger: (logger: (log: Log) => void) => void;
setTimeout: (timeout: number) => void;