ffmpeg 4.3 から使える予定のフィルタ。映像の切り替えにフェード、スライド、ワイプ、ディゾルブなどのトランジションを追加するxfadeフィルタの使い方。1つめの映像の最後につなげるフィルタとは限らず、指定時間から指定時間秒トランジションを行う。

関連フィルタ
フェードイン、フェードアウトの設定ができる fade

基本コマンド

映像をxfadeフィルタでクロスフェードし、音声もクロスフェードするにはafade、asetpts、amixフィルタを併用する。xfadeフィルタのoffsetafadeフィルタのstを同じ値にし、xfadeフィルタのdurationafadeフィルタのdを同じ値にすると映像のフェードと音声のフェードが同じように変化する。
ffmpeg -i input1 -i input2 -filter_complex [0:v][1:v]xfade=transition=fade:duration=1:offset=2[v];[0:a]afade=t=out:st=2:d=1,asetpts=PTS-STARTPTS[0a];[1:a]afade=t=in:st=2:d=1,asetpts=PTS-STARTPTS[1a];[0a][1a]amix[a] -map [v] -map [a] output

オプション

2つの映像は同じ解像度、フレームレート、タイムベースでなければならない。タイムベース変更はsettbフィルタを使う。

  • transition[int]
    トランジションの指定
    • -1, custom
    • 0, fade。既定値
    • 1, wipeleft
    • 2, wiperight
    • 3, wipeup
    • 4, wipedown
    • 5, slideleft
    • 6, slideright
    • 7, slideup
    • 8, slidedown
    • 9, circlecrop
    • 10, rectcrop
    • 11, distance
    • 12, fadeblack
    • 13, fadewhite
    • 14, radial
    • 15, smoothleft
    • 16, smoothright
    • 17, smoothup
    • 18, smoothdown
    • 19, circleopen
    • 20, circleclose
    • 21, vertopen
    • 22, vertclose
    • 23, horzopen
    • 24, horzclose
    • 25, dissolve
    • 26, pixelize
    • 27, diagtl
    • 28, diagtr
    • 29, diagbl
    • 30, diagbr
    • 31, hlslice
    • 32, hrslice
    • 33, vuslice
    • 34, vdslice
  • duration[duration]
    トランジション効果が継続する秒指定
    既定値:1
  • offset[duration]
    トランジションが開始する秒指定
    既定値:0
  • expr[string]
    評価式の指定。オプションは後述。扱い方が難しい

expr のオプション

geqフィルタを参考にするがよくわからない。

  • X, Y
    入力映像の横と縦の解像度で 0 からはじまりW, Hまでを返す
  • W, H
    入力映像の横と縦の解像度。固定値
  • P
    Progress of transition effect.
  • PLANE
    Currently processed plane.
  • A
    Return value of first input at current location and plane.
  • B
    Return value of second input at current location and plane.
  • a0(x, y), a1(x, y), a2(x, y), a3(x, y)
    Return the value of the pixel at location (x,y) of the first/second/third/fourth component of first input.
  • b0(x, y), b1(x, y), b2(x, y), b3(x, y)
    Return the value of the pixel at location (x,y) of the first/second/third/fourth component of second input.

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

トランジションのサンプル

公式wikiにサンプルGIFが掲載されているのでそれを引用する。

以下はフレーム数が異なるので別ファイル扱いにしている。

コメントを残す

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

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