Loading...
Loading...
Create screen-photo-style fisheye distortion effects and focus animations: barrel fisheye distortion + fine scanline/moiré interference + edge vignette, with Remotion video output for any image or video using a “push-in focus onto a target + yellow annotation block sliding in” effect. The core workflow is to clone the https://github.com/vibe-motion/fisheye-motion project, adjust parameters as needed, and render. Trigger words: fisheye, screen capture, moiré, moire, scanline, CRT, vignette, focus push-in, highlight annotation animation, screen-photo effect.
npx skill4agent add vibe-motion/skills fisheye-motiongit clone https://github.com/vibe-motion/fisheye-motion.git
cd fisheye-motionsrc/lib/FisheyeRenderer.jssrc/lib/FisheyeView.jsxvibe-motion-app/npm install
npm run devpublic/test.jpgpublic/src/lib/cd vibe-motion-app
pnpm install # postinstall 自动准备 headless 浏览器
pnpm run dev # Remotion Studio 预览vibe-motion-app/public/motion/config.jsimageSrcpublicvideoWidthvideoHeightfocusFromfocusTorect{ x, y, w, h }focusStartSec/focusEndSecmaskStartSec/maskEndSecdurationSeconds# 透明 ProRes 4444 mov(默认)
pnpm run remotion:render
# H.264 mp4
REMOTION_OUTPUT=out/fisheye.mp4 REMOTION_CODEC=h264 REMOTION_PIXEL_FORMAT=yuv420p pnpm run remotion:renderffmpeg -i out/fisheye.mp4 -vf "fps=15,scale=540:-1:flags=lanczos,palettegen" /tmp/p.png
ffmpeg -i out/fisheye.mp4 -i /tmp/p.png -lavfi "fps=15,scale=540:-1:flags=lanczos[x];[x][1:v]paletteuse=dither=bayer:bayer_scale=4" out/fisheye.giffocusTorectREMOTION_OUTPUT=out/check.png| Parameter | Default | Description |
|---|---|---|
| 1.6 | Distortion strength; 0 = no distortion, |
| 2 | Center zoom (used with the focus push-in) |
| | Moiré intensity/frequency/angle |
| | Vignette |
| | Use |
motion/timeline.js--gl angleassets/fisheye-demo.gif