Major refactor to adapt new ffmpeg-core.js

This commit is contained in:
Jerome Wu
2020-04-28 19:35:57 +08:00
parent cd5fe43905
commit b36360f16f
40 changed files with 226 additions and 527 deletions

View File

@@ -0,0 +1,8 @@
const defaultOptions = require('../constants/defaultOptions');
/*
* Default options for node environment
*/
module.exports = {
...defaultOptions,
};

26
src/node/fetchFile.js Normal file
View File

@@ -0,0 +1,26 @@
const util = require('util');
const fs = require('fs');
const fetch = require('node-fetch');
const isURL = require('is-url');
module.exports = async (_data) => {
let data = _data;
if (typeof _data === 'undefined') {
return new Uint8Array();
}
if (typeof _data === 'string') {
if (isURL(_data) || _data.startsWith('chrome-extension://') || _data.startsWith('file://')) {
const res = await fetch(_data);
data = await res.arrayBuffer();
} else if (/data:_data\/([a-zA-Z]*);base64,([^"]*)/.test(_data)) {
data = Buffer.from(_data.split(',')[1], 'base64');
} else {
data = await util.promisify(fs.readFile)(_data);
}
} else if (Buffer.isBuffer(_data)) {
data = _data;
}
return new Uint8Array(data);
};

6
src/node/getModule.js Normal file
View File

@@ -0,0 +1,6 @@
module.exports = () => new Promise((resolve) => {
const Module = require('@ffmpeg/core');
Module.onRuntimeInitialized = () => {
resolve(Module);
};
});

9
src/node/index.js Normal file
View File

@@ -0,0 +1,9 @@
const defaultOptions = require('./defaultOptions');
const getModule = require('./getModule');
const fetchFile = require('./fetchFile');
module.exports = {
defaultOptions,
getModule,
fetchFile,
};