forked from forks/ffprobe-wasm
61 lines
1.7 KiB
Markdown
61 lines
1.7 KiB
Markdown
# `FFProbe Wasm`
|
|
> A Web-based FFProbe. Powered by FFmpeg, Vue and Web Assembly! 🦀.
|
|
|
|
https://alfg.github.io/ffprobe-wasm/
|
|
|
|
⚠️ A work-in-progress! Check back for updates!
|
|
|
|
⚠️⚠️ Currently works in Google Chrome and Microsoft Edge only due to limited support for [SharedArrayBuffer](https://caniuse.com/sharedarraybuffer). Github Pages does not support custom response headers to enable the [required CORS headers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) for Firefox.
|
|
|
|
|
|
## Development
|
|
`ffprobe-wasm` uses [emscripten](https://emscripten.org/) to compile [FFmpeg](https://ffmpeg.org)'s [libav](https://ffmpeg.org/doxygen/4.1/index.html) to [Web Assembly](https://webassembly.org/) via [Docker](https://www.docker.com/).
|
|
|
|
Emscripten is also used to create and compile the Wasm bindings to be imported by the browser.
|
|
|
|
### Requirements
|
|
* `nodejs` - https://nodejs.org/en/download/
|
|
* `docker` - https://docs.docker.com/desktop/
|
|
|
|
### Setup
|
|
* Clone project and build the Wasm module via Docker:
|
|
```
|
|
docker-compose run ffprobe-wasm make
|
|
```
|
|
|
|
This will build the Wasm module and place it into the `/dist` directory.
|
|
|
|
* Copy the JS and Wasm modules into `www/public/`:
|
|
```
|
|
cp -a dist/. www/public/
|
|
```
|
|
|
|
* Install and run the web application:
|
|
```
|
|
cd www
|
|
npm install
|
|
npm run serve
|
|
```
|
|
|
|
* Load `http://localhost:8080/` in the web browser.
|
|
|
|
### Compiles and minifies for production
|
|
```
|
|
npm run build
|
|
```
|
|
|
|
### Deploy
|
|
Deploys to [Github Pages](https://pages.github.com/)
|
|
```
|
|
npm run deploy
|
|
```
|
|
|
|
### Resources
|
|
* https://ffmpeg.org/doxygen/4.1/index.html
|
|
* https://emscripten.org/
|
|
* https://vuejs.org
|
|
* https://bootstrap-vue.org
|
|
|
|
## License
|
|
MIT
|