The xfade and xfade_opencl filters can create transitions between two inputs with various wipes, slides, crossfades, and other effects.
Offset Parameter
The offset
parameter determines when the crossfade starts.
It should be set to a value that enables the full duration of the transition between the two videos. The offset parameter in the first video stream should not be greater than the duration of the first video minus the duration of the transition itself.
For example, if your first video is 8 seconds long, and your transition is 1 second long, the offset must be less than or equal to (8-1) = 7.
Also, the duration of the second video should be at least as long as the duration of the transition itself, meaning that in the above example, the second video's duration must be equal to or greater than 1.
To calculate the offset for subsequent videos, you have to factor in the previous crossfade offsets and the duration of the current video. See this example on Stack Overflow.
Examples
MP4 output
Fade between two images. Each image has a duration of 5 seconds. The fade duration is set to 1 second with the duration
option, and it occurs at 4 seconds using the offset
option.
ffmpeg -loop 1 -t 5 -i 1.png -loop 1 -t 5 -i 2.png -filter_complex "[0][1]xfade=transition=fade:duration=1:offset=4,format=yuv420p" output.mp4
GIF output
Using the split, palettegen, and paletteuse filters:
ffmpeg -loop 1 -t 5 -i 1.png -loop 1 -t 5 -i 2.png -filter_complex "[0][1]xfade=transition=fade:duration=1:offset=4,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
Gallery
Below is gallery of the available effects. fade
is the default transition. Names in bold are also available in xfade_opencl.
Command used to make each gallery image; as reference for future gallery additions:
ffmpeg -f lavfi -i "color=c=blue:s=180x136:r=15:d=2,format=rgb24,drawtext=text='fadeblack':x=(w-text_w)/2:y=(h-text_h)/2:box=1:boxborderw=4:boxcolor=white:fontfile=/usr/share/fonts/TTF/VeraMono.ttf:fontsize=20" -f lavfi -i "color=c=aqua:s=180x136:r=15:d=2,format=rgb24,drawtext=text='fadeblack':x=(w-text_w)/2:y=(h-text_h)/2:box=1:boxborderw=4:boxcolor=white:fontfile=/usr/share/fonts/TTF/VeraMono.ttf:fontsize=20" -filter_complex "[0][1]xfade=duration=1:offset=1:transition=fadeblack,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" fadeblack.gif
Custom effects
You can make your own custom effects using transition=custom
and the expr
options. See the xfade documentation for more info.
xfade_opencl
xfade_opencl is the Open CL variant of the xfade filter. This filter supports a subset of the filters available in xfade (see bold names in gallery above) and also supports creation of custom effects. It requires ffmpeg
to be configured with --enable-opencl
and you must initialize a hardware device in your command. See OpenCL Video Filters for general info.
Attachments (56)
- circlecrop.gif (8.4 KB ) - added by 5 years ago.
- distance.gif (29.0 KB ) - added by 5 years ago.
- fade.gif (8.1 KB ) - added by 5 years ago.
- fadeblack.gif (18.9 KB ) - added by 5 years ago.
- fadewhite.gif (18.7 KB ) - added by 5 years ago.
- radial.gif (31.7 KB ) - added by 5 years ago.
- rectcrop.gif (8.7 KB ) - added by 5 years ago.
- slidedown.gif (23.1 KB ) - added by 5 years ago.
- slideleft.gif (23.6 KB ) - added by 5 years ago.
- slideright.gif (26.2 KB ) - added by 5 years ago.
- smoothup.gif (25.9 KB ) - added by 5 years ago.
- slideup.gif (19.4 KB ) - added by 5 years ago.
- wipedown.gif (4.8 KB ) - added by 5 years ago.
- wipeleft.gif (4.8 KB ) - added by 5 years ago.
- wiperight.gif (5.0 KB ) - added by 5 years ago.
- wipeup.gif (4.5 KB ) - added by 5 years ago.
- smoothleft.gif (33.2 KB ) - added by 5 years ago.
- smoothright.gif (33.3 KB ) - added by 5 years ago.
- smoothdown.gif (25.2 KB ) - added by 5 years ago.
- circleclose.gif (52.4 KB ) - added by 5 years ago.
- circleopen.gif (51.9 KB ) - added by 5 years ago.
- horzclose.gif (22.1 KB ) - added by 5 years ago.
- horzopen.gif (21.9 KB ) - added by 5 years ago.
- vertclose.gif (34.0 KB ) - added by 5 years ago.
- vertopen.gif (34.8 KB ) - added by 5 years ago.
- diagbl.gif (59.8 KB ) - added by 5 years ago.
- diagbr.gif (59.7 KB ) - added by 5 years ago.
- diagtl.gif (60.6 KB ) - added by 5 years ago.
- diagtr.gif (60.8 KB ) - added by 5 years ago.
- dissolve.gif (25.9 KB ) - added by 5 years ago.
- pixelize.gif (14.5 KB ) - added by 5 years ago.
- hlslice.gif (10.4 KB ) - added by 5 years ago.
- hrslice.gif (10.5 KB ) - added by 5 years ago.
- vdslice.gif (5.7 KB ) - added by 5 years ago.
- vuslice.gif (5.7 KB ) - added by 5 years ago.
- wipebl.gif (7.3 KB ) - added by 4 years ago.
- wipebr.gif (7.8 KB ) - added by 4 years ago.
- wipetl.gif (7.5 KB ) - added by 4 years ago.
- wipetr.gif (7.5 KB ) - added by 4 years ago.
- fadegrays.gif (27.1 KB ) - added by 4 years ago.
- hblur.gif (33.0 KB ) - added by 4 years ago.
- squeezeh.gif (9.7 KB ) - added by 4 years ago.
- squeezev.gif (17.3 KB ) - added by 4 years ago.
-
zoomin.gif
(19.3 KB
) - added by 3 years ago.
zoomin transition for xfade
- hlwind.gif (32.6 KB ) - added by 18 months ago.
- hrwind.gif (31.5 KB ) - added by 18 months ago.
- vuwind.gif (87.8 KB ) - added by 18 months ago.
- vdwind.gif (87.3 KB ) - added by 18 months ago.
- coverleft.gif (14.9 KB ) - added by 17 months ago.
- coverright.gif (16.7 KB ) - added by 17 months ago.
- coverup.gif (12.8 KB ) - added by 17 months ago.
- coverdown.gif (15.3 KB ) - added by 17 months ago.
- revealleft.gif (15.5 KB ) - added by 17 months ago.
- revealright.gif (16.8 KB ) - added by 17 months ago.
- revealup.gif (13.3 KB ) - added by 17 months ago.
- revealdown.gif (15.5 KB ) - added by 17 months ago.
Download all attachments as: .zip