ffmpegは、コマンドラインで操作する、高度な動画変換ツールです。最初は少しとっつきにくいですが、これさえあれば他には何もいらないということも多いです。この記事では、なるべく具体的な使用例を基に、コマンドオプションをご紹介いたします。
FFmpegをWindowsで使う方法
FFmpegの概要と、なぜFFmpegが必要か、Windowsへのインストール方法(winget、手動)をご案内します。
FFmpegとは
「FFmpeg」とは、オープンソースで開発されている、動画・音声の編集ツールです。
コマンドラインで操作することを基本としており、フォーマット変換、トリミング、リサイズ、フィルタ処理など、豊富な機能を持っています。
ライブラリとしても提供されているため、他の動画編集ツールやAIは、裏でFFmpegを呼び出しているだけということも多いです。
動画編集ツールや動画変換サイトは怪しいモノが多く、個人情報を抜かれたり、マルウェアに感染したりする恐れがあります。
FFmegを使えるようになれば、これらの怪しいツールを触る必要がなくなります。
またFFmpegは、動画や音声ファイルに含まれたメタデータも簡単に削除することもできます。
最近はAI生成したファイルに、プロンプト等が含まれていることも多いので、メタデータを確認することは重要となります。
wingetでインストール
WindowsにFFmpegをインストールする一番簡単な方法は、wingetを利用することです。
コマンドプロンプトを開き、以下を入力します。
winget install -e --id Gyan.FFmpeg
すぐにインストールが完了し、利用できるようになります。
wingetの問題点
wingetでインストールをすると、以下のような、とても深い階層に保存されることになります。
C:\Users\【ユーザー名】\AppData\Local\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-7.1.1-full_build\bin
別に困ることではありませんが、保存場所を変えたいという場合は、下記の手動ダウンロードの方法をご利用ください。
手動でダウンロード
「https://ffmpeg.org/」を開き、「Download」をクリックします。
Windowsアイコンをクリックします。
「gyan.dev」と「BtbN」の2つのビルドがありますが、「gyan.dev」の方が広く使われているようです。
「https://www.gyan.dev/ffmpeg/builds/」から、「ffmpeg-git-full.7z」をダウンロードします。
機能を厳選した「essentials」もありますが、展開したファイルサイズでfullが500MB、essentialsが300MB程度と、それほど大きく異なる訳ではないので、fullの方をおすすめします。
ダウンロードしたファイルを、好きな場所に展開します。
「7z」ファイルを展開できないという場合は、「7-Zip」をおすすめします。
パスの設定
このままでは、Windowsはffmpegの保存場所を知らないので、「パスを通す」という作業を行います。
Windowsで「システムの詳細設定」を検索して開き、「環境変数」をクリックします。
「Path」を選択し、「編集」をクリックします。
「新規」をクリックします。
ffmpegを保存したパスを入力します。
「bin」まで含めるという点にご注意ください。
反映されていることを確認したら、「OK」をクリックします。
テストのために、コマンドプロンプトを開き、以下のように入力します。
where ffmpeg
保存した場所が表示されれば成功です。
FFmpegでよく使うコマンド一覧
ffmpegには膨大な機能があるため、すべてを解説することはできませんが、よくある使用例を並べましたので、こんなことができるのかという感じを掴んでいただければと思います。
ffplay
ffmpeg付属のffplayでは、動画を再生をすることができます。
GUIは一切ついていないので、ちょっとした確認用です。
動画を再生する
ffplay input.mp4
音声のみ再生する
ffplay -vn input.mp4
-vn
: 映像を無効化
映像のみ再生する
ffplay -an input.mp4
-an
: 音声を無効化
画面サイズを指定して再生する
ffplay -x 640 -y 360 input.mp4
-x
: 横幅-y
: 縦幅
フルスクリーンで再生する
ffplay -fs input.mp4
-fs
: フルスクリーン
ffprobe
同じく付属のffprobeでは、動画のフォーマット、コーデック、フレームレート、解像度などの情報を確認できます。
情報を表示する
ffprobe input.mp4
JSON形式で出力する
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
-v quiet
: ログ出力を抑制-print_format json
: 出力をJSON形式にする-show_format
: コンテナ情報を表示-show_streams
: ストリーム情報を表示
ffmpeg
本体のffmpegでは、様々な変換を行うことができます。
バージョン確認
ffmpeg -version
-version
: バージョン情報の表示
フォーマットを変換する
ffmpeg -i input.mp4 output.avi
-i
: 入力ファイルを指定- 拡張子に合わせて自動変換されるが、コーデックが合わずに再生できない場合もある
ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4
-c:v libx264
: 映像コーデックH.264(libx264)を使用-c:a aac
: 音声コーデックAACを使用
ビットレートを変更する
ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -c:a aac -b:a 128k output.mp4
-b:v 1000k
: 映像ビットレートを1000kbpsに設定-b:a 128k
: 音声ビットレートを128kbpsに設定
解像度を変更する
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
-vf scale=1280:720
: 横1280縦780に変換
ファイルサイズを小さくする
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -crf 28 -preset fast -c:a aac -b:a 128k output.mp4
-vf scale=1280:-1
: 横1280で、縦はアスペクト比を維持して自動計算-crf 28
: 圧縮レベル(18~28程度)-preset fast
: エンコード速度(ultrafast、medium、slow等)
ストリーミング用にする
ffmpeg -i input.mp4 -movflags +faststart output.mp4
-movflags +faststart
: ファイル全体を読み込む前に再生開始する
YouTubeに最適化する
ffmpeg -i input.mp4 -c:v libx264 -profile:v high -level 4.2 -pix_fmt yuv420p -preset slow -crf 20 -movflags +faststart -c:a aac -b:a 192k output.mp4
-profile:v high -level 4.2
: 高画質、かつ幅広い環境に対応-pix_fmt yuv420p
: 色形式を互換性が高いものに固定
フレームレートを変更する
ffmpeg -i input.mp4 -r 30 output.mp4
-r 30
: フレームレートを30fpxに変換
動画の一部を切り出す
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4
-ss 00:01:00
: 開始時間-to 00:02:00
: 終了時間-c copy
: 再エンコードしない
ffmpeg -i input.mp4 -t 30 -c copy output.mp4
-t 30
: 最初から30秒
トリミングする
ffmpeg -i input.mp4 -vf "crop=640:360:100:50" output.mp4
-vf "crop=640:360:100:50"
: 左上から100x50を基準に、640x360で切り抜き
音声を抽出する
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
-q:a 0
: 最高音質-map a
: 音声トラックのみ
ffmpeg -i input.mp4 -vn output.wav
-vn
: 映像を無効化
映像を抽出する
ffmpeg -i input.mp4 -an -c copy output.mp4
-an
: 音声を無効化
音量を変更する
ffmpeg -i input.mp4 -filter:a "volume=1.5" output.mp4
-filter:a "volume=1.5"
: 音量を1.5倍にする
ffmpeg -i input.mp4 -c:v copy -filter:a "volume=-3dB" output.mp4
-c:v copy
: 映像は無劣化コピー-filter:a "volume=-3dB"
: 音量を3dB下げる
ステレオ音声をモノラルに変換する
ffmpeg -i input.mp3 -ac 1 output.mp3
-ac 1
: 1チャンネル(モノラル)に変換
スクリーンショット画像を保存する
ffmpeg -i input.mp4 -ss 00:00:05 -vframes 1 output.jpg
-ss 00:00:05
: 再生開始位置を指定-vframes 1
: フレーム数(出力ファイル数)を1に制限
ffmpeg -i input.mp4 -vf fps=1 output_%04d.png
-vf fps=1
: 1秒ごとoutput_%04d.png
: 4桁の連番で出力(0001、0002、...)
ffmpeg -i input.mp4 output_%04d.png
- 全フレームを画像として保存(膨大な量となるので注意)
画像から動画を作成する
ffmpeg -framerate 30 -i image%03d.png -c:v libx264 -pix_fmt yuv420p output.mp4
-framerate 30
: 30fpsで入力
動画に字幕ファイルを付ける
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4
-vf subtitles=subtitles.srt
: 字幕ファイルを焼き付ける(ハードサブ)
動画にウォーターマークを追加する
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output.mp4
-i
: 入力ファイルを2つ指定-filter_complex "overlay=10:10"
: 左上から10x10の位置に重ねる
動画を回転する
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
-vf "transpose=1"
- 0: 反時計回りに90度回転し、上下反転
- 1: 時計回りに90度回転
- 2: 反時計回りに90度回転
- 3:時計回りに90度回転し、上下反転
ffmpeg -i input.mp4 -vf vflip output.mp4
-vf vflip
: 上下反転
ffmpeg -i input.mp4 -vf hflip output.mp4
-vf hflip
: 左右反転
動画を結合する
ffmpeg -i left.mp4 -i right.mp4 -filter_complex hstack output.mp4
-filter_complex hstack
: 左右に並べる
動画を連結する
ffmpeg -f concat -safe 0 -i file_list.txt -c copy output.mp4
-f concat
: 動画を連結する(フォーマットは揃える必要がある)-safe 0
: 相対パスや、特殊文字を含むパスでも読み込む
file_list.txtの例
file '1.mp4'
file '2.mp4'
file '3.mp4'
メタデータを削除する
ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4
-map_metadata -1
: メタデータをすべて無視する
画像のメタデータはexiftoolで削除できますが、動画や音声ファイルの場合は、一部残る場合があります。
ffmpegを組み合わせると確実です。
-
AI生成した画像であることがバレる? C2PAとは
画像や動画の生成AIが進化し、本物と偽物の区別がつかなくなってきています。そこで業界団体は、作成者や使用ツールなどの情報をコンテンツに埋め込み、さらにデジタル署名をして信頼性を確保する、C2PAという ...
まとめ ffmpegの使い方とは
ffmpegは、動画や音声ファイルを変換できる、コマンドラインベースのツールです。
多くのGUI動画編集ツールの裏で動いているので、ffmpegを直接使えるようになれば、他のツールが不要となる場面も多いです。
また、メタデータの削除にも便利です。
AI生成した音声や動画ファイルには、プロンプトが埋め込まれていることがあるので、公開前に確認すると良いでしょう。
