一つの映像の前後フレームを1フレームに表示し確認できる tile フィルタの使い方。

3×3 のタイルの出力例

基本コマンド

3×3 のタイルで3秒間連番画像を出力する。
ffmpeg -i input -t 3 -vf tile=layout=3x3:nb_frames=0:margin=0:padding=0:color=black:overlap=0:init_padding=0 output-%03d.jpg

キーフレームだけ出力する場合には入力ファイルの前に skip_frame nokey をつける。t 3 で出力を3秒に制限している。
ffmpeg -skip_frame nokey -i input -t 3 -vf tile=3x3 output-%03d.jpg

ノンリニア編集のように過去5つ前までのフレームを横に表示し、アスペクト比を維持せずに最大横幅が1920ピクセル、縦幅が1080ピクセルまで。
ffplay -i input -vf tile=5x1:overlap=4,scale=1920:1080:force_original_aspect_ratio=decrease

関連記事
【ffmpeg】動画から特定フレームを画像で出力する方法
ニコ生のTSから一定時間毎に画像を出力する
ニコ生のTSからサムネイルを出力する
Windows の ffmpeg で生放送する方法 : スタック(映像を並べる)
解像度が一致しなくても映像を並べられる xstack
指定フレーム毎に順番を入れ換える shuffleframes

公式ドキュメント:FFmpeg Filters Documentation : tile

オプション

  • layout[image_size]
    1フレームのタイルの枚数を指定する。左上から右下に並ぶ
    既定値:6×5(横x縦)
  • nb_frames[int]
    1フレームにレンダリングするタイル数を指定する
    既定値:0(すべて)
    範囲:0 から INT_MAX(layout で指定したタイル以下)まで
  • margin[int]
    上下左右に color で指定した色の枠を指定ピクセル分追加する
    既定値:0
  • padding[int]
    タイルの間に color で指定した色の枠を指定ピクセル分追加する
    既定値:0
  • color[color]
    margin, padding で追加した余白の色を指定する
    既定値:black(rrggbb形式も可能)
  • overlap[int]
    フレームに表示される最後のタイルが次のフレームの最初のタイルと重なる枚数の指定
    既定値:0
    範囲:0 から INT_MAX(layout で指定したタイル数未満)まで
  • init_padding[int]
    最初のタイルに空フレーム(真っ暗映像)を挿入する枚数の指定
    既定値:0
    範囲:0 から INT_MAX(総フレーム数 – 1)まで

任意の順番に表示する

1つの映像のフレームを任意の順番に配置する方法。shuffleframes フィルタを併用することで任意の順番に配置する。複数入力の映像または、画像を指定場所に配置するなら xstack フィルタを使う。tile フィルタは左上から右に進んで右下方向にしか指定できないので、shuffleframes でフレーム順を入れ換えることで任意の順番にタイル表示できる。

解像度が一致しなくても映像を並べられる xstack

コマンド例

  • 普通の配置
    12
    34
    tile=2x2:overlap=3,framestep=4

  • 13
    24
    "shuffleframes=0 2 1 3,tile=2x2:overlap=3,framestep=4"

  • 167
    258
    349
    "shuffleframes=0 5 6 1 4 7 2 3 8,tile=3x3:overlap=8,framestep=9"

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)