Fix Worker.terminate()
This commit is contained in:
parent
906dcd369f
commit
eef80a979f
15
docs/api.md
15
docs/api.md
@ -10,6 +10,7 @@
|
|||||||
- [Worker.trim](#worker-trim)
|
- [Worker.trim](#worker-trim)
|
||||||
- [Worker.concatDemuxer](#worker-concatDemuxer)
|
- [Worker.concatDemuxer](#worker-concatDemuxer)
|
||||||
- [Worker.run](#worker-run)
|
- [Worker.run](#worker-run)
|
||||||
|
- [Worker.terminate](#worker-terminate)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -230,3 +231,17 @@ Worker.run() is similar to FFmpeg cli tool, aims to provide maximum flexiblity f
|
|||||||
await worker.run("-i flame.avi -s 1920x1080 output.mp4");
|
await worker.run("-i flame.avi -s 1920x1080 output.mp4");
|
||||||
})();
|
})();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<a name="worker-run"></a>
|
||||||
|
|
||||||
|
### Worker.terminate(): Promise
|
||||||
|
|
||||||
|
Worker.terminate() terminates web worker / worker\_threads, after terminate(), you cannot use this worker anymore.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
(async () => {
|
||||||
|
await worker.terminate();
|
||||||
|
})();
|
||||||
|
```
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
type: "video/mp4"
|
type: "video/mp4"
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
await worker.terminate();
|
||||||
};
|
};
|
||||||
const elm = document.getElementById("uploader");
|
const elm = document.getElementById("uploader");
|
||||||
elm.addEventListener("change", transcode);
|
elm.addEventListener("change", transcode);
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
|
|
||||||
const video = document.getElementById('output-video');
|
const video = document.getElementById('output-video');
|
||||||
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
||||||
|
await worker.terminate();
|
||||||
}
|
}
|
||||||
const elm = document.getElementById('start-btn');
|
const elm = document.getElementById('start-btn');
|
||||||
elm.addEventListener('click', image2video);
|
elm.addEventListener('click', image2video);
|
||||||
|
@ -33,12 +33,13 @@
|
|||||||
await worker.load();
|
await worker.load();
|
||||||
message.innerHTML = 'Start transcoding';
|
message.innerHTML = 'Start transcoding';
|
||||||
await worker.write(name, files[0]);
|
await worker.write(name, files[0]);
|
||||||
await worker.run(`-i /data/${name} output.mp4`, { input: name, output: 'output.mp4' });
|
await worker.run(`-i /data/${name} output.mp4`);
|
||||||
message.innerHTML = 'Complete transcoding';
|
message.innerHTML = 'Complete transcoding';
|
||||||
const { data } = await worker.read('output.mp4');
|
const { data } = await worker.read('output.mp4');
|
||||||
|
|
||||||
const video = document.getElementById('output-video');
|
const video = document.getElementById('output-video');
|
||||||
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
||||||
|
await worker.terminate();
|
||||||
}
|
}
|
||||||
const elm = document.getElementById('uploader');
|
const elm = document.getElementById('uploader');
|
||||||
elm.addEventListener('change', transcode);
|
elm.addEventListener('change', transcode);
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
|
|
||||||
const video = document.getElementById('output-video');
|
const video = document.getElementById('output-video');
|
||||||
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
||||||
|
await worker.terminate();
|
||||||
}
|
}
|
||||||
const elm = document.getElementById('uploader');
|
const elm = document.getElementById('uploader');
|
||||||
elm.addEventListener('change', transcode);
|
elm.addEventListener('change', transcode);
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
const video = document.getElementById('output-video');
|
const video = document.getElementById('output-video');
|
||||||
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
||||||
|
await worker.terminate();
|
||||||
}
|
}
|
||||||
const elm = document.getElementById('uploader');
|
const elm = document.getElementById('uploader');
|
||||||
elm.addEventListener('change', transcode);
|
elm.addEventListener('change', transcode);
|
||||||
|
@ -69,6 +69,7 @@
|
|||||||
|
|
||||||
const video = document.getElementById('output-video');
|
const video = document.getElementById('output-video');
|
||||||
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
|
||||||
|
await worker.terminate();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
@ -13,5 +13,5 @@ const worker = createWorker({
|
|||||||
const { data } = await worker.read('flame.mp4');
|
const { data } = await worker.read('flame.mp4');
|
||||||
console.log('Complete concat');
|
console.log('Complete concat');
|
||||||
fs.writeFileSync('flame.mp4', Buffer.from(data));
|
fs.writeFileSync('flame.mp4', Buffer.from(data));
|
||||||
process.exit(0);
|
await worker.terminate();
|
||||||
})();
|
})();
|
||||||
|
@ -24,5 +24,5 @@ const worker = createWorker({
|
|||||||
await worker.remove(`tmp.${num}.png`);
|
await worker.remove(`tmp.${num}.png`);
|
||||||
}
|
}
|
||||||
fs.writeFileSync('out.mp4', Buffer.from(data));
|
fs.writeFileSync('out.mp4', Buffer.from(data));
|
||||||
process.exit(0);
|
await worker.terminate();
|
||||||
})();
|
})();
|
||||||
|
@ -13,5 +13,5 @@ const worker = createWorker({
|
|||||||
const { data } = await worker.read('flame.mp4');
|
const { data } = await worker.read('flame.mp4');
|
||||||
console.log('Complete transcoding');
|
console.log('Complete transcoding');
|
||||||
fs.writeFileSync('flame.mp4', Buffer.from(data));
|
fs.writeFileSync('flame.mp4', Buffer.from(data));
|
||||||
process.exit(0);
|
await worker.terminate();
|
||||||
})();
|
})();
|
||||||
|
@ -13,5 +13,5 @@ const worker = createWorker({
|
|||||||
const { data } = await worker.read('flame.mp4');
|
const { data } = await worker.read('flame.mp4');
|
||||||
console.log('Complete transcoding');
|
console.log('Complete transcoding');
|
||||||
fs.writeFileSync('flame.mp4', Buffer.from(data));
|
fs.writeFileSync('flame.mp4', Buffer.from(data));
|
||||||
process.exit(0);
|
await worker.terminate();
|
||||||
})();
|
})();
|
||||||
|
@ -13,5 +13,5 @@ const worker = createWorker({
|
|||||||
const { data } = await worker.read('flame_trim.avi');
|
const { data } = await worker.read('flame_trim.avi');
|
||||||
console.log('Complete trimming');
|
console.log('Complete trimming');
|
||||||
fs.writeFileSync('flame_trim.avi', Buffer.from(data));
|
fs.writeFileSync('flame_trim.avi', Buffer.from(data));
|
||||||
process.exit(0);
|
await worker.terminate();
|
||||||
})();
|
})();
|
||||||
|
@ -148,12 +148,14 @@ module.exports = (_options = {}) => {
|
|||||||
return run(`-f concat -safe 0 -i concat_list.txt ${opts} ${output}`, jobId);
|
return run(`-f concat -safe 0 -i concat_list.txt ${opts} ${output}`, jobId);
|
||||||
};
|
};
|
||||||
|
|
||||||
const terminate = async (jobId) => {
|
const terminate = async () => {
|
||||||
if (worker !== null) {
|
if (worker !== null) {
|
||||||
|
/*
|
||||||
await startJob(createJob({
|
await startJob(createJob({
|
||||||
id: jobId,
|
id: jobId,
|
||||||
action: 'terminate',
|
action: 'terminate',
|
||||||
}));
|
}));
|
||||||
|
*/
|
||||||
worker.terminate();
|
worker.terminate();
|
||||||
worker = null;
|
worker = null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user