For anyone else who read this and immediately asked themselves “but can I get ffmpeg to overlay it without re-encoding the video because my machine is old and slow and that’d take ages”, the answer is, no, you can’t.

$ ffmpeg -i foo.mp4 -i yeah.png -filter_complex “overlay=100:100” -vcodec copy /tmp/watermarked.mp4

Results in the error message: “Streamcopy requested for output stream 0:0, which is fed from a complex filtergraph. Filtering and streamcopy cannot be used together.”

Makes sense, but I had to try it to stop myself wondering “but maybe…”.