ウォーターマーク・ロゴのオーバーレイ — overlay フィルタの使い方

動画にロゴや著作権表示を焼き込む際に使うのが overlay フィルタです。2つの映像入力を重ねて1つの映像として出力します。本記事では基本的な使い方から、位置指定の応用・透明度付きPNG・時間制限表示まで順を追って説明します。

動作確認: ffmpeg 6.1 で確認済み


1. overlayフィルタの基本

overlay フィルタは 2つの入力 が必要です。-i で動画とロゴ画像をそれぞれ指定し、-filter_complex で合成します。

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output.mp4

2. 位置指定に使える組み込み変数

座標に数値ではなく変数を使うと、動画サイズが変わっても自動的に追従します。

変数意味
main_w / Wメイン動画の幅
main_h / Hメイン動画の高さ
overlay_wオーバーレイ(ロゴ)の幅
overlay_hオーバーレイ(ロゴ)の高さ

右下に配置(よく使う定番パターン)

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=main_w-overlay_w-10:main_h-overlay_h-10" output.mp4

その他の定番位置:

位置X 式Y 式
左上1010
右上main_w-overlay_w-1010
左下10main_h-overlay_h-10
右下main_w-overlay_w-10main_h-overlay_h-10
中央(main_w-overlay_w)/2(main_h-overlay_h)/2

3. 透明度付きPNGをそのまま使う(アルファチャンネル対応)

ロゴに透過部分があるPNGを使う場合、scale フィルタでサイズを調整してから合成できます。

ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]scale=100:-1[wm];[0:v][wm]overlay=10:10" output.mp4

フィルタグラフの解説:

  1. [1:v]scale=100:-1[wm] — ロゴ(2番目の入力)を幅100pxにリサイズ(アスペクト比保持)し、[wm] という名前を付ける
  2. [0:v][wm]overlay=10:10 — メイン動画とリサイズ済みロゴを (10, 10) の位置で合成

ポイント: アルファチャンネル付きPNGはFFmpegが自動的に透過処理します。特別なオプションは不要です。


4. 特定の時間帯だけ表示する(enable オプション)

enable オプションを使うと、ロゴを表示する時間範囲を秒単位で指定できます。

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10:enable='between(t,0,5)'" output.mp4

動画全体ではなく特定区間だけロゴを表示したい場合(例: イントロ・アウトロのみ)に便利です。


5. まとめ:右下ロゴの定番コマンド

実際の運用で最もよく使われるパターンです。

ffmpeg -i input.mp4 -i logo.png -filter_complex "[1:v]scale=150:-1[wm];[0:v][wm]overlay=main_w-overlay_w-20:main_h-overlay_h-20" output.mp4

よくある注意点


関連記事


動作確認: ffmpeg 6.1.1 / Ubuntu 24.04 (GitHub Actions runner)
一次ソース: ffmpeg.org/ffmpeg.html / ffmpeg.org/ffmpeg-filters.html / trac.ffmpeg.org