Not only do I have multiple filters, I have multiple inputs that I want to overlay. I usually have to them in 2-3 steps and wonder how to do it all in one command as it should be the most efficient way?
1 and 2 literally identical. For readability, I've cut out the actual filters which are very long and complicated.
- image slide in left onto video
- Take output of 1, image slide in right
- Take output 2, textbox image fade in
Take output3, text fade in (finish)
1) ffmpeg -i input.mp4 -loop 1 -i image.jpg -filter_complex \ "[1]scale=640:-1[i0]; \ [i0]drawbox=color=white:t=15[i1]; \ [i1]format=,fade=[i2]; \ [i2]rotate=[i3]; \ [0][i3]overlay= \ -c:v libx264 -vb 10M output1.mp4 2) ffmpeg -i output1.mp4 -loop 1 -i image2.jpg -filter_complex \ "[1]scale=[i0]; \ [i0]drawbox=[i1]; \ [i1]format=,fade=[i2]; \ [i2]rotate=[i3]; \ [0][i3]overlay=" \ -c:v libx264 -vb 10M output2.mp4 3) ffmpeg -i output2.mp4 -i image3.jpg -filter_complex \ "[1]scale=1080:-1 [ovrl], \ [ovrl]format=fade=[i]; \ [0][i]overlay=" \ -c:v libx264 -vb 10M output4.mp4 4) ffmpeg -i output4.mp4 -filter_complex "drawtext=" -vb 10M finaloutput.mp4