Information about ffmpeg command line options

The FFmpeg documentation has recently been split up into multiple chapters, each describing components, including separate docs for the codecs.

Here, there's a section about the strict option:

strict integer (decoding/encoding,audio,video)

Specify how strictly to follow the standards.

Possible values:

  • very: strictly conform to a older more strict version of the spec or reference software
  • strict: strictly conform to all the things in the spec no matter what consequences
  • normal
  • unofficial: allow unofficial extensions
  • experimental: allow non standardized experimental things

Note that integer here just refers to the internal values… you should use -strict experimental, for example.

You can find a list of all these docs on the documentation page. Note that the online documentation is generated daily from the most recent FFmpeg code. Refer to your local documentation in the case of using an older version.


As well as the online documentation, you can use ffmpeg -h (or -h long or -h full for more information).

It's not the question, but you can also get some information about specific encoders with encoder= (or decoders with decoder=) like so:

ffmpeg -h encoder=libx264

You can pipe this to less, in order to make it searchable.

ffmpeg -h full | less

Use /string to search for a string. In your case, /strict.


Also not explained in the documentation are the integer values for "-strict": "-2" corresponds to "experimental", "0" for "normal", "2" for "very", etc. Makes sense once you think about it, but a little weird at first (especially since "-2" looks like FFMPEG option syntax). I just use the full name like "-strict experimental" but you will encounter both forms floating around the web.

Tags:

Ffmpeg