Opened 3 hours ago
#11447 new defect
ffpreset functionality does not work as advertised
Reported by: | Marth64 | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | unspecified | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
Note this section of the docs:
For the vpre, apre, and spre options, the options specified in a preset file are applied to the currently selected codec of the same type as the preset option.
Given the following:
- A video and audio source
- Video and audio encoders which take an option with the same name, such as "profile" (in this example we will use libx264 and libfdk_aac)
- Create an ffpreset file libx264-buggy.ffpreset in ~/.ffmpeg or $FFMPEG_DATADIR, with this content:
vcodec=libx264 profile=high
How to reproduce:
Now run
ffmpeg \ -y \ -ss 860 -t 360 \ -i INPUT.mkv \ -map 0:v:0 \ -bsf:0 "filter_units=remove_types=6" \ -filter:0 "bwdif=1,crop=516:469:94:11,scale=528:480:lanczos,setdar=4/3" \ -vpre:0 "libx264-buggy" \ -map 0:a:0 \ -c:1 libfdk_aac \ -ac:1 2 \ -ar:1 44100 \ -b:1 256k \ -map_metadata -1 \ OUTPUT.mkv
And observe that the profile option was picked up by the audio encoder instead, causing an abort.
ffmpeg version N-118421-g774f36756a Copyright (c) 2000-2025 the FFmpeg developers built with gcc 13 (Ubuntu 13.3.0-6ubuntu2~24.04) configuration: --enable-debug=3 --enable-ffplay --enable-gpl --enable-nonfree --enable-ffnvcodec --enable-vulkan --enable-libx264 --enable-libfdk_aac --enable-openssl --enable-version3 --enable-demuxer=dvdvideo --enable-libdvdread --enable-libdvdnav --samples=fate-suite/ libavutil 59. 56.100 / 59. 56.100 libavcodec 61. 32.100 / 61. 32.100 libavformat 61. 9.106 / 61. 9.106 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 9.100 / 10. 9.100 libswscale 8. 13.100 / 8. 13.100 libswresample 5. 4.100 / 5. 4.100 libpostproc 58. 4.100 / 58. 4.100 Input #0, matroska,webm, from 'INPUT.mkv': Metadata: ENCODER : Lavf61.9.106 Duration: 00:23:36.70, start: 0.000000, bitrate: 5189 kb/s Stream #0:0(eng): Video: mpeg2video (Main), yuv420p(tv, smpte170m, top first), 720x480 [SAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 1k tbn (default) (original) Metadata: title : en-US DURATION : 00:23:36.248000000 Side data: cpb: bitrate max/min/avg: 9800000/0/0 buffer size: 1835008 vbv_delay: N/A Stream #0:1(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (default) (original) Metadata: title : en-US DURATION : 00:23:36.695000000 [libfdk_aac @ 0x62e1b4c91200] [Eval @ 0x7fff1ac2dae0] Undefined constant or missing '(' in 'high' [libfdk_aac @ 0x62e1b4c91200] Unable to parse option value "high" [libfdk_aac @ 0x62e1b4c91200] Error setting option profile to value high. [aost#0:1/libfdk_aac @ 0x62e1b4c90ac0] Error applying encoder options: Invalid argument Error opening output file OUTPUT.mkv. Error opening output files: Invalid argument
Note:
See TracTickets
for help on using tickets.