[FFmpeg-devel] [PATCH 0/1] Fix option parsing in ffpreset files

Andreas Hartmann hartan at 7x.de
Sat Jul 19 12:35:33 EEST 2025


I recently hit an issue when trying to use 'ffpreset' files and I think
it's a bug. I'm working on a set of options for transcoding videos for
personal use. The CLI has become pretty long by now so I wanted to
factor these options out into a ffpreset files along with comments that
explain what the options do and why I chose those particular values over
others.

The key-part of my preset file looked like this:

```text
vcodec=libsvtav1
pix_fmt=+yuv420p10le
```

When invoking it like this:

```bash
ffmpeg -i SAMPLE.mkv -fpre ./my.ffpreset OUTPUT.mkv
```

I consistently got the following error:

```
./default.ffpreset: Invalid option or argument: 'pix_fmt=+yuv420p10le
', parsed as 'pix_fmt' = '+yuv420p10le'
```

Which puzzled me quite a bit. I agree that `pix_fmt` is not a
codec-specific option but I was still expecting it to work since it has
an influence on the video after all. While searching for answers I found
[#1530][1] which confirmed my suspicion. In the end I decided to take a
look at the code and I discovered that `ffpreset` files, at the moment,
only parse `AVOption`s (at least to my understanding), next to bare
video/audio/subtitle/data codecs. So I've gone ahead and changed this.

I had a look at the man page and that doesn't state anything about
*what* kind of option is allowed to go into a `ffpreset` file. If there
is any documentation you'd like me to update, or if you'd like to see
tests for this, please let me know. I ran `make fate` locally and it
passed at least.


Kind regards
hartan


[1]: https://trac.ffmpeg.org/ticket/1530

Andreas Hartmann (1):
  ffmpeg_opt: Parse regular options in `ffpreset` files

 fftools/ffmpeg_opt.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)



More information about the ffmpeg-devel mailing list