[FFmpeg-devel] on the hard state of ffmpeg command line options
Michael Bradshaw
mbradshaw at sorensonmedia.com
Sat Oct 27 03:54:03 CEST 2012
On Fri, Oct 26, 2012 at 4:11 PM, Roger Pack <rogerdpack2 at gmail.com> wrote:
>
> Hello all. I know you've probably all heard this before, but thought
> I'd just throw it out there all again.
> I love FFmpeg, but sometimes I'm a bit unhappy with the way it takes
> command line options.
>
> $ ffmpeg -i INPUT -f h264 yo.mp4
> $ ffmpeg -i INPUT -f mp4 yo.mp4
>
> Same location on the command line. Different meaning. Another example:
>
> $ ffmpeg -i INPUT -r 24 output
>
> I know this line makes perfect sense to long time users of FFmpeg.
> But to newbies, it is really hard to know where the r is going to
> apply. People mess it up all the time. And sometimes FFmpeg ignores
> input parameters
>
> So basically I would suggest that "ambiguous" parameters like "r" and
> "f" be deprecated in favor of something (anything?) else. One
> possibility might be something like -o:r (for "output rate") or the
> like.
Rather than deprecate parameters (which I would hate to do merely for
usability for beginners), one option would be to add "-o:%s" and
"-i:%s" parameters, where "-o:"/"-i:" indicates it's an output/input
option, and %s is the regular option name (like "r" or "f"). Requiring
4 extra keystrokes for every option seems annoying.
But this still doesn't fix any confusion if providing multiple input files...
Argument ordering is easy for a beginner to mix up, and I even mix it
up sometimes myself. But I can't think of anything that's both simpler
than the current method and doesn't cripple FFmpeg. I think one of the
big reasons beginners screw up commands and command ordering is simply
because they don't understand how video in general works.
More information about the ffmpeg-devel
mailing list