All models
Media utilitiesv1.0.0
Video to GIF
Convert a video (or a clip of it) into an animated GIF (ffmpeg)
7 inputsIMAGE

First seconds → looping GIF
Output
Fill in the inputs and run the node to see its output here.
Run it from your code
The same node, called by id from any surface. Every tab pins video-to-gif and passes the ports below. Full guide.
import { BlitClient } from "@blitflow/sdk";
const { runNode } = new BlitClient({ apiKey: process.env.BLITFLOW_TOKEN });
const { outputs } = await runNode("video-to-gif", {
video: { ref: "https://..." },
fps: { value: 12 },
width: { value: 480 },
start: { value: 0 },
duration: { value: 1.5 },
maxColors: { value: "256" },
dither: { value: "sierra2_4a" },
});# Install once, then sign in
npm install -g blitflow
blitflow login
blitflow node video-to-gif \
-i video=@https://... \
-i fps=12 \
-i width=480 \
-i start=0 \
-i duration=1.5 \
-i maxColors="256" \
-i dither="sierra2_4a"{
"name": "runs_node",
"arguments": {
"node": "video-to-gif",
"inputs": {
"video": {
"ref": "https://..."
},
"fps": {
"value": 12
},
"width": {
"value": 480
},
"start": {
"value": 0
},
"duration": {
"value": 1.5
},
"maxColors": {
"value": "256"
},
"dither": {
"value": "sierra2_4a"
}
}
}
}curl https://studio.blitflow.com/api/v1/runs/node \
-H "Authorization: Bearer $BLITFLOW_TOKEN" \
-H "Content-Type: application/json" \
-d '{"node":"video-to-gif","inputs":{"video":{"ref":"https://..."},"fps":{"value":12},"width":{"value":480},"start":{"value":0},"duration":{"value":1.5},"maxColors":{"value":"256"},"dither":{"value":"sierra2_4a"}}}'Schema
Inputs
| video* | VIDEO | ||
| fps | INT | 12 | |
| width | INT | 480 | |
| start | FLOAT | Start (s) | 0 |
| duration | FLOAT | Duration (s) | |
| maxColors | TEXT | 256 · 128 · 64 · 32 | 256 |
| dither | TEXT | sierra2_4a · bayer · floyd_steinberg · none | sierra2_4a |
Outputs
| image | IMAGE |