← Files Cecil-IA Labs FFmpegARCHIVED FILE

dist/composition/transitions.js

914 Bytes · Sep 30, 2026 · 23:17 UTC

↓ Download file

const NATIVE = new Set([
    "fade", "fadeblack", "fadewhite", "wipeleft", "wiperight", "slideup", "slidedown",
    "circleopen", "circleclose", "dissolve", "pixelize", "distance", "zoomin",
]);
export const COMPOSITION_TRANSITIONS = new Set([
    ...NATIVE,
    "zoomout",
]);
function zoomoutExpression() {
    // Shrink the outgoing frame around the center while revealing the incoming frame.
    return "if(between(X,W*P*0.15,W*(1-P*0.15))*between(Y,H*P*0.15,H*(1-P*0.15)),a0((X-W*P*0.15)/(1-0.3*P),(Y-H*P*0.15)/(1-0.3*P)),b0(X,Y))";
}
export function xfadeFilter(transition, duration, offset) {
    if (transition === "zoomout") {
        return `xfade=transition=custom:duration=${duration}:offset=${Number(offset.toFixed(6))}:expr='${zoomoutExpression()}'`;
    }
    return `xfade=transition=${transition}:duration=${duration}:offset=${Number(offset.toFixed(6))}`;
}
//# sourceMappingURL=transitions.js.map

SHA-256: 70e7053e924cb1f9b9e53cd79aed0ed29d94b19ca277b0a6627d64e3cb384789