Philipp Allgeuer

Subtitle Adjuster 1.2

Author: Philipp Allgeuer
Date: 28/06/15

General Overview

Seeing as you are reading this, you must agree how annoying it is when you want to relax to a nice movie, but it’s not in your language and there are no subtitles in sight! So you decide to download some, but now they’re not in sync! This is where Subtitle Adjuster comes in - with this program you can adjust the timing of said subtitles. This works by specifying one or two reference points, of which you know the correct timing, after which Subtitle Adjuster can automatically recalculate the rest, saving the result as a new subtitle file. So for example, if you wanted to bring the subtitles forward by 5s, you would pick just one reference point, subtract 5s from the original start time of that subtitle, and enter the result under the section ‘Should Start At’. Enjoy your movie!

This program is largely aimed for use with media players such as VLC, with which the user can supply an external subtitle file to play along with the movie they are watching. This program does not embed the subtitles inside the movie file!

Feature List

  • Import and preview subtitle files (*.srt,*.sub)
  • Adjust timing of subtitle files by specifying one or two reference points, the remaining subtitle times being calculated using a linear function based on the reference point(s)
  • Merge multiple subtitle files into a single output file, useful in case movie subtitles are divided into CD1 and CD2 but you have only a single movie file to sync the subtitles to
  • Split subtitle files into multiple parts that can then be individually synchronised, useful if the subtitles abruptly lose sync due to an extra or missing scene
  • Export data as single merged subtitle file, with the correct timings calculated by the program
  • In case of *.sub inputs/outputs, file by file specification of frame rates is possible to ensure frame values are interpreted and calculated correctly

Please be aware that this program can only deal with the text-based MicroDVD (*.sub) subtitle files and NOT the image-based VobSub (*.idx/*.sub) ones!

How to Use Subtitle Adjuster

General Usage and Tips

  • Press F1 in the program for some visual help! (or alternatively just refer to the screenshot below)
  • Only load into the program the subtitle file(s) for one movie at a time. The output is an attempted merge of all the subtitle files in the merge list.
  • Although the word 'merge' is predominantly used to describe the action of this program, think of it more as an 'append' action if there is more than one file involved in a single conversion. In fact, the last subtitle of a file is expected to occur at a time before the first subtitle of the next file in the merge list, and if this is not the case Subtitle Adjuster will complain of overlap and say that it has omitted from the output the subtitle elements from the second file that overlap. This can be avoided by putting in the correct reference point timings, which should not result in overlap.
  • Continuing on from the last point, as a result order is important in the merge list! You can adjust the order if it is incorrect using the Move Up and Move Down buttons.
  • Clicking on a subtitle file in the merge list (listbox at the top left) updates the preview table with the contents of the file and updates the subtitle controls (just below the Remove File and Move Down buttons) with the specific settings for that file. Each subtitle file has its own subtitle control values that individually specify the reference point(s) for each file!
  • Enabling fine tuning controls allows you to set fraction of a second timing values for the reference points
  • Enabling dual reference points means that two points are used in calculation of the linear function that the program maps all the subtitle times with in the output. Using one reference point means that all the other times are shifted by a constant time value. Using two reference points means that all the other times are scaled and then shifted by some time value. This is useful for videos where the subtitles slowly drift out of sync (for example if the framerate is slightly off).
  • The MovieFPS numeric field is only relevant if the output file type is *.sub, in which case it is used to convert the required time values into required frame values.
  • Newline characters in subtitle texts are replaced with pipe characters ('|') in the preview window for better readability (otherwise only one line is visible at a time).
  • If you want to split an input subtitle file into two parts that can be individually synchronised, first select the file in the merge list. Then, if you for example want to split the file into subtitles 1-840 and 841-1322 respectively, enter 841 into the upper subtitle ID input field and hit Ctrl+K or select Edit->Split Input. You should now notice the change in the merge list.
  • The New Movie button resets the whole window to its original state and automatically opens the Add File dialog.
  • You can use the Preview Output button to view the time adjusted output without saving it to file. Note that the table header changes to green. You can get back to viewing the input files and changing their reference points simple by clicking on them in the merge list again.
  • Save the calculated output to a subtitle file using the Save Output button. You can change the desired output file type inside the save file dialog as well, but it you pick *.sub make sure you've set the FPS correctly back on the main form.

Usage Example

Say I have the following two subtitle files that I've downloaded from the internet for my movie.
Actually, this is the same example as in help window of the program itself (see screenshot below), only described in writing as opposed to visually.

  • Add both of them to the merge list. This is shown in point 2 in the help window, and the picture directly beneath it.
  • Click on the CD1 file in the merge list (i.e. the “List of Subtitle Files to be Merged”)
  • Set subtitle ID 1 to start at 00:00:02 and 300ms say (you will need to check Enable fine tuning controls to do this)
  • Click on the CD2 file in the merge list (which timing-wise actually should start halfway through the movie) and...
  • Set subtitle ID 1 to start at 01:01:00 and 0ms say (this is approximately the true value).
  • Now, clicking on the CD1 file should recall the options set before for CD1 (i.e. subtitle ID 1 should start at 2.300s)
  • Now, clicking back on CD2 should bring the program back to where it just was.

Either way, hit Preview Output and the header of the table changes to green and displays the combined output with the new shifted times according to the two inputs that were set. Scrolling down to subtitle ID 995 in the output reveals that what used to be the first subtitle of the CD2 file is now at the correct time of 01:01:00, and comes after the last subtitle of the CD1 file as expected. If this was not the case, the subtitle would have been omitted/truncated and a warning would have been displayed.

Try the program out yourself and let me know what you think!

Change Log

Subtitle Adjuster 1.2 (28/06/15)

  • Added subtitle split feature

Subtitle Adjuster 1.1 (11/06/15)

  • Improved add file functionality (now guesses order and accepts drag-drop of files)
  • Enabled fine tuning by default
  • Fixed dot-comma locale bug

Subtitle Adjuster 1.0 (21/03/12)

  • Initial release


Check out the screenshots of this project to get a good idea of what Subtitle Adjuster is like...

Screenshot thumbnail
The main window (including the subtitle preview table)
Screenshot thumbnail
The help dialog box (press F1)

Project Admins:

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks