[FFmpeg-user] flame about confusing command line options.

Moritz Barsnick barsnick at gmx.net
Tue Jan 5 15:15:22 CET 2016

On Tue, Jan 05, 2016 at 07:04:11 -0700, Roger Pack wrote:
> As a note, I just had to get this off my chest, and I'll only say this
> once.  Some of FFmpeg's command line syntax is *confusing* and *super
> confusing* for beginners.

That may be the case. :-) Feel free to suggest improvements to
documentation and wiki.

> specifies a framerate *override* for the input, however if you specify
> it for the output, its just the "normal" output frame rate...:

No, in either case, it's an override. By default, ffmpeg processes the
timestamps on the input frames, and uses them (where possible) for the
output. For some cases, when there are no timestamps, it assumes a

> Using (or being able to use)  "-f"
> typically using two "-f" s would be an override.  But in this case it
> isn't.  In fact, its using "-f" to specify two entirely different
> aspects of the output file.

That's not true. It specifies only one aspect, and your second use
overrides the first. (Yes, there could be a warning about that.) If I
use your nut example, "-f rawvideo" is ignored. (If you mean the
content, you need to use "-c:v rawvideo". Format and codec are very
well separated in ffmpeg. Some correlations apply.)

> Being able to specify global settings "in the middle of an input file"
> is also confusing..

What are you saying? That you can drop globally valid flags inbetween
input or output file flags? It would be confusing not to except them
*anywhere*, as they are *global*.

> Not that much can be done, but just so you're aware...the command line
> syntax is  confusing to people just getting started with FFmpeg.
> After using FFmpeg for like 5 years I'm only finally figuring it out
> myself LOL.

When going from mencoder to ffmpeg, it took me about five minutes to
grasp the syntax. Some of the details (more like: What is an input,
what an output, what a global option? Oh, I can specify multiple
outputs? Which flags are valid when?) came later.

I suggest you try to use cvlc for transcoding. For a simple case, I was
recently stuck for an hour! It may be *logical*, but nowhere as
intuitive as ffmpeg. :-)

> Cheers, no offense intended of course, just a gripe.

Of course.

As mentioned, documentation improvements are *always* welcome.


More information about the ffmpeg-user mailing list