← ClaudeAtlas

video-to-giflisted

Convert an MP4 (e.g. a HyperFrames render or a screen recording) to a high-quality GIF using FFmpeg's two-pass palette method. Picks the right preset for the target surface — Slack/DMs/Twitter/email/Reddit/GitHub — so you don't ship a 40MB GIF to a 5MB inbox.
cognyai/claude-code-marketing-skills · ★ 55 · AI & Automation · score 81
Install: claude install-skill cognyai/claude-code-marketing-skills
# Video to GIF Convert a video (MP4, MOV, WebM) to a GIF that's **actually small** and **actually looks good** on the surface you're posting to. Pairs naturally with `/tiktok-launch-video`, `/reddit-launch-video`, and `/linkedin-launch-video` for sharing renders in places where MP4 isn't supported (Slack threads, X cards, GitHub READMEs, transactional emails). GIF is a terrible video format — but it's everywhere, so we use FFmpeg's two-pass `palettegen` / `paletteuse` flow to make it look as good as the format allows. ## Usage `/video-to-gif launch.mp4` — interactive, asks the target `/video-to-gif launch.mp4 slack` — Slack-tuned `/video-to-gif launch.mp4 reddit` — Reddit-comment-tuned `/video-to-gif launch.mp4 github` — GitHub README–tuned `/video-to-gif launch.mp4 twitter` — X / Twitter–tuned `/video-to-gif launch.mp4 email` — transactional / newsletter–tuned ## Prerequisites ```bash ffmpeg -version | head -1 # must exist ffprobe -version | head -1 ``` If FFmpeg isn't installed: ```bash # macOS brew install ffmpeg # Debian/Ubuntu sudo apt install ffmpeg ``` ## Steps ### 1. Inspect the source Run `ffprobe` to get the source's duration, dimensions, and frame rate. You need these to pick the right preset and to warn the user before producing something that won't fit. ```bash ffprobe -v error -show_entries stream=width,height,r_frame_rate -show_entries format=duration -of default=noprint_wrappers=1 <input> ``` Capture: source width, source height, source duration