目次
画像変換、怪しい変換サイト使っていませんか?今回は自分の端末で画像、動画を変換する方法をご紹介します。
対応OS:windows,mac,linux 価格:無料
FFmpegとは何か
webサイトで画像などを変換するツールがあると思います。
FFmpegは動画・音声の変換/編集/解析を行うCLIツール群です。主コマンドは ffmpeg
(変換)、ffprobe
(情報表示)、ffplay
(簡易再生)。
特長:再現性が高い(コマンドで自動化しやすい)/対応形式が広い/GPU支援に対応。
変換とは?
変換=中身・意味は保ったまま、別の形や単位に置き換えること。
※拡張子の英語だけを変えるだけでは変換ではない(ex aa.jpg ->aa.png)。
データの構造や圧縮方式を作り直す必要があります。その処理を行うことを「変換」と呼びます
FFmpegは何ができるか
できることをまとめてみました。画像、動画、音声の相互変換や、動画の写真書き出し、
- 形式変換:MP4・WebM・MKV・MOV など相互変換
- 編集:切り出し、結合、解像度・fps 変更、字幕の焼き込み
- 抽出/生成:音声だけ抽出、連番画像の書き出し、画像から動画生成
- 最適化:配信向け
-movflags +faststart
、画質/速度の調整(-crf
/-preset
)
インストールの仕方と使い方
それぞれのOSごとにインストール方法をまとめました
Windows:インストール
# wingetを利用した方法(推奨)
winget install ffmpeg
Windows:最小の使い方(3本)
# 変換
ffmpeg -i input.mov -c:v libx264 -crf 22 -preset medium -c:a aac -b:a 192k out.mp4
# 切り出し
ffmpeg -ss 5 -t 7 -i input.mp4 -c:v libx264 -c:a aac clip.mp4
# 連番
ffmpeg -i input.mp4 -vf fps=10 frames/%06d.png
macOS:インストール
#インストールファイルを利用する方法
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
#brewを利用した場合
brew install ffmpeg
macOS:最小の使い方(3本)
# 配信向け
ffmpeg -i input.mov -c:v libx264 -crf 20 -preset slow -c:a aac -b:a 160k -movflags +faststart out.mp4
# 字幕焼き込み
ffmpeg -i input.mp4 -vf "subtitles=sub.srt" -c:v libx264 -c:a copy out_sub.mp4
# 画像→動画
ffmpeg -framerate 30 -i frames/%06d.png -c:v libx264 -pix_fmt yuv420p out.mp4
Linux:インストール
# Debian / Ubuntu
sudo apt-get update && sudo apt-get install -y ffmpeg
# Fedora
sudo dnf install -y ffmpeg
# Arch
sudo pacman -Syu ffmpeg
Linux:最小の使い方(3本)
# VP9/WebM
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -c:a libopus -b:a 128k out.webm
# 区間コピー(高速・キーフレーム依存)
ffmpeg -ss 5 -t 7 -i input.mp4 -c copy clip.mp4
# 連番(1fps, JPEG)
ffmpeg -i input.mp4 -vf fps=1 frames/%06d.jpg
クイックコマンド集
よく使うコマンドをまとめてみました。色々なことができるため、使い方をぜひ調べてみてください。
# 1) 形式変換(H.264/AAC)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 192k out.mp4
# 2) 区間切り出し(再エンコードで正確に)
ffmpeg -ss 00:00:05 -to 00:00:12 -i input.mp4 -c:v libx264 -c:a aac clip.mp4
# 3) 解像度+fps変更
ffmpeg -i input.mp4 -vf "scale=1280:-1:flags=lanczos,fps=30" -c:v libx264 -crf 20 -c:a copy out.mp4
# 4) 連番画像(10fps, 6桁ゼロ埋め)
ffmpeg -i input.mp4 -vf fps=10 frames/%06d.png
# 5) 画像→動画(30fps, 再生互換重視)
ffmpeg -framerate 30 -start_number 1 -i frames/%06d.png -c:v libx264 -pix_fmt yuv420p out.mp4
# 6) 音声だけ抽出(コピー)
ffmpeg -i input.mp4 -vn -c:a copy audio.m4a
# 7) 配信向け最適化
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset slow -c:a aac -b:a 160k -movflags +faststart out.mp4
まとめ
ffmpegを利用すれば怪しい変換サイトを使わずに済みます。GUIも存在するのでぜひ調べてみてください。