I need to run ffmpeg from a CGI script, of course with arguments
This is a very dangerous thing to do. See Calling External Commands More Safely for why, and for some modules that you could use to make the risk smaller. Assuming this is on a *NIX system, at the very least, you must use the system LIST form, for example system($ffmpeg,'-i',$video,'-i',$watermark,...), and you should additionally validate the variables you're passing to the command.
Nothing works.
I suspect there is an error happening that you're not seeing. See the documentation of system on how to check for errors; the same advice from that documentation on inspecting $? applies to backticks as well.