mcpField
G
gif-generation

gif-generation

github.com/atholaクリエイティブ・メディア343110 回インストール1 日前に更新
リポジトリ

gif-generation について

gif-generationは、動画を最適化したGIFに変換するスキルです。デモやドキュメント用のアニメーション作成向けで、画質とファイルサイズを調整できます。

主な機能

  1. 01動画ファイルのGIF変換
  2. 02複数の画質プリセット
  3. 03フレームレートとサイズの調整
  4. 04パレットとディザリングによる最適化
  5. 05入力・依存関係・出力の確認

活用シーン

  1. 01ブラウザー録画のGIF化
  2. 02軽量なデモアニメーションの作成
  3. 03ドキュメント用GIFの準備
  4. 04GIFファイルサイズの削減

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/athola/claude-night-market --skill gif-generation

インストール後、Claude Code で/gif-generationを入力して読み込まれたか確認します。

詳細

GIF 生成スキル

動画ファイル(webm/mp4)を後処理し、品質設定を調整して最適化された GIF を生成します。

使用する場合

  • 録画をアニメーション GIF 形式に変換する場合
  • 軽量なデモアニメーションを作成する場合

使用しない場合

  • 高品質の動画を出力する場合 — 動画の録画ツールを使用してください
  • アニメーションが不要な静止画像を生成する場合

概要

このスキルは、動画の録画(通常はブラウザーの自動化によるもの)を GIF 形式に変換します。複数の品質プリセットと最適化オプションを用意しており、ファイルサイズと画質のバランスを調整できます。

必須の進捗項目

- Validate input video file exists
- Check ffmpeg installation
- Execute GIF conversion
- Verify output and report results

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

手順

ステップ 1:入力ファイルを検証する

入力動画ファイルが存在し、対応形式であることを確認します:

# Check file exists and get info
if [[ -f "$INPUT_FILE" ]]; then
    file "$INPUT_FILE"
    ffprobe -v quiet -show_format -show_streams "$INPUT_FILE" 2>/dev/null | head -20
else
    echo "Error: Input file not found: $INPUT_FILE"
    exit 1
fi

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

対応する入力形式:.webm、.mp4、.mov、.avi

ステップ 2:ffmpeg のインストールを確認する

ffmpeg が利用可能であることを確認します:

if ! command -v ffmpeg &> /dev/null; then
    echo "Error: ffmpeg is not installed"
    echo "Install with: sudo apt install ffmpeg (Linux) or brew install ffmpeg (macOS)"
    exit 1
fi
ffmpeg -version | head -1

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

ステップ 3:変換を実行する

品質要件に応じて適切な変換コマンドを選択します:

基本変換(高速、ファイルサイズ大)
ffmpeg -i input.webm -vf "fps=10,scale=800:-1" output.gif

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

パレット生成による高品質変換(推奨)
ffmpeg -i input.webm -vf "fps=10,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

ディザリングによる最高品質変換
ffmpeg -i input.webm -vf "fps=15,scale=1024:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=256:stats_mode=single[p];[s1][p]paletteuse=dither=bayer:bayer_scale=5" output.gif

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

最適化オプション
オプション説明推奨値
fps1 秒あたりのフレーム数滑らかな再生には 10-15、小さいファイルには 5-8
scaleピクセル単位の幅(-1 は縦横比を維持)Web 用は 800、サムネイル用は 480
flags=lanczos高品質なスケーリングアルゴリズム最高の品質を得るため、常に使用してください
palettegen最適化されたカラーパレットを生成品質を重視する出力に使用してください
ditherディザリングアルゴリズムパターンには bayer、滑らかな仕上がりには floyd_steinberg
一般的なプリセット
# Thumbnail (small, fast loading)
ffmpeg -i input.webm -vf "fps=8,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" thumbnail.gif

# Documentation (balanced)
ffmpeg -i input.webm -vf "fps=10,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" docs.gif

# High-fidelity demo
ffmpeg -i input.webm -vf "fps=15,scale=1024:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=256[p];[s1][p]paletteuse" demo.gif

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

ステップ 4:出力を確認する

変換が成功したことを確認し、指標を報告します:

if [[ -f "$OUTPUT_FILE" ]]; then
    echo "GIF generated successfully: $OUTPUT_FILE"

    # Report file size
    SIZE=$(du -h "$OUTPUT_FILE" | cut -f1)
    echo "File size: $SIZE"

    # Get dimensions and frame count
    ffprobe -v quiet -select_streams v:0 -show_entries stream=width,height,nb_frames -of csv=p=0 "$OUTPUT_FILE"
else
    echo "Error: GIF generation failed"
    exit 1
fi

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

完了条件

  • 入力ファイルが既存の動画形式であることを確認済み
  • ffmpeg が利用可能であることを確認済み
  • 指定された出力パスに GIF ファイルが作成されている
  • 出力ファイルのサイズをユーザーに報告済み
  • 変換中に ffmpeg エラーが発生していない

トラブルシューティング

出力ファイルが大きい

品質設定を下げます:

# Lower fps and resolution
ffmpeg -i input.webm -vf "fps=8,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" smaller.gif

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

色むら

ディザリングを使用します:

ffmpeg -i input.webm -vf "fps=10,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse=dither=floyd_steinberg" smooth.gif

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

変換が遅い

速度を優先する場合は、パレット生成を使わない基本変換を使用します:

ffmpeg -i input.webm -vf "fps=10,scale=800:-1" quick.gif

確認: --help フラグを指定してコマンドを実行し、利用可能であることを確認します。

コメント