Once you grok filter_complex, it becomes a lot easier to understand how people get very complex results out of ffmpeg.
Of less renown but worthy of a mention is the tee[1] muxer. It lets you take the same resulting input and pass it to different destinations. Incredibly handy, ie, for outputting DASH, HLS, and a regular ol mp4 from the same command WITHOUT having to redo the scaling or anything else that was in the filter_complex.
[0] https://ffmpeg.org/ffmpeg-filters.html#Filtergraph-syntax-1
[1] https://ffmpeg.org/ffmpeg-formats.html#Examples-12 (links to examples which is where you should start, scroll up to see docs)