Open Source Software Notice
FFmpeg
The file converter on this website uses FFmpeg compiled to WebAssembly via the ffmpeg.wasm project. FFmpeg is licensed under the GNU Lesser General Public License version 2.1 (LGPLv2.1).
Our build is LGPL-only — it does not include any GPL-licensed libraries (no libx264, no libx265). All external libraries included in the build are BSD or LGPL licensed.
Source Code & Build Instructions
In compliance with the LGPLv2.1, we provide the complete source code and build instructions used to produce the FFmpeg WASM binary served on this website:
- Source archive: ffmpeg-wasm-lgpl-source.tar.gz — contains the FFmpeg n5.1.4 source, modified Dockerfile, build script, and all external library sources.
- FFmpeg version: n5.1.4
- Emscripten version: 3.1.40
- JS wrapper: @ffmpeg/ffmpeg 0.12.15 (MIT)
Build steps
To reproduce the WASM binary from source:
# Prerequisites: Docker v23.0+ with buildx
# On Apple Silicon: export DOCKER_DEFAULT_PLATFORM=linux/amd64
# 1. Extract the source archive
tar xzf ffmpeg-wasm-lgpl-source.tar.gz
cd ffmpeg-wasm-lgpl-source
# 2. Build the single-threaded LGPL core
make prd
# 3. Output files:
# packages/core/dist/umd/ffmpeg-core.js
# packages/core/dist/umd/ffmpeg-core.wasm
Included libraries (all LGPL/BSD-compatible)
| Library | License | Purpose |
|---|---|---|
| libvpx 1.13.1 | BSD-3 | VP8/VP9 encode+decode |
| libopus 1.3.1 | BSD-3 | Opus encode+decode |
| libvorbis 1.3.3 | BSD-3 | Vorbis encode |
| libogg 1.3.4 | BSD-3 | Ogg container |
| libtheora 1.1.1 | BSD-3 | Theora encode |
| libwebp 1.3.2 | BSD-3 | WebP encode+decode |
| libmp3lame | LGPL-2.0+ | MP3 encode |
| zlib 1.2.11 | zlib | Compression |
| freetype2 2.10.4 | FreeType (BSD-like) | Text rendering |
| fribidi 1.0.9 | LGPL-2.1+ | BiDi text |
| harfbuzz 5.2.0 | MIT | Text shaping |
| libass | ISC | Subtitle rendering |
Use Your Own FFmpeg Build
In accordance with the LGPL, you may replace the FFmpeg WASM library used by this converter with your own modified build. To do so:
- Click the Conversion settings toggle below the format selectors on any converter page.
- Open your browser's developer console (F12).
- Run:
localStorage.setItem('ffmpeg_custom_core', 'https://your-server.example.com/ffmpeg-core.js') - Run:
localStorage.setItem('ffmpeg_custom_wasm', 'https://your-server.example.com/ffmpeg-core.wasm') - Reload the page. The converter will use your custom FFmpeg build.
- To revert:
localStorage.removeItem('ffmpeg_custom_core'); localStorage.removeItem('ffmpeg_custom_wasm')
Reverse Engineering
Notwithstanding any other provision of our Terms of Service, you may reverse engineer, decompile, or disassemble the LGPL-licensed components of this application (specifically, the FFmpeg libraries) for the purpose of debugging modifications to those components, as permitted by the GNU Lesser General Public License version 2.1.
Contact
For questions about open source compliance or to request materials: support@semanticbridge.org
FFmpeg is a trademark of Fabrice Bellard, originator of the FFmpeg project.