SwissKnife Docs
Use SwissKnife

Audio and video

One FFmpeg engine, a sequential queue and GIF treated as video.

Audio and video share one FFmpeg WASM instance. Jobs enter a queue, so only one FFmpeg conversion runs at a time.

Engine loading

On the first audio or video file, the application loads /ffmpeg/ffmpeg-core.js and /ffmpeg/ffmpeg-core.wasm from the same origin with a 120-second timeout. Once loaded, conversions need no network access while the tab remains open.

The header changes from Engine inactive to Loading… and then Engine ready. The Console button displays FFmpeg logs.

Queue behavior

  • an FFmpeg job moves from queued to converting;
  • images do not wait for this queue;
  • Convert all completes parallel images before processing media in sequence;
  • cancelling a media job aborts it and may terminate the engine to release the thread.

Closing or reloading the tab while files remain triggers the browser's native navigation warning.

GIF

Extension .gif or MIME image/gif always maps to video. The verified encoding uses fps=10, width 480 and the lanczos filter. It is not a Canvas animation.

Common outputs

OutputVerified encoding
MP4 / MKVlibx264, ultrafast, CRF 28, AAC audio
WEBMlibvpx and Vorbis
AVI / MOVlibx264, ultrafast, CRF 28
MP3libmp3lame, quality 4
AAC128k
OGGVorbis quality 4
FLACflac
WAVpcm_s16le

A file can fail when the core does not support its source codec. See Formats and FFmpeg WASM.

On this page