-
-
Notifications
You must be signed in to change notification settings - Fork 849
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
161 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,164 @@ | ||
API | ||
=== | ||
|
||
- createWorker() | ||
- Worker.write() | ||
- Worker.read() | ||
- Worker.mkdir() | ||
- Worker.remove() | ||
- Worker.transcode() | ||
- Worker.run() | ||
- [createWorker()](#create-worker) | ||
- [Worker.load](#worker-load) | ||
- [Worker.write](#worker-write) | ||
- [Worker.read](#worker-read) | ||
- [Worker.mkdir](#worker-mkdir) | ||
- [Worker.remove](#worker-remove) | ||
- [Worker.transcode](#worker-transcode) | ||
- [Worker.run](#worker-run) | ||
|
||
--- | ||
|
||
<a name="create-worker"></a> | ||
## 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:** | ||
|
||
- `options` an object of customized options | ||
- `corePath` path for ffmpeg-core.js script | ||
- `workerPath` path for downloading worker script | ||
- `workerBlobURL` a boolean to define whether to use Blob URL for worker script, default: true | ||
- `logger` a function to log the progress, a quick example is `m => console.log(m)` | ||
|
||
|
||
**Examples:** | ||
|
||
```javascript | ||
const { createWorker } = FFmpeg; | ||
const worker = createWorker({ | ||
corePath: './node_modules/@ffmpeg/core/ffmpeg-core.js', | ||
logger: m => console.log(m), | ||
}); | ||
``` | ||
<a name="worker-load"></a> | ||
### 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:** | ||
|
||
- `jobId` jobId is generated by ffmpeg.js to identify each job, but you can put your own when calling the function. | ||
|
||
**Examples:** | ||
|
||
```javascript | ||
(async () => { | ||
await worker.load(); | ||
})(); | ||
``` | ||
|
||
<a name="worker-write"></a> | ||
### Worker.write(path, data, jobId): Promise | ||
|
||
Worker.write() writes data to specific path in Emscripten file system, it is an essential step before doing any other tasks. | ||
|
||
**Arguments:** | ||
|
||
- `path` path to write data to file system | ||
- `data` data to write, can be Uint8Array, URL or base64 format | ||
- `jobId` check Worker.load() | ||
|
||
**Examples:** | ||
|
||
```javascript | ||
(async () => { | ||
await worker.write('flame.avi', 'http://localhost:3000/tests/assets/flame.avi'); | ||
})(); | ||
``` | ||
|
||
<a name="worker-read"></a> | ||
### Worker.read(path, jobId): Promise | ||
|
||
Worker.read() reads data from file system, often used to get output data after specific task. | ||
|
||
**Arguments:** | ||
|
||
- `path` path to read data from file system | ||
- `jobId` check Worker.load() | ||
|
||
**Examples:** | ||
|
||
```javascript | ||
(async () => { | ||
const { data } = await worker.read('output.mp4'); | ||
})(); | ||
``` | ||
|
||
<a name="worker-mkdir"></a> | ||
### Worker.mkdir(path, jobId): Promise | ||
|
||
Worker.mkdir() creates a directory in file system, useful when you need to group files in a directory. | ||
|
||
**Arguments:** | ||
|
||
- `path` path to create directory | ||
- `jobId` check Worker.load() | ||
|
||
**Examples:** | ||
|
||
```javascript | ||
(async () => { | ||
await worker.mkdir('/video-clips'); | ||
})(); | ||
``` | ||
|
||
<a name="worker-remove"></a> | ||
### Worker.remove(path, jobId): 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:** | ||
|
||
- `path` path for file to delete | ||
- `jobId` check Worker.load() | ||
|
||
**Examples:** | ||
|
||
```javascript | ||
(async () => { | ||
await worker.remove('output.mp4'); | ||
})(); | ||
``` | ||
|
||
<a name="worker-transcode"></a> | ||
### Worker.transcode(inputPath, outputPath, options, jobId): Promise | ||
|
||
Worker.transcode() transcode a video file to another format. | ||
|
||
**Arguments:** | ||
|
||
- `inputPath` input file path, the input file should be written through Worker.write() | ||
- `outputPath` output file path, can be read with Worker.read() later | ||
- `options` a string to add extra arguments to ffmpeg | ||
- `jobId` check Worker.load() | ||
|
||
**Examples:** | ||
|
||
```javascript | ||
(async () => { | ||
await worker.transcode('flame.avi', 'output.mp4', '-s 1920x1080'); | ||
})(); | ||
``` | ||
|
||
<a name="worker-run"></a> | ||
### Worker.run(args, jobId): Promise | ||
|
||
Worker.run() is similar to FFmpeg cli tool, aims to provide maximum flexiblity for users. | ||
|
||
**Arguments:** | ||
|
||
- `args` a string to represent arguments | ||
- `jobId` check Worker.load() | ||
|
||
**Examples:** | ||
|
||
```javascript | ||
(async () => { | ||
await worker.run('-i flame.avi -s 1920x1080 output.mp4'); | ||
})(); | ||
``` |