Filter 使用ffmpeg对同一图像使用两次淡入/淡出

Filter 使用ffmpeg对同一图像使用两次淡入/淡出,filter,ffmpeg,streaming,Filter,Ffmpeg,Streaming,我使用这个命令在流开始5秒后淡入徽标,然后像这样在25秒后淡出徽标 ffmpeg -re -i test.mp4 -ignore_loop 0 -i logo.gif -filter_complex "[1:v] fade=in:st=5:d=1:alpha=1,fade=out:st=30:d=1:alpha=1 [ov];[0:v][ov] overlay=30:30" -f mpegts udp://127.0.0.1:port 但我想在不同的时间段对同一个徽标重复这一点,例如(在45秒

我使用这个命令在流开始5秒后淡入徽标,然后像这样在25秒后淡出徽标

ffmpeg -re -i test.mp4 -ignore_loop 0 -i logo.gif -filter_complex "[1:v]
fade=in:st=5:d=1:alpha=1,fade=out:st=30:d=1:alpha=1 [ov];[0:v][ov]
overlay=30:30" -f mpegts udp://127.0.0.1:port
但我想在不同的时间段对同一个徽标重复这一点,例如(在45秒到60秒之间) 当我尝试重复像这样的淡入淡出语法时,它们都不起作用

ffmpeg -re -i test.mp4 -ignore_loop 0 -i logo.gif -filter_complex "[1:v]
fade=in:st=5:d=1:alpha=1,fade=out:st=30:d=1:alpha=1,fade=in:st=45:d=1:alpha=1,
fade=out:st=60:d=1:alpha=1 [ov];[0:v][ov]
overlay=30:30" -f mpegts udp://127.0.0.1:port
我怎样才能解决这个问题?
我可以用分钟而不是秒来淡入吗?

淡入alpha的作用是在开始时间之前将alpha归零,并在持续时间内将其插值到存储值。alpha淡出的作用是在开始时间+持续时间后将alpha调为零,并在持续时间内从存储的值进行插值。因此,您的第一组淡入/淡出过滤器在5s之前和30s之后将alpha归零。第二个淡入过滤器将45秒之前(包括5到30秒)的所有alpha归零,淡入不起作用,因为30秒之后的所有alpha都已归零,所以它是从alpha=0插值到alpha=0

您必须拆分流并使用多个覆盖过滤器

ffmpeg -re -i test.mp4 -ignore_loop 0 -i logo.gif -filter_complex "[1:v]split=2[wm1][wm2];
[wm1]fade=in:st=5:d=1:alpha=1,fade=out:st=30:d=1:alpha=1[ovr1];
[wm2]fade=in:st=45:d=1:alpha=1,fade=out:st=60:d=1:alpha=1[ovr2];
[0:v][ovr1]overlay=30:30[base];[base][ovr2]overlay=30:30"
-f mpegts udp://127.0.0.1:port