Upgrade ffmpeg-core.js and update examples

This commit is contained in:
Jerome Wu 2019-10-30 19:27:35 +08:00
parent a7c5258cc4
commit e354a4b36f
6 changed files with 28 additions and 12 deletions

View File

@ -1,27 +1,41 @@
<html> <html>
<head> <head>
<script src="/dist/ffmpeg.dev.js"></script> <script src="/dist/ffmpeg.dev.js"></script>
<style>
html, body {
margin: 0;
width: 100%;
height: 100%
}
body {
display: flex;
flex-direction: column;
align-items: center;
}
</style>
</head> </head>
<body> <body>
<div> <h3>Upload a video to transcode to mp4 (x264) and play!</h3>
<input type="file" id="uploader"> <video id="output-video" controls></video><br/>
</div> <input type="file" id="uploader">
<p id="message" />
<script> <script>
const { createWorker } = FFmpeg; const { createWorker } = FFmpeg;
const worker = createWorker({ const worker = createWorker({
corePath: '../../node_modules/@ffmpeg/core/ffmpeg-core.js', corePath: '../../node_modules/@ffmpeg/core/ffmpeg-core.js',
logger: ({ message }) => console.log(message),
}); });
const transcode = async ({ target: { files } }) => { const transcode = async ({ target: { files } }) => {
const message = document.getElementById('message');
message.innerHTML = 'Loading ffmpeg-core.js';
await worker.load(); await worker.load();
console.log('Start transcoding'); message.innerHTML = 'Start transcoding';
const { data } = await worker.transcode(files[0], 'mp4'); const { data } = await worker.transcode(files[0], 'mp4');
console.log('Complete transcoding'); message.innerHTML = 'Complete transcoding';
const video = document.createElement('video'); const video = document.getElementById('output-video');
video.controls = true;
video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' })); video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
document.body.appendChild(video);
} }
const elm = document.getElementById('uploader'); const elm = document.getElementById('uploader');
elm.addEventListener('change', transcode); elm.addEventListener('change', transcode);

View File

@ -10,7 +10,9 @@ const worker = createWorker({
(async () => { (async () => {
await worker.load(); await worker.load();
console.log('Start transcoding');
const { data } = await worker.transcode(inputPath, outputPath.split('.').pop()); const { data } = await worker.transcode(inputPath, outputPath.split('.').pop());
console.log('Complete transcoding');
fs.writeFileSync(outputPath, Buffer.from(data)); fs.writeFileSync(outputPath, Buffer.from(data));
process.exit(0); process.exit(0);
})(); })();

6
package-lock.json generated
View File

@ -811,9 +811,9 @@
} }
}, },
"@ffmpeg/core": { "@ffmpeg/core": {
"version": "0.2.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/@ffmpeg/core/-/core-0.2.0.tgz", "resolved": "https://registry.npmjs.org/@ffmpeg/core/-/core-0.3.0.tgz",
"integrity": "sha512-kvCr0QH3B/5wc6boiUQq5PKWytmu9QpCpU2RqFT4+jh6Hv4JnU/43uprwX45PMjVh3T4g2coB2Dzix3x6Muasg==" "integrity": "sha512-bm95T4C2/glYHuzTW7r49Ia+CCSYCbmOe0VOhvCorR3eBzPV/4ESuA4LxdouIraOHueDZf6rcPik94Jv1+t0iQ=="
}, },
"@webassemblyjs/ast": { "@webassemblyjs/ast": {
"version": "1.8.5", "version": "1.8.5",

View File

@ -32,7 +32,7 @@
}, },
"homepage": "https://github.com/ffmpegjs/ffmpeg.js#readme", "homepage": "https://github.com/ffmpegjs/ffmpeg.js#readme",
"dependencies": { "dependencies": {
"@ffmpeg/core": "^0.2.0", "@ffmpeg/core": "^0.3.0",
"is-url": "^1.2.4", "is-url": "^1.2.4",
"node-fetch": "^2.6.0", "node-fetch": "^2.6.0",
"regenerator-runtime": "^0.13.3", "regenerator-runtime": "^0.13.3",

BIN
tests/assets/flame.avi Normal file

Binary file not shown.

Binary file not shown.