24.12.0 subtitle editing

@antimidia - I’m picking up on this: Kdenlive 24.12.0 released - #8 by antimidia in a separate thread here so that we’ve got a place to talk about just things related to the new subtitle implementation for all the people using it.

Having had a chance to use it for a real project now - I do think it is a huge step in the right direction, but like anything new there’s still a few rough edges to it …

I’m not sure what you were looking at in the subtitle manager when you said: “there seem to be an option to change the subs to all the clips in a track, only it doesn’t work.” - I’m not seeing anything there that lets you edit individual subtitles… You can add new styles, but that on its own doesn’t do anything to change any existing clips (which is as I would expect it to be), it just adds a new style to the set of them that you can later use.

So I’d stick what I originally said for that one, that if you want to change the style properties of all existing clips, like you might have in older versions using SRT subtitles, then you should just edit the style they are using rather than create a new style and change them all to it. It might be nice to be able to do the latter, but I don’t see a way to do it now except to manually change each of them one at a time, or a clear and simple UI change which would enable doing that. And I think once people grok the difference(s) between SRT and ASS, this won’t be an actual thing they’d commonly want to do. (you can always do any major change you like along those lines by just editing the *.ass in your favourite text editor in the unusual cases).


I do have a list of things (some wishlist stuff, some sharp edges, and some real bugs) that I stumbled on when using it though so, in only a roughly particular order:

  • The biggest gripe I currently have for long term usability is that there appears to be no way to save ‘genuinely global’ Custom Styles - in the manner of custom effects and presets that you can reuse in later projects.

The ‘global’ space for styles is still local to the project - which appears to be needed if you want to copy styles between sequences. I get that this is a bit like the “storage” and “current script” spaces in the aegisub styles manager interface - but it would be much more useful if, like that one, you are able to select from multiple named “storages” - which possibly includes a ‘project local’ option, but mostly lets you keep sets of commonly used styles in share/kdenlive/ for all projects to use, along with your custom effects etc.


  • There is no simple way to just rename a style.

Which becomes most annoying if you do something like click the “Duplicate” button in the styles tab. That creates a duplicate with a placeholder name - but if you then edit it and change the style name in the edit dialog, then rather than changing the name it creates yet another copy with the new name and then you need to go delete the placeholder.


  • Copying styles between the ‘global’ and (per-sequence) ‘subtitles’ space is a bit clunky and glitchy.

If you drag a style to one of those spaces you first get a copy to / move to context menu. Then when you select one of those you get a popup dialog with a dropdown to “select the subtitle file to copy/move to” - but that selection actually does nothing except give you yet another chance to cancel the operation because no matter what you choose in the dropdown box it still move/copies to whichever namespace you originally dropped the style you dragged to.

I’d probably just get rid of that dialog altogether as an unnecessary extra hoop to jump through to do a simple copy/move - but maybe it has some future envisaged use case and until that is implemented it’s just buggy? I can’t really imagine what that might be right now though.


  • The ‘drag a subtitle down in the timeline to create a new layer’ needs a safety catch. Maybe needing a shift or alt drag or the like to do that?

It’s a cute feature, but it’s just way too easy to do it by accident - and the time saved for doing something that most people will rarely (or ever) need to do is hugely overshadowed by the relatively major operation needed to delete that unwanted layer again in the case of doing it by accident.


  • copying a subtitle clip between layers is buggy.

If I copy a clip in layer 1 and paste it into layer 0, then in the UI it is displayed in layer 0 - but in its properties and the subtitle manager etc. it remains in layer 1.

This seems to be combined with a bigger bug where all subtitles except those explicitly dragged down are displayed in layer 0 regardless of what layer their properties say they are in.

If I try to create a new subtitle in layer 1, or copy one to it, the UI displays it in layer 0. And if I open a project that saved subtitles in layer 1, they are all displayed in layer 0 in the timeline (but their properties still correctly say they are in layer 1).


  • It would be nice if the style editing dialog allowed more things (at least Outline and Shadow, but maybe also the margins) to have fractional rather than just integer values.

I’ve been using aegisub for subtitles since before kdenlive got its initial subtitle support - and then later to take SRT subtitles that I had positioned in kdenlive to style them for actual use - and I have several styles where a shadow of 2.5 was the goldilocks choice between too thin and too heavy.

The dimensions of subtitles are always scaled as a function of the sizes given, the declared resolution those sizes are relative to, and then the actual display size the video is being played with - so none of those values are in actual integer pixel units, they all get multiplied by a bunch of things before they need to be rounded to an integer.


  • Related a bit to the previous point, I always use external subtitles (either as separate files or merged into a mkv container as a separate thread) rather than burning them in at render time, so that people have the option to turn them on or off at playtime as they prefer (or even to select between multiple subtitle options for the same video at playtime).

It might be nice to better support that at rendering time, but for now I can just symlink or copy the relevant *.kdenlive.ass file for <rendered file>.ext to <rendered file>.ass myself easily enough.


  • It would be nice to be able to delete (or at least rename) the “Default” style.

Each layer needs “a default style”, and it took me a while to find how to set that (and that you really could do it already and I didn’t need to wishlist that ability too! :smiley: [oh … maybe that’s what @antimidia was changing and expecting to propagate automatically instead of just being the new default for newly added subtitles?]) - but as long as at least one style exists there is no reason that it needs to be called Default or that a style by that name needs to exist if it is entirely unused.

This kind of goes back to my desire for “system wide” custom styles - in most of my projects I’ll use 3 - 5 subtitle styles, and I have a set of my own styles that I use for that - so once I’ve imported them, and set the default that I want for each layer from that set, I don’t need a style named Default being just unused clutter that I can’t delete.

There might currently be some implementation reason for this, but there shouldn’t be any fundamental reason to have a magic immutable style name that must always exist.


The little voice in my head says there was something else that I’ve forgotten here - but if that’s true I’ll bump into it again soon enough :slight_smile: So for now I’ll cap this here as my initial beta-test feedback…

It’s not impossible that there’s still something I’ve missed which might make some of these things Not the Problem I Thought They Were - and there’s surely other users of subtitles with their own use cases who might have better ideas about some of these things than I do - so I’m opening this topic to toss things around here, and if we get consensus on some details of wishlist things or confirmation of bugs, I’m happy to push them off to the bug tracker as needed.

2 Likes