Another option is to use the same approach as find -exec.
prog [options] --ffmpeg [ffmpeg args] [sentinel] [options] [args]
I'm not a fan of this approach because of its down sides.
- Confusing. Options to your program and options for ffmpeg aren't distinguishable at a glance.
- Requires coming up with a sentinel value.[1]
- No support for this in Getopt::Long (as far as I know).
Footnotes:
- ";" and "+" serve as sentinels for POSIX find -exec. ";" must be escaped since it already has meaning to the shell, though.