Infelizmente, você não pode usar expressões para a opção de cor de texto do filtro drawtext
. Isso faz com que seja impossível diminuir o texto ou fazer qualquer coisa extravagante com facilidade.
O truque é usar um filtro blend
como sugerido pelo LordNeckbeard e sobrepor o fluxo de vídeo original com o fluxo que contém as legendas. Algo assim para desaparecer em um subtítulo:
ffmpeg -y -i input.mp4 -filter_complex "[0:v] drawtext=fontfile=Fonts.ttf:text='test':x=100:y=50:fontcolor=white:fontsize=30 [subtitles]; [subtitles][0:v] blend=all_expr='A*(if(between(T,$start,$end),(T-$start)/($end-$start),1))+B*(1-(if(between(T,$start,$end),(T-$start)/($end-$start),1)))' [out]" -map '[out]' -map 0:a output.mp4
Aqui, $start
e $end
são as posições iniciais e finais de aumento gradual em segundos, respectivamente. O fluxo de áudio será retirado da entrada. Você pode copiá-lo com -c:a copy
.