動画をGIFに変換
FFmpegを使用して、動画ファイル(MOV、MP4など)をGIFアニメーションに変換する方法を説明します。
FFmpegのインストール
Section titled “FFmpegのインストール”brew install ffmpeg基本的な変換
Section titled “基本的な変換”シンプルな変換
Section titled “シンプルな変換”ffmpeg -i input.mov output.gifフレームレートを指定した変換
Section titled “フレームレートを指定した変換”# 24fpsで変換ffmpeg -i input.mov -r 24 output.gif高度な変換オプション
Section titled “高度な変換オプション”サイズを指定
Section titled “サイズを指定”# 幅640pxに縮小(アスペクト比は維持)ffmpeg -i input.mov -vf scale=640:-1 output.gif品質を最適化
Section titled “品質を最適化”# パレット生成を使用した高品質GIFffmpeg -i input.mov -vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif特定の時間範囲を切り出し
Section titled “特定の時間範囲を切り出し”# 5秒目から10秒間を切り出しffmpeg -ss 5 -t 10 -i input.mov -r 24 output.gif画面録画をGIFに変換(最適化版)
Section titled “画面録画をGIFに変換(最適化版)”# 画面録画を最適なサイズと品質でGIFに変換ffmpeg -i screenrecording.mov \ -vf "fps=15,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \ -loop 0 \ demo.gifエラー画面の記録用
Section titled “エラー画面の記録用”# エラー画面などの記録用(低フレームレート、小サイズ)ffmpeg -i error.mov -r 10 -vf scale=600:-1 error.gifGIFの最適化
Section titled “GIFの最適化”ファイルサイズを削減
Section titled “ファイルサイズを削減”# gifsicleを使用した最適化brew install gifsicle
# 最適化レベル3で圧縮gifsicle -O3 input.gif -o output.gif
# 色数を減らして圧縮gifsicle -O3 --colors 128 input.gif -o output.gifよく使うエイリアス
Section titled “よく使うエイリアス”.zshrcに追加すると便利:
# 動画をGIFに変換(最適化付き)alias mov2gif='function _mov2gif() { ffmpeg -i "$1" -vf "fps=15,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" "${1%.*}.gif"}; _mov2gif'
# 画面録画用GIF変換alias rec2gif='function _rec2gif() { ffmpeg -i "$1" -r 24 -vf scale=1024:-1 "${1%.*}.gif"}; _rec2gif'使用例:
mov2gif recording.mov # recording.gif が生成されるrec2gif demo.mov # demo.gif が生成されるトラブルシューティング
Section titled “トラブルシューティング”メモリ不足エラー
Section titled “メモリ不足エラー”大きな動画ファイルの場合、メモリ不足になることがあります:
# より少ないメモリで処理(処理は遅くなる)ffmpeg -i input.mov -r 15 -vf scale=400:-1 output.gif色数が多すぎる警告
Section titled “色数が多すぎる警告”GIFは最大256色なので、動画によっては色の劣化が発生します。パレット生成を使用することで改善できます。