SubtitleEdit / subtitleedit

the subtitle editor :)
http://www.nikse.dk/SubtitleEdit/Help
GNU General Public License v3.0
8.31k stars 890 forks source link

Add support for dual subtitles synchronisation #7913

Closed chrusli closed 5 months ago

chrusli commented 7 months ago

I use Subtitle Edit for many things. It's almost scary how much ground it covers. So, props to everyone contributing to it πŸ™Œ. There is one thing I need it to do, which it doesn't seem present right now. I honestly spent quite some time finding it, but couldn't. So don't be mad when it exists anyway πŸ˜….

Use case

I create DCP (cinema movie file format) files for cinemas, and I live in Switzerland. We have multiple official languages, which means that movies in the theater usually come with dual subtitles (e.g., German and French). Dual meaning, that both subtitles are present at the same time (one language in one line on top, and one in another line on the bottom)

Even though Subtitle Edit allows me to add multiple subtitles, it doesn't seem to have a built-in tool for this particular use case.

How I do it today

  1. Join two different SRT subtitles for the same movie, one for German and one for French.
  2. Sort them by time ascending
  3. Remove all line breaks because I don't want more than 2 lines (top German, bottom French)
  4. Check (double) line by line and fix out of synchronization issues. They are as following. 4.1. Start- and End time are out of sync: They need to be exactly the same, else the viewing experience for dual subtitles is bad. For fixing the line and not mess with the subsequent line, I switch between the source via F2 and copy the β€œcorrect” Start- and End time to the others' language line. Here is a video doing this task https://github.com/SubtitleEdit/subtitleedit/assets/13926896/7ce47e7c-78c1-47f2-ae00-469be9245d8f. 4.2. Language lines overlap with previous/next lines. 4.3. A language has an additional line, which the others haven't. In this case, I need to copy the line and add it to the main line and delete it afterward. The line number for both languages must be the same. 4.4. If one language is not at the usual position (e.g., German always top), the move a line up or down.

How It could be

  1. Load the two languages SRT subtitles and display them side by side
  2. Let the tool highlight out of sync text blocks, where the Start- and End time are not the same
  3. Have a function that fixes the out of sync lines. If I needed to formulate a rule, it would be this: 3.1. Take the Start time of both languages line that is earlier (but obviously is after the previous lines' End time) and apply it to the other language's line 3.2. Take the End time of both language's line that is later (but obviously is before the next lines' End time) and apply it to the other language's line
  4. Have a function that lets you merge a line with another (e.g., merge an additional line with a previous line and append it)
  5. Fix other overlap issues if they occur
  6. Check if the language of a line is always in the same order (e.g., German first, French second).

Would anyone be willing to help?

mrdm92 commented 5 months ago

use this website: https://subtitletools.com/merge-subtitles-online

or google "merge two subtitle" for another options.