Hi I have a video which is 20 seconds long, I want to add some text to this video from 00:00:10 seconds to 00:00:15 seconds which just says "Summer Video" and fades in and out using FFMPEG.
I know I have to use the drawtext filter, but has anybody got any examples?
Thank you.
Two methods to do this:
Use the enable option. Because you want fades you need to add the fade and overlay filters.
ffmpeg -i input -filter_complex "drawtext=text='Summer Video':enable='between(t,15,20)',fade=t=in:start_time=15:d=0.5:alpha=1,fade=t=out:start_time=19.5:d=0.5:alpha=1[fg];[0][fg]overlay=format=auto,format=yuv420p" -c:a copy output.mp4
Alternatively, make subtitles with the desired time and fades and use the subtitles filter instead:
ffmpeg -i input -vf subtitles=fade.ass -c:a copy output
The example fade.ass was created in Aegisub. The \fad tag was used to set the fade in/out durations in milliseconds: {\fad(500,500)}Summer Video is 0.5 seconds for both in and out.
fade.ass example file contents:
[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None
[Aegisub Project Garbage]
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:15.00,0:00:20.00,Default,,0,0,0,,{\fad(500,500)}Summer Video
I recommend using the subtitles filter because the subtitles can be easier to use and have more styling options and effects than drawtext.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With