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.1BSD-3VP8/VP9 encode+decode
libopus 1.3.1BSD-3Opus encode+decode
libvorbis 1.3.3BSD-3Vorbis encode
libogg 1.3.4BSD-3Ogg container
libtheora 1.1.1BSD-3Theora encode
libwebp 1.3.2BSD-3WebP encode+decode
libmp3lameLGPL-2.0+MP3 encode
zlib 1.2.11zlibCompression
freetype2 2.10.4FreeType (BSD-like)Text rendering
fribidi 1.0.9LGPL-2.1+BiDi text
harfbuzz 5.2.0MITText shaping
libassISCSubtitle 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:

  1. Click the Conversion settings toggle below the format selectors on any converter page.
  2. Open your browser's developer console (F12).
  3. Run: localStorage.setItem('ffmpeg_custom_core', 'https://your-server.example.com/ffmpeg-core.js')
  4. Run: localStorage.setItem('ffmpeg_custom_wasm', 'https://your-server.example.com/ffmpeg-core.wasm')
  5. Reload the page. The converter will use your custom FFmpeg build.
  6. 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.