Skip to content
Apexify.jsDocs
Apexify.js version v5.4.5

Node / Video Ffmpeg · guide

Transitions, stabilize & batch

Current Apexify.js 6.0.0 documentation for Transitions, stabilize & batch.

apexify.jsRuntime: nodeCURRENTSince 6.0.0

addTransition

Single-clip fade (**no **secondVideo****)

type: 'fade' only.

directionEffect
outFade out from start (t=out).
Other / omitFade in from black (t=in).
SOURCEtypescript
typescript
Studio
await painter.createVideo({  source: './intro.mp4',  addTransition: {    type: 'fade',    duration: 1,    direction: 'in',    outputPath: './intro-softstart.mp4',  },  onProgress: (p) => console.log(p.percent),});

Between two videos (xfade)

Requires secondVideo. Videos scaled to max width × max height, then xfade placed so transition spans last duration seconds of source.

type maps to xfade transition names; direction refines wipe/slide/zoom variants (see advanced topic).

SOURCEtypescript
typescript
Studio
await painter.createVideo({  source: './shot-a.mp4',  addTransition: {    type: 'fade',    duration: 0.75,    secondVideo: './shot-b.mp4',    outputPath: './ab.mp4',  },});

stabilize

What it does: Two-pass vidstab when FFmpeg supports it (vidstabdetect → vidstabtransform).

FieldDefaultEffect
smoothing10Higher → smoother but more crop/wobble compensation feel.
outputPath✓

If vidstab fails, falls back to hqdn3d spatial/temporal smoothing (not true mechanical stabilisation).

SOURCEtypescript
typescript
Studio
await painter.createVideo({  source: './walking.mp4',  stabilize: {    outputPath: './walking-stable.mp4',    smoothing: 12,  },});

batch

See Compositing — same caveats (**output paths inside each **operations****).


Next steps