← ブログ

FFmpegで画像をJPG・PNG・WebP・GIFに変換する方法(2026年ガイド)

FFmpegを使ってJPG・PNG・WebP・GIFなど各画像フォーマット間で変換する完全ガイド。バッチ変換、品質設定、無料のワンクリック代替ツールも紹介。

3 min read

FFmpegは動画だけでなく、画像フォーマット変換にも強力なツールです。PNGスクリーンショットをJPGに変換したり、Web用にWebPへ最適化したり、画像シーケンスからGIFを作成したりと、コマンドラインからすべて対応できます。

コマンド入力が苦手な方には、最後に無料のワンクリック解決策もご紹介します。


前提条件:FFmpegのインストール

FFmpeg

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

Windows: ffmpeg.org からダウンロードして解凍し、bin をPATHに追加してください。


基本的な画像変換

PNG から JPG へ

ffmpeg -i input.png -q:v 2 output.jpg
  • -q:v 2 — JPEG品質(1 = 最高、31 = 最低)。2〜5が推奨です。

JPG から PNG へ

ffmpeg -i input.jpg output.png

PNGはロスレスなので、品質パラメータは不要です。

PNG/JPG から WebP へ

ffmpeg -i input.png -quality 80 output.webp
  • -quality 80 — WebP品質(0〜100)。75〜85がバランスの取れた値です。

WebP から PNG へ

ffmpeg -i input.webp output.png

WebP から JPG へ

ffmpeg -i input.webp -q:v 2 output.jpg

BMP から PNG へ

ffmpeg -i input.bmp output.png

TIFF から JPG へ

ffmpeg -i input.tiff -q:v 2 output.jpg

GIFの操作

画像シーケンスからGIFへ

連続した画像(frame001.png、frame002.png、…)をアニメーションGIFに変換:

ffmpeg -framerate 10 -i frame%03d.png -vf "scale=480:-1:flags=lanczos" output.gif
  • -framerate 10 — 1秒あたり10フレーム
  • frame%03d.png — frame001.png、frame002.pngなどにマッチするパターン
  • scale=480:-1 — 幅を480pxにスケーリング、高さは自動
  • flags=lanczos — 高品質なスケーリングアルゴリズム

動画からGIFへ

ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos" -loop 0 output.gif

GIFから画像シーケンスへ

GIFからすべてのフレームを抽出:

ffmpeg -i input.gif frame%03d.png

GIF から MP4 へ

GIFはファイルサイズが大きくなります。MP4に変換すれば90%以上のサイズ削減が可能です:

ffmpeg -i input.gif -movflags +faststart -pix_fmt yuv420p output.mp4

高度なオプション

JPEG品質の制御

ffmpeg -i input.png -q:v 5 output.jpg
-q:v品質ファイルサイズ
1最高最大
2〜3非常に良好
5良好
10許容範囲
31最低最小

WebP品質の制御

# ロッシーWebP
ffmpeg -i input.png -quality 85 output.webp

# ロスレスWebP
ffmpeg -i input.png -lossless 1 output.webp

画像のリサイズ

特定の幅にスケーリング(アスペクト比を維持):

ffmpeg -i input.png -vf "scale=800:-1" output.png

特定のサイズにスケーリング:

ffmpeg -i input.png -vf "scale=800:600" output.jpg

カラースペースの変更

グレースケールに変換:

ffmpeg -i input.png -vf "format=gray" output.png

バッチ変換

すべてのPNGをJPGに変換

Linux/macOS:

for f in *.png; do
  ffmpeg -i "$f" -q:v 2 "${f%.png}.jpg"
done

すべてのJPGをWebPに変換

for f in *.jpg; do
  ffmpeg -i "$f" -quality 80 "${f%.jpg}.webp"
done

Windows (PowerShell):

Get-ChildItem *.png | ForEach-Object {
  ffmpeg -i $_.Name -q:v 2 ($_.BaseName + ".jpg")
}

よくあるエラーと解決策

「出力ファイルが空白または真っ黒」 一部のフォーマットでは明示的なピクセルフォーマットが必要です:

ffmpeg -i input.png -pix_fmt rgb24 output.jpg

「GIFの出力色が非常に悪い」 GIFは256色に制限されています。より良い品質のためにパレットを使用してください:

ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,palettegen" palette.png
ffmpeg -i input.mp4 -i palette.png -lavfi "fps=10,scale=480:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif

「フォーマットを特定できない」 フォーマットを明示的に指定してください:

ffmpeg -f image2 -i input.bmp output.png

ターミナル不要:WaveSpeed Desktopを使おう

1枚の画像変換ならFFmpegでも対応できます。しかし、品質・フォーマット・サイズを制御しながら画像をバッチ処理するとなると、すぐに煩雑になります。

WaveSpeed Desktop には、これを簡単にする画像コンバーターが内蔵されています:

  • 1枚または複数の画像をドラッグ&ドロップ
  • 出力フォーマットを選択(JPG、PNG、WebP、GIF)
  • 変換をクリック — 完了

FFmpeg不要。ターミナル不要。品質フラグを覚える必要もなし。

WaveSpeed Desktop Image Converter

WaveSpeed Desktopを無料でダウンロード: https://github.com/WaveSpeedAI/wavespeed-desktop/releases


よくある質問

Web向けの最適な画像フォーマットは? WebPは圧縮率と品質のバランスが最も優れています。ブラウザの互換性が問題でなければWebPを使用してください。それ以外は、写真にはJPEG、透過を含むグラフィックにはPNGが適しています。

JPGをPNGに変換すると画質が向上しますか? いいえ。音声と同様に、JPEG圧縮で失われた情報を回復することはできません。PNGファイルは単純にサイズが大きくなるだけです。

WebPはJPEGと比べてどれくらい小さくなりますか? 同等の視覚品質で、通常25〜35%小さくなります。

FFmpegはRAWカメラファイルに対応していますか? FFmpegのRAWサポートは限定的です。RAW変換には、ImageMagickやdarktableなどの専用ツールが適しています。