Release v0.10.0

This commit is contained in:
Jerome Wu 2021-05-17 17:03:07 +08:00
parent a4938281aa
commit 5cafc73545
5 changed files with 41 additions and 10 deletions

View File

@ -47,7 +47,7 @@ $ node --experimental-wasm-threads --experimental-wasm-bulk-memory transcode.js
Or, using a script tag in the browser (only works in some browsers, see list below): Or, using a script tag in the browser (only works in some browsers, see list below):
```html ```html
<script src="https://unpkg.com/@ffmpeg/ffmpeg@0.9.8/dist/ffmpeg.min.js"></script> <script src="https://unpkg.com/@ffmpeg/ffmpeg@0.10.0/dist/ffmpeg.min.js"></script>
<script> <script>
const { createFFmpeg } = FFmpeg; const { createFFmpeg } = FFmpeg;
... ...
@ -99,7 +99,7 @@ const ffmpeg = createFFmpeg({
```javascript ```javascript
const ffmpeg = createFFmpeg({ const ffmpeg = createFFmpeg({
corePath: 'https://unpkg.com/@ffmpeg/core@0.9.0/dist/ffmpeg-core.js', corePath: 'https://unpkg.com/@ffmpeg/core@0.10.0/dist/ffmpeg-core.js',
}); });
``` ```

View File

@ -4,6 +4,7 @@
- [ffmpeg.load()](#ffmpeg-load) - [ffmpeg.load()](#ffmpeg-load)
- [ffmpeg.run()](#ffmpeg-run) - [ffmpeg.run()](#ffmpeg-run)
- [ffmpeg.FS()](#ffmpeg-fs) - [ffmpeg.FS()](#ffmpeg-fs)
- [ffmpeg.exit()](#ffmpeg-exit)
- [ffmpeg.setLogging()](#ffmpeg-setlogging) - [ffmpeg.setLogging()](#ffmpeg-setlogging)
- [ffmpeg.setLogger()](#ffmpeg-setlogger) - [ffmpeg.setLogger()](#ffmpeg-setlogger)
- [ffmpeg.setProgress()](#ffmpeg-setProgress) - [ffmpeg.setProgress()](#ffmpeg-setProgress)
@ -98,6 +99,23 @@ ffmpeg.FS('readFile', 'video.mp4');
ffmpeg.FS('unlink', 'video.mp4'); ffmpeg.FS('unlink', 'video.mp4');
``` ```
<a name="ffmpeg-exit"></a>
### ffmpeg.exit()
Kill the execution of the program, also remove MEMFS to free memory
**Examples:**
```javascript
const ffmpeg = createFFmpeg({ log: true });
await ffmpeg.load(...);
setTimeout(() => {
ffmpeg.exit(); // ffmpeg.exit() is callable only after load() stage.
}, 1000);
await ffmpeg.run(...);
```
<a name="ffmpeg-setlogging"></a> <a name="ffmpeg-setlogging"></a>
### ffmpeg.setLogging(logging) ### ffmpeg.setLogging(logging)

View File

@ -18,16 +18,22 @@
<h3>Upload a video to transcode to mp4 (x264) and play!</h3> <h3>Upload a video to transcode to mp4 (x264) and play!</h3>
<video id="output-video" controls></video><br/> <video id="output-video" controls></video><br/>
<input type="file" id="uploader"> <input type="file" id="uploader">
<button onClick="cancel()">Cancel</button>
<p id="message"></p> <p id="message"></p>
<script> <script>
const { createFFmpeg, fetchFile } = FFmpeg; const { createFFmpeg, fetchFile } = FFmpeg;
const ffmpeg = createFFmpeg({ log: true }); let ffmpeg = null;
const transcode = async ({ target: { files } }) => { const transcode = async ({ target: { files } }) => {
if (ffmpeg === null) {
ffmpeg = createFFmpeg({ log: true });
}
const message = document.getElementById('message'); const message = document.getElementById('message');
const { name } = files[0]; const { name } = files[0];
message.innerHTML = 'Loading ffmpeg-core.js'; message.innerHTML = 'Loading ffmpeg-core.js';
if (!ffmpeg.isLoaded()) {
await ffmpeg.load(); await ffmpeg.load();
}
ffmpeg.FS('writeFile', name, await fetchFile(files[0])); ffmpeg.FS('writeFile', name, await fetchFile(files[0]));
message.innerHTML = 'Start transcoding'; message.innerHTML = 'Start transcoding';
await ffmpeg.run('-i', name, 'output.mp4'); await ffmpeg.run('-i', name, 'output.mp4');
@ -39,6 +45,13 @@
} }
const elm = document.getElementById('uploader'); const elm = document.getElementById('uploader');
elm.addEventListener('change', transcode); elm.addEventListener('change', transcode);
const cancel = () => {
try {
ffmpeg.exit();
} catch(e) {}
ffmpeg = null;
}
</script> </script>
</body> </body>
</html> </html>

8
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "@ffmpeg/ffmpeg", "name": "@ffmpeg/ffmpeg",
"version": "0.9.8", "version": "0.10.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -2065,9 +2065,9 @@
} }
}, },
"@ffmpeg/core": { "@ffmpeg/core": {
"version": "0.9.0", "version": "0.10.0",
"resolved": "https://registry.npmjs.org/@ffmpeg/core/-/core-0.9.0.tgz", "resolved": "https://registry.npmjs.org/@ffmpeg/core/-/core-0.10.0.tgz",
"integrity": "sha512-d931yzQpb8GRgTZr+T7+BMqglPZ1R8FPH3W3UA8I21RzuasRHsMwQ4MQTlS9twjfqvUGIkD8p/8mNToUVN/Yrw==", "integrity": "sha512-qunWJl5PezpXEm31tb8Qu5z37B5KVA1VYZCpXchMhuAb3X9T7PuE3SlhOwphEoRhzaOa3lpofDfzihAUMFaVPQ==",
"dev": true "dev": true
}, },
"@hapi/hoek": { "@hapi/hoek": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@ffmpeg/ffmpeg", "name": "@ffmpeg/ffmpeg",
"version": "0.9.8", "version": "0.10.0",
"description": "FFmpeg WebAssembly version", "description": "FFmpeg WebAssembly version",
"main": "src/index.js", "main": "src/index.js",
"types": "src/index.d.ts", "types": "src/index.d.ts",
@ -50,7 +50,7 @@
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.3", "@babel/core": "^7.12.3",
"@babel/preset-env": "^7.12.1", "@babel/preset-env": "^7.12.1",
"@ffmpeg/core": "^0.9.0", "@ffmpeg/core": "^0.10.0",
"@types/emscripten": "^1.39.4", "@types/emscripten": "^1.39.4",
"babel-loader": "^8.1.0", "babel-loader": "^8.1.0",
"chai": "^4.2.0", "chai": "^4.2.0",