7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Supershipグループ Advent Calendar 2024Advent Calendar 2024

Day 23

FFmpegで余白(パディング)を追加して動画を作成する方法

Last updated at Posted at 2024-12-22

この記事は、Supershipグループ Advent Calendar 2024の 23日目の記事になります。

はじめに

FFmpegを使って動画に余白(パディング)を追加し、枠線をつけたり、L字の余白を挿入してバナー風のデザインに編集する方法を解説します。

動画にパディングを付与する

FFmpegのフィルターオプションpadを使用して、動画に余白や枠線を追加できます。
公式ドキュメント:FFmpeg Filters Documentation - pad


基本のコマンド

以下のコマンドで、動画に余白(黒い枠線)を追加します。

ffmpeg -i input.mp4 -vf pad=w=iw+60:h=ih+60:x=30:y=30:color=black output.mp4

ezgif-6-16bc3e85e8.gif

コマンドの解説

  • padフィルターの指定-vf pad=w=iw+60:h=ih+60:x=30:y=30:color=black
    • w=iw+60 / h=ih+60
      出力動画の幅(w)と高さ(h)を、入力動画の解像度に対してそれぞれ+60px追加しています。

      • iw:入力動画の横幅(例:1920)
      • ih:入力動画の縦幅(例:1080)
        結果として、上下左右に30pxずつ余白が追加される形になります。
    • x=30 / y=30
      入力動画をオフセットする座標を指定しています。

      • x:左から30px横に移動
      • y:上から30px下に移動
        これにより、余白を均等に追加しつつ、映像が中央に配置されます。
    • color=black
      余白の色を指定します。
      デフォルトは黒(black)ですが、#FF0000のようなRGB形式も指定できます。


コマンドの動作

上記コマンドを実行すると、以下の動作が行われます:

  1. 入力動画の周囲に30pxの余白(パディング)が追加される。
  2. 余白部分の色は黒(color=black)に設定される。
  3. 出力動画の解像度は、追加されたパディング分だけ拡大される。
    • 例:入力動画が1920x1080の場合 → 出力動画は1980x1140になります。

注意点:アスペクト比と解像度

パディングを追加すると、出力動画の解像度やアスペクト比が変更されるため、注意が必要です。
例えば、フルHD(1920x1080)の動画に60pxの余白を追加すると、1980x1140になり、標準的な解像度から外れる可能性があります。

対策方法

  1. 入力動画の解像度を事前に調整する
    追加する余白分、あらかじめ解像度を小さくした動画を用意します。
  2. 解像度を再調整する
    余白追加後に、出力動画を元の解像度(例:1920x1080)にリサイズします。

L字の余白を追加した動画を作成する

これまでの内容を応用して、L字型の余白を追加した動画を作成します。
最終的な動画の解像度はフルHD(1920x1080)を想定しています。


1. 入力動画の解像度を調整する

まず、入力動画をL字の余白を追加するために、一段小さい解像度(HD+、1600x900)に変換します。
これにより、L字の余白を適切に配置する準備が整います。

ffmpeg -i input.mp4 -s 1600x900 movie_900.mp4
  • -s 1600x900:出力動画の解像度を1600x900(HD+)に指定します。
  • movie_900.mp4:変換後の動画ファイル名です。

2. L字の余白を追加する

次に、padフィルターを使用して、動画の周囲にL字の余白を追加します。
L字の余白部分には色を指定し、左側と下側にスペースを作成します。

ffmpeg -y -i movie_900.mp4 -vf 'pad=w=1920:h=1080:x=320:y=0:color=#87CEEB' movie_l.mp4

ezgif-6-51a4e767e1.gif

コマンドの解説

  • w=1920:h=1080
    出力動画の解像度をフルHD(1920x1080)に指定します。
  • x=320 / y=0
    入力動画(1600x900)を右方向に寄せています。
    • 1920-1600=320のため、X座標は320pxになります。
    • Y座標は0なので、動画は縦方向には動かず、上に配置されます。
  • color=#FFFF00
    L字の余白の色としてスカイブルー(#87CEEB)を指定しています。
  • movie_l.mp4
    L字余白を追加した出力動画ファイル名です。

3. 余白部分にテキストやロゴを追加する

追加したL字の余白部分にdrawtextフィルターを使用してテキストやロゴ画像を挿入することができます。

テキストを挿入する例

ffmpeg -i movie_l.mp4 -vf "drawtext=text='L字の余白こんにちわ!':x=320:y=990:fontsize=60:fontcolor=black" movie_l_text.mp4

ezgif-1-e6bcf69df0.gif

  • drawtextフィルター:テキストを動画に追加します。
    • text='L字の余白こんにちわ!':表示するテキスト内容。
    • x=320:y=990:テキストの配置位置(L字の余白内)。
    • fontsize=60:テキストのフォントサイズ。
    • fontcolor=black:テキストの色を黒に指定しています。

これで、L字型の余白が追加され、余白部分にテキストやロゴを表示する動画を作成できます。

おわりに

FFmpegのpadフィルターを使用すれば、動画に簡単に余白や枠線を追加できます。
また、余白の色やオフセット値を細かく指定することで、I字やL字のパディング、さらにはバナー風のデザインも実現可能です。

最後に宣伝です。

Supershipではプロダクト開発やサービス開発に関わる人を絶賛募集しております。
ご興味がある方は以下リンクよりご確認ください。
Supership 採用サイト
是非ともよろしくお願いします。

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?