Skip to Content
Features

Features

Video and images

  • Video concatenation — join multiple clips with optional xfade transitions
  • Image clips — Ken Burns effects (zoom-in, zoom-out, pan, smart, custom) with easing control
  • Image fittingblur-fill, cover, and contain modes for aspect ratio mismatches
  • Color clips — flat colors and linear/radial gradients as first-class timeline elements with full transition support

Audio

  • Multi-source audio mixing — layer voiceovers, sound effects, and background tracks
  • Background music — loop support for tracks shorter than the video
  • Independent codec control — audio codec, bitrate, and sample rate are configurable at export

Overlays and effects

  • Text overlays — static, word-replace, word-sequential, and karaoke modes
  • Text animations — fade variants, pop, pop-bounce, typewriter, scale-in, pulse
  • Emoji support — opt-in emoji rendering via a custom font; stripped by default to prevent blank glyphs
  • Subtitle imports — SRT, VTT, ASS, SSA files with optional style overrides
  • Watermarks — text or image watermarks with preset or custom positioning and optional timed visibility
  • Effect clips — timed overlay effects with smooth fadeIn/fadeOut envelopes:
EffectDescription
vignetteDarkened edges
filmGrainNoise overlay
gaussianBlurGaussian blur
colorAdjustBrightness, contrast, saturation, gamma
sepiaWarm vintage tone
blackAndWhiteDesaturate to grayscale
sharpenSharpen detail
chromaticAberrationRGB channel split
letterboxCinematic black bars

Analysis and extraction

  • probe() — full media metadata via ffprobe (duration, codec, fps, rotation, cover-art detection, and more)
  • snapshot() — capture a single frame to .jpg, .png, .webp, .bmp, or .tiff
  • extractKeyframes() — scene-change detection or fixed-interval frame sampling, returning Buffer[] or file paths
  • transcode() — hardened one-shot ingestion to web-safe H.264/MP4 (web-mp4) or AAC/M4A (web-audio)

Audio operations

  • audioTempo() — speed change that keeps pitch (real time-stretch, not resampling)
  • detectSilence() — silence intervals with tunable threshold and minimum length
  • spliceAudio() — rebuild audio from source ranges and inserted silence, with click-free micro-faded cuts
  • trimSilence() / capSilences() — trim edge silence, cap long interior pauses; cuts land inside silence, never on speech
  • normalizeLoudness() — two-pass EBU R128 normalization to a LUFS target

Developer experience

  • Platform presets — TikTok, YouTube, Instagram, Snapchat, and more
  • Auto-sequencing — omit position to place clips sequentially; use duration instead of end
  • Pre-validation — structured errors with machine-readable codes before any file I/O
  • Schema export — machine-readable clip spec for documentation, code generation, and AI pipelines
  • Progress callbacks — real-time percent, phase, fps, and speed during export
  • Live FFmpeg loggingonLog callback for raw FFmpeg stderr/stdout
  • CancellationAbortController support for stopping exports mid-render
  • Auto-batching — automatically splits oversized filter graphs to work within OS command-line limits
  • Custom temp directory — route intermediate files to fast storage (NVMe, ramdisk, etc.)
  • TypeScript — full type definitions included
  • Zero runtime dependencies — only requires FFmpeg on your system
Last updated on