Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestion to add an option to "Batch Convert" that can make each subtitle start a little earlier #6951

Closed
oep42 opened this issue May 21, 2023 · 5 comments
Labels

Comments

@oep42
Copy link

oep42 commented May 21, 2023

The "Adjust durations" option of Subtitle Edit's "Batch Convert", extends the duration of subtitles only at the end, and not at the beginning. So it allows you to make the duration of each subtitle longer at its end, so that the ending of each subtitle falls at a later point in time. However, it does not allow you to make the duration of each subtitle longer at its beginning, so that the beginning of each subtitle falls at an earlier point in time. In other words, the "Adjust durations" option only allows you to make all subtitles end a little later, not start a little earlier.

My suggestion is, to add an option to "Batch Convert" that can (independently) make all subtitles start a little earlier. More precisely, I suggest to rename the current "Adjust durations" option into "Adjust durations (endings)", and to add an analogous "Adjust durations (beginnings)" option that allows you to make all subtitles start a little earlier.

This distinction between 'beginnings' and 'endings', works well with "Adjust via Add seconds", because, with the suggested two versions of "Adjust durations", you can 'lengthen' the beginnings and endings of all subtitles independently. This distinction also works well with "Adjust by Percent", if you are using a percentage of the original subtitle length.

I don't know how to implement the distinction between 'beginnings' and 'endings' in "Adjust via Recalculate" and "Adjust via Fixed". Perhaps it is possible to implement these two sub-options in a way, that they only change the beginning of each subtitle, or only the ending of each subtitle. If it is not possible to make the 'beginnings' and 'endings' version of these two sub-options, work independently of each other — then this might be a way to implement "Adjust via Recalculate" and "Adjust via Fixed": If you have previously enabled such a sub-option in the 'beginnings' version of "Adjust durations", then the same sub-option may be automatically blocked in the 'endings' version of "Adjust durations" (and vice versa).

@uckthis
Copy link

uckthis commented May 22, 2023

Use Offset time codes and show earlier however many frames you want. Once done, then you can adjust duration and add the time to increase their duration (end).

Most professional subtitlers follow shot change rules and generally start time matches with a shot change and changing that will undo all the hard work.

@oep42
Copy link
Author

oep42 commented May 22, 2023

@uckthis Thanks.

I don't know what "offset times codes" are, and I don't think in frames but in seconds and milliseconds. I'm just looking for an easy way to make all the subtitles in a SRT file start a little earlier without changing the time they end.

Currently, SE only provides an easy way to make all the subtitles in a SRT file end a little later without changing the time they start. If SE can provide an easy way to make all subtitles end a little later, then why not also provide an easy way to make all subtitles start a little earlier?

Maybe I'm a bit lazy. If you can explain how to use the method you are suggesting, or provide a link to a web page where it is explained, I would be very grateful.

@uckthis
Copy link

uckthis commented May 22, 2023

Offset time codes option is right above Adjust Duration option in batch convert. Once you select this option, it'll give you the option to add or minus time from all subtitles. You can choose Earlier or Later, but in your case you shall choose Earlier. What I'll do is change the start time of all subtitles to however many seconds you input. Once you're done, you can then use the Adjust Duration option to increase the duration of the subtitles.

@oep42
Copy link
Author

oep42 commented May 22, 2023

@uckthis
Thanks a lot. That's a way to do what I was looking for. No need to add an option to "Batch Convert". (I guess I didn't look long enough at the options "Batch Convert" offers.)

@oep42 oep42 closed this as completed May 22, 2023
@oep42 oep42 reopened this May 22, 2023
@oep42
Copy link
Author

oep42 commented May 22, 2023

After a little testing, I realized that I hadn't thought enough about the "Offset time codes" option of "Batch Convert". The "Offset time codes" option cannot be used for what I want to achieve.

There is one thing that is very important in what I want to achieve, but which I had not explicitly mentioned before. If you use the "Adjust durations" option of "Batch Convert" to make all the subtitles end a little later, this "making a subtitle end a little later" will only happen if there is space for that between the current subtitle and the next one. If there is no space there, then the end of the current subtitle will not be changed. If there is a lot of space there, then the subtitle will end exactly as much later as specified in the "Adjust durations" option. If there is some space there, but not much, then the subtitle will end later, but not as much later as specified in the "Adjust durations" option. This 'intelligence' built into the "Adjust durations" option, is essential for what I want to achieve. Because of this 'intelligence', when you use the "Adjust durations" option, the change in distance between each pair of consecutive subtitles, may be different for each pair. Also, when you use the "Adjust durations" option, the beginning of each subsequent subtitle will not change.

Now, if I want all the subtitles to start a little earlier, I only want this to happen, if the end of each previous subtitle does not change, and also, as far as there is space for that between the current subtitle and the previous one. Moving all the subtitles at the same time with "Offset Time Codes" is not a way to achieve this. Moreover, moving all the subtitles together like this, will degrade the quality of the synchronization between the audio and the subtitles.

(During my tests with this, I used "Adjust by adding seconds" in the "Adjust durations" option. I had also enabled the "Apply minimum gap between subtitles" option, so that a minimum gap between subtitles is always enforced.)

Because the "Offset time codes" option cannot be used for what I want to achieve, I would like to suggest again what I suggested above: To add an option to "Batch Convert" that can (independently) make all subtitles start a little earlier, while keeping the end of each previous subtitle in the same place (and with the same built-in 'intelligence' as the current "Adjust durations" option).

Additional thought
Rather than adding another option, it may be much better to add the functionality I am looking for to the current "Adjust durations" option. This will prevent any conflict between an "Adjust durations (endings)" option and an "Adjust durations (beginnings)" option when they are used at the same time. In addition, the sub-options "Adjust via Recalculate" and "Adjust via Fixed" may remain as they are.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants