Short video to GIF model
Checks frames, dimensions and the 5-second cap for 5-second MP4/WebM fixtures; opens only controlled-test GIF options and verifies the output model.
Inputs and parameters
input— Local short video filefps— GIF fpswidth— Output width pxmaxSeconds— Max seconds (≤5)
Real example
five-second.mp4 · video/mp4 · 4,000,000 B · 5 s · 1280×720 · 30fps · ftyp/isom header · fps=10 width=480 maxSeconds=5
→ media-video-to-gif-<timestamp>.txt (text/plain controlled acceptance report): durationSeconds=5 · width=480 · height=270 · frames=50 · fps=10 · mime=image/gif · extension=gif · decode.ok=true. Not a real GIF binary; nothing uploaded.
Limits and failure handling
Initial budget 30 MiB / 15 s, GIF ≤ 5 s; 100 MiB+ or overlong inputs are rejected early. Open combinations are only 5 s MP4→480px/10fps GIF and WebM→320px/8fps GIF (controlled model). No real GIF encoder, ffprobe or browser decode was bundled or tested; no vertd upload, and low-memory failures are readable without silent retries.
FAQ
Can a 15-second video be used?
The input budget allows up to 15 s, but controlled fixtures cover 5 s only and the GIF cap is 5 s; option sets without a 15-second fixture are closed. The model clamps to 5 s and unmatched options raise UNVERIFIED_OPTIONS.
How is output size computed?
Scale by source aspect ratio with even height: 1280×720 → 480×270; 640×360 → 320×180. Frames = duration × fps: 5s×10fps=50, 5s×8fps=40.