5.8 KiB
API
createWorker(options): Worker
createWorker is a factory function that creates a ffmpeg worker, a worker is basically a Web Worker in browser and Child Process in Node.
Arguments:
optionsan object of customized optionscorePathpath for ffmpeg-core.js scriptworkerPathpath for downloading worker scriptworkerBlobURLa boolean to define whether to use Blob URL for worker script, default: trueloggera function to log the progress, a quick example ism => console.log(m)progressa function to trace the progress, a quick example isp => console.log(p)
Examples:
const { createWorker } = FFmpeg;
const worker = createWorker({
corePath: "./node_modules/@ffmpeg/core/ffmpeg-core.js",
logger: m => console.log(m)
});
Worker.load(jobId): Promise
Worker.load() loads ffmpeg-core.js script (download from remote if not presented), it makes Web Worker/Child Process ready for next action.
Arguments:
jobIdjobId is generated by ffmpeg.js to identify each job, but you can put your own when calling the function.
Examples:
(async () => {
await worker.load();
})();
Worker.write(path, data): Promise
Worker.write() writes data to specific path in Emscripten file system, it is an essential step before doing any other tasks.
Arguments:
pathpath to write data to file systemdatadata to write, can be Uint8Array, URL or base64 format
Examples:
(async () => {
await worker.write(
"flame.avi",
"http://localhost:3000/tests/assets/flame.avi"
);
})();
Worker.writeText(path, text): Promise
Worker.write() writes text data to specific path in Emscripten file system.
Arguments:
pathpath to write data to file systemtextstring to write to file
Examples:
(async () => {
await worker.write("sub.srt", "...");
})();
Worker.read(path, del): Promise
Worker.read() reads data from file system, often used to get output data after specific task.
Arguments:
pathpath to read data from file systemdelwhether to delete file in IDBFS or NODEFS, default: true
Examples:
(async () => {
const { data } = await worker.read("output.mp4");
})();
Worker.remove(path): Promise
Worker.remove() removes files in file system, it will be better to delete unused files if you need to run ffmpeg.js multiple times.
Arguments:
pathpath for file to delete
Examples:
(async () => {
await worker.remove("output.mp4");
})();
Worker.transcode(inputPath, outputPath, options, del, jobId): Promise
Worker.transcode() transcode a video file to another format.
Arguments:
inputPathinput file path, the input file should be written through Worker.write()outputPathoutput file path, can be read with Worker.read() lateroptionsa string to add extra arguments to ffmpegdela boolean to determine whether to delete input file after the task is done, default: truejobIdcheck Worker.load()
Examples:
(async () => {
await worker.transcode("flame.avi", "output.mp4", "-s 1920x1080");
})();
Worker.trim(inputPath, outputPath, from, to, options, del, jobId): Promise
Worker.trim() trims video to specific interval.
Arguments:
inputPathinput file path, the input file should be written through Worker.write()outputPathoutput file path, can be read with Worker.read() laterfromstart time, can be in time stamp (00:00:12.000) or seconds (12)toend time, rule same as aboveoptionsa string to add extra arguments to ffmpegdela boolean to determine whether to delete input file after the task is done, default: truejobIdcheck Worker.load()
Examples:
(async () => {
await worker.trim("flame.avi", "output.mp4", 1, 2);
})();
Worker.concatDemuxer(inputPaths, outputPath, options, del, jobId): Promise
Worker.concatDemuxer() concatenates multiple videos using concatDemuxer. This method won't encode the videos again. But it has its limitations. See Concat demuxer Wiki
Arguments:
inputPathsinput file paths as an Array, the input files should be written through Worker.write()outputPathoutput file path, can be read with Worker.read() lateroptionsa string to add extra arguments to ffmpegdela boolean to determine whether to delete input file after the task is done, default: truejobIdcheck Worker.load()
Examples:
(async () => {
await worker.trim(["flame-1.avi", "flame-2.avi"], "output.mp4");
})();
Worker.run(args, options, jobId): Promise
Worker.run() is similar to FFmpeg cli tool, aims to provide maximum flexiblity for users.
Arguments:
argsa string to represent arguments, note: inputPath must start with/data/as worker.write write to this path by default.optionsa object to define the value for inputPath, outputPath and del.jobIdcheck Worker.load()
Examples:
(async () => {
await worker.run("-i /data/flame.avi -s 1920x1080 output.mp4", {
inputPath: "flame.avi",
outputPath: "output.mp4"
});
})();