forked from forks/ffprobe-wasm-npm
v0.2.0
ffprobe-wasm
Gather information from multimedia streams. Works on the browser and Node.js.
Uses the code at alfg/ffprobe-wasm, but in a packaged format, so it can be reused in other projects.
Note: This project doesn't build or use FFProbe. Instead it uses FFmpeg's libavformat and libavcodec to output similar results.
Installation
npm install ffprobe-wasm
Examples
Node.js
import { FFprobeWorker } from "ffprobe-wasm";
const worker = new FFprobeWorker();
const fileInfo = await worker.getFileInfo("file.mp4");
console.log(fileInfo);
Browser
import { FFprobeWorker } from "ffprobe-wasm";
const worker = new FFprobeWorker();
// input is the reference to an <input type="file" /> element
input.addEventListener("change", (event) => {
const file = event.target.files[0];
const fileInfo = await worker.getFileInfo(file);
console.log(fileInfo);
});
Notes
- In browser,
SharedArrayBufferis being used. To enable this in your server, read Security requirements. - In browser, everything is bundled in the
browser.mjsscript. When gzipped, this file is bigger than 1 MiB, so it's recommended to useimport()to lazy load the asset. The good side of this is that you don't have to configure your bundler to include the worker or wasm files and you won't face same-origin issues with the worker.
Languages
TypeScript
98%
Shell
2%