Bug 507521 - Render Preset for AV1 export using svt-av1 encoder.
Summary: Render Preset for AV1 export using svt-av1 encoder.
Status: RESOLVED FIXED
Alias: None
Product: kdenlive
Classification: Applications
Component: Rendering & Export (other bugs)
Version First Reported In: 25.04.3
Platform: Other All
: NOR normal
Target Milestone: ---
Assignee: Jean-Baptiste Mardelle
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-07-26 19:15 UTC by Richard Ash
Modified: 2025-08-24 20:28 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Proposed SVT-AV1 render preset (483 bytes, application/xml)
2025-07-26 19:19 UTC, Richard Ash
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Ash 2025-07-26 19:15:39 UTC
SUMMARY
Kdenlive does not provide a preset to render using SVT-AV1, when support is enabled in ffmpeg.

STEPS TO REPRODUCE
1. Create project, go to render dialogue
2. Look under "Ultra-High Definition (4K)" for an AV1 preset

OBSERVED RESULT
The only AV1 presets use hardware accelerated encoding, or the very slow AOM-AV1 codec library.

EXPECTED RESULT
SVT-AV1 render preset is available to choose.

SOFTWARE/OS VERSIONS
Linux, reproduces natively in Gentoo or by running the 25.04.03 Flatpack.

Linux/KDE Plasma: 
KDE Plasma Version: kde-plasma/libplasma-6.3.5
KDE Frameworks Version: kde-frameworks/frameworkintegration-6.13.0/
Qt Version: dev-qt/qtbase-6.9.1-r2
media-video/ffmpeg-7.1.1-r2
media-libs/mlt-7.32.0
media-libs/libaom-3.10.0
media-libs/svt-av1-3.0.2

ADDITIONAL INFORMATION

This issue will make Bug492708 (issue selecting CRF) much more obvious.
See also Bug507333 (issue with interlaced rendering to AV1).
Comment 1 Richard Ash 2025-07-26 19:19:47 UTC
Created attachment 183544 [details]
Proposed SVT-AV1 render preset

Render preset for SVT-AV1. The preset works fine if added as-is, but gets broken if the "Edit" button the Kdenlive GUI is clicked, because some of the changes needed to get CRF adjustment working are reverted.

The changes I had to make by editing the XML were:
- in the "args" attribute, replace `qscale=%quality` with `crf=%quality`
- add to the profile the XML attribute `qualities="1,63"` 

Both of these are lost if the "Edit" button the Kdenlive GUI is clicked (the attribute `qualities="1,63"` is lost even if the attribute `manual="1"` is set).
Comment 2 Jean-Baptiste Mardelle 2025-07-26 21:24:05 UTC
Git commit 1ae508779d53ced51629851c197712de7b870986 by Jean-Baptiste Mardelle.
Committed on 26/07/2025 at 21:23.
Pushed by mardelle into branch 'release/25.08'.

Add quality and speed control to svtav1 preset

M  +2    -1    data/profiles.xml

https://invent.kde.org/multimedia/kdenlive/-/commit/1ae508779d53ced51629851c197712de7b870986
Comment 3 Jean-Baptiste Mardelle 2025-07-26 21:33:40 UTC
Git commit f4028c1983f6cb660e1bb399ea28fbcaeb320f28 by Jean-Baptiste Mardelle.
Committed on 26/07/2025 at 21:33.
Pushed by mardelle into branch 'master'.

Add quality and speed control to svtav1 preset

M  +2    -1    data/profiles.xml

https://invent.kde.org/multimedia/kdenlive/-/commit/f4028c1983f6cb660e1bb399ea28fbcaeb320f28
Comment 4 Richard Ash 2025-07-26 22:32:55 UTC
Thank you for moving this forward!
I had been looking into the issues with editing the preset in the GUI, and got as far as finding this would need a C++ patch to fix in kdenlive-25.04.2 sources. On a quick look the bug still seems to be there on master branch.

Roughly the issue is on https://invent.kde.org/multimedia/kdenlive/-/blob/master/src/dialogs/renderpresetdialog.cpp?ref_type=heads#L442, when a new preset gets created from the dialogue, the scaling of the Quality slider doesn't get copied across to the new object. This matters a lot for SVT-AV1 because the useful CRF values are mostly 25 - 50, a lot of which doesn't fit in the default 1-31 Quality scale (unlike many other codecs). Hopefully I can get a patch sorted for this early next week, although it touches a few different places in the dialogue and the model class.
Comment 5 Richard Ash 2025-08-24 20:28:56 UTC
Tested new release 25.08.0 (AppImage) and this is there and works. Bug492708 is also fixed in that release, so I think this can be closed now.
(Minor nit that the preset name says "(libre-dav1d)", which is inaccurate because dav1d is decode-only! But that is a different (and much less serious) bug to address.