Для этого есть два метода:
drawtext
Используйте параметр enable
.Поскольку вам нужны затухания, вам нужно добавить фильтры fade и overlay .
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
субтитры
В качестве альтернативы, создавать субтитры с нужным временеми исчезает и вместо него используется фильтр subtitles :
ffmpeg -i input -vf subtitles=fade.ass -c:a copy output
Пример fade.ass
был создан в Aegisub.Тег \fad
использовался для установки длительности появления / исчезновения в миллисекундах: {\fad(500,500)}Summer Video
равно 0,5 секунды для входа и выхода.
fade.ass
пример содержимого файла:
[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
Я рекомендую использовать фильтр субтитров, потому что субтитры могут быть проще в использовании и имеют больше параметров стиля и эффектов, чем drawtext.