Apply cross fade from one input video stream to another input video stream. The cross fade is applied for specified duration.
Both inputs must be constant frame-rate and have the same resolution, pixel format, frame rate and timebase.
The filter accepts the following options:
- transition
-
Set one of available transition effects:
- custom
- fade
- wipeleft
- wiperight
- wipeup
- wipedown
- slideleft
- slideright
- slideup
- slidedown
- circlecrop
- rectcrop
- distance
- fadeblack
- fadewhite
- radial
- smoothleft
- smoothright
- smoothup
- smoothdown
- circleopen
- circleclose
- vertopen
- vertclose
- horzopen
- horzclose
- dissolve
- pixelize
- diagtl
- diagtr
- diagbl
- diagbr
- hlslice
- hrslice
- vuslice
- vdslice
- hblur
- fadegrays
- wipetl
- wipetr
- wipebl
- wipebr
- squeezeh
- squeezev
- zoomin
- fadefast
- fadeslow
- hlwind
- hrwind
- vuwind
- vdwind
- coverleft
- coverright
- coverup
- coverdown
- revealleft
- revealright
- revealup
- revealdown
Default transition effect is fade.
- duration
-
Set cross fade duration in seconds. Range is 0 to 60 seconds. Default duration is 1 second.
- offset
-
Set cross fade start relative to first input stream in seconds. Default offset is 0.
- expr
-
Set expression for custom transition effect.
The expressions can use the following variables and functions:
- X, Y
-
The coordinates of the current sample.
- W, H
-
The width and height of the image.
- 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.
Examples
-
Cross fade from one input video to another input video, with fade transition and duration of transition of 2 seconds starting at offset of 5 seconds:
ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4