video-to-gif

Solid

録画済みの mp4 / webm / mov を、GitHub の markdown ビューアが実際に再生できる GIF に変換する。バイト予算を指定すると解像度・fps・パレットを段階的に落として収まるまで再試行し、収まらなければ書かずに落ちる。「GIF を作って」「GIF 化」「mp4 を GIF に」「README に貼れる動画」等の指示で使う。

Code & Development 39 stars 4 forks Updated today MIT

Install

View on GitHub

Quality Score: 81/100

Stars 20%
53
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# video-to-gif 録画済みの動画を GIF にする。`to-gif.sh` 一発で、**バイト予算に収まる GIF** が出る。 ```bash .claude/skills/video-to-gif/scripts/to-gif.sh demo.mp4 # demo.gif を隣に出す .claude/skills/video-to-gif/scripts/to-gif.sh *.mp4 --out docs/images/features .claude/skills/video-to-gif/scripts/to-gif.sh clip.mp4 --max-bytes 500k .claude/skills/video-to-gif/scripts/to-gif.sh --ladder # 再試行の段取りだけ表示(ffmpeg 不要) .claude/skills/video-to-gif/scripts/to-gif.sh --report docs/images/features/*.gif .claude/skills/video-to-gif/scripts/to-gif.sh --check # 依存確認のみ ``` ## なぜ GIF なのか GitHub の **markdown ビューアは `<video>` を描画しない**。HTML 許可リストに含まれておらず、 動画添付が再生されるのは issue / PR / discussion の**コメント**だけである。リポジトリ内の `.md` に貼って動く動画は GIF しかない。 例外は **GitHub Pages**(`website/`)で、そちらは素の HTML がそのまま配信されるので `<video>` が使える。LP に置くなら GIF ではなく mp4 の方が軽い(実測 GIF 1.02MB に対し mp4 0.56MB)。**GIF が要るのは docs 配下の markdown だけ**。 ## なぜ demo-video の `compose.sh --gif` と別なのか `compose.sh --gif` は合成パイプラインの途中でしか発火せず、720px / 12fps / `sierra2_4a` を ハードコードしている。docs に載せるときに要るのは「**完成済みの mp4 から**、**リポジトリが 背負えるサイズの** GIF を作る」ことで、しかも収まったかどうかは**測って**判断する必要がある。 この 2 点は合成の関心事ではないので別スキルにした。 ## 設計判断: dither は既定で切る 同一素材(20 秒 / 1280x800 の UI キャプチャ)を、無劣化リファレンスに対する SSIM で実測した。 | 設定 | バイト数 | SSIM (All) | |------|---------|-----------| | `colors=256 dither=none` ← **既定** | 1,073,725 | **0.99653** | | `colors=128 dither=none` | 883,912 | 0.99439 | | `colors=128 dither=sierra2_4a` | 1,271,671 | 0.99160 | | `colors=128 dit...

Details

Author
Kewton
Repository
Kewton/CommandMate
Created
9 months ago
Last Updated
today
Language
TypeScript
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category