Custom Preset for Export doesn't save settings

I’m using Windows 10 x64 and Shotcut version 19.07.15. I’ve tried to make custom preset for exporting my videos this is the auto-generated code that pops up when I press the “+” button to add it.

movflags=+faststart
preset=fast
vminrate=20M
frame_rate_den=1000000
f=mp4
acodec=aac
channels=2
ar=96000
ab=384k
vcodec=libx264
vb=20M
vmaxrate=20M
vbufsize=12288000
g=125
bf=3
width=1920
height=1080
aspect=1.77778
progressive=1
top_field_first=2
deinterlace_method=yadif
rescale=bilinear
frame_rate_num=30000000
threads=0
pass=1

However, the video codec keeps going back to “h264_amf”, the audio rate control is set to average instead of the constant I had selected, and dual pass is not selected on the video codec area even though I had it selected when I created the preset.

Where are the custom presets stored on my PC? I was thinking a workaround in the short term would be to manually edit the file to have the settings I want.

I was able to find my presets in the folder:

C:\Users******\AppData\Local\Meltytech\Shotcut\presets\encode

Unfortunately they show the correct values (well by correct I mean they show the same values as what the preview screen says when you create the custom preset), its just not being loaded correctly in shotcut when selected.

This is because you have hardware encoder checked. That behavior is not going to change.

That is because your preset has ab=384k. The aac codec does differentiate between constant and average:
https://trac.ffmpeg.org/wiki/Encode/AAC#NativeFFmpegAACEncoder
Shotcut does not try to make the whole encode parameters UI smart about every combination of codec and parameters. That would be an immense amount of code to write, debug, and maintain. It presents generic rate control UIs, maps those to generic as well as some (popular) codec-specific options. Then, when reading a preset, it reads parameters, some of which are generic like ab here and updates the UI accordingly.

That is because hardware encoder is enabled, and dual pass is not supported with hardware encoding.

1 Like