これで解決!FFmpegで動画を一括処理する方法

画像変換、怪しい変換サイト使っていませんか?今回は自分の端末で画像、動画を変換する方法をご紹介します。

対応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も存在するのでぜひ調べてみてください。