A frame from X-Men: First Class showing English subtitles during a German audio segment.

If I had the choice, I would prefer to watch a movie without subtitles. But if you’re watching a movie that is in a foreign language, or is in your native language but with segments of foreign language audio, you don’t have much of a choice – assuming you don’t speak the foreign language(s)…

My dad would prefer to always have subtitles on, even for 100% English scripted movies. He has a hard time hearing and so the subtitles help him follow the dialog. Or perhaps your wife just doesn’t like the movie blasting in your bedroom while she’s trying to fall asleep. Whatever your reason for adding subtitles, the techniques I’m going to outline here will help you achieve just that.

Scope and Objectives

This blog post will provide you with a basic understanding of subtitles and common subtitle terminology, and show you how to take an existing subtitles track, edit it for grammar, and combine it to create burned-in (hard-coded) subtitles to an Apple TV compatible mp4/m4v file.

Now if you’ve followed my previous posts about ripping movies, you’ll know that my platform of choice for ripping (and everything else except gaming) is Mac, and that my preferred media center for viewing is Apple TV (via iTunes). So these instructions will certainly follow that setup, but you could just as easily use these utilities and instructions to create movie files with burned-in subtitles for other media player solutions that will play mp4 files.

Subtitles 101

When it comes to subtitles, there’s some terminology you should learn first:

Subtitle Tracks

Some media file formats allow for a separate, textual subtitles track (or even several of them) to be added to the container, in addition to the video track (or even several video tracks), and the audio track (or even multiple audio tracks). The MKV format is one of these. There are others as well.

Inside the container (mkv, for example), you may find one or more video tracks, one or more audio tracks (such as stereo and 5.1 surround, and foreign languages), and one or more subtitle tracks. When subtitle tracks are combined in the container in this manner, during playback the different subtitle tracks can be selected and activated (like for different languages), or turned off altogether.

For example, you may have two subtitle tracks for English – the first English subs track may just be subtitles for the foreign language sections of the movie (like for example, the German segments of X-Men: First Class), and the second English subs track might include full subtitles for the entire movie, both the English and German audio segments, from start to finish. The second English subs track in this instance would definitely be helpful if you were going to watch the whole movie with the audio muted (don’t wake the wife).

Unfortunately, the Apple TV does not support activating or deactivating different subtitle tracks. Even though the MP4 file format will support combining text-based subtitle tracks in the container, the Apple TV will ignore them. In other words, you could go through the effort to prepare and combine subtitle tracks in the container with your movie, and the resulting mp4 will play on your Apple TV, but you’ll never be able to activate and see the subtitles. Conversely, Quicktime, VLC and other popular media players do support separate subtitle tracks. If you open an mkv or mp4 with subtitle tracks, you’ll be able to activate or deactivate them at will during playback via the menu.

Burned-in Subtitles

This is where we introduce the concept of “Burned-in Subtitles”. Sometimes referred to as “hard-coded subtitles,” burned-in subtitles refer to taking a subtitle track and actually combining it visually with a video track (as if you were melting the two together), resulting in a single video track with no separate subtitles file. With burned-in subtitles, they are actually part of the video, and can not be turned off. Think of the result being what you would experience in a movie theater – the non-English speaking parts are always subtitled. So basically, since the Apple TV doesn’t support separate subtitle tracks, we’ll use burned-in subtitles to achieve our goal.

The advantages with burned-in subtitles?

  1. They’re compatible with Apple TV, iPod, iPad, and any other media player that plays mp4 files
  2. You don’t have to activate them; they’re always visible because they’re part of the video track

The disadvantages with burned-in subtitles?

  1. To get them adds several more steps to the ripping process to yield an Apple TV compatible file
  2. You can not have multiple subtitles tracks per movie
  3. If you wanted to have a version with subs for the entire movie, and another version that’s just foreign language subs, you’ll actually have to make two video files – one for each, and they’ll show up separately in your iTunes and Apple TV

Forced Subtitles

Another term I want to introduce is “Forced Subtitles”. Forced subtitles refers to the subtitle track that will be “on” by default, even when not expressly activated, and even when there are multiple subtitle tracks, on a Hollywood DVD. This is almost always the non-English speaking parts. Forced subtitles also refers to subtitles of a movie that would be displayed by default in a movie theater. This would again be exactly what you’d experience when watching a movie in a theater that has both English and non-English speaking parts. For example, Avatar was subtitled when the Na’vi are speaking but not during English dialog. This is an example of “forced subtitles.”

Required Software

At a minimum, you’re going to need the following for even the easiest subtitle jobs:

  • A subtitle track in .srt format, that you can start from, in the language you want (English for me), for the movie you want to subtitle. You can find these online at many sites. People create their own from scratch or rip them from DVD or Blu-Ray discs (not within the scope of this post), and share them online on subtitle websites. You can download these and use them as a starting point. Suggested google search:  english subtitles moviename
  • D-Subtitler – a little application which can extract subtitles from a DVD and save them to an SRT file. I use it not for extracting subtitle files, but for editing them. You may use it for both. Version 1.0 is most current as of this writing.
  • SubFix – this handy application will save you HOURS of headache when synchronizing the .srt subtitle file with the audio track of your movie. Before I found this, I loathed subbing my movies. Now it’s much easier. Version 1.11 is most current as I write this.
  • Submerge – this awesome application will take a video file (mov, avi, mp4) and combine an .srt, .sub, or .ssa subtitle file to hard-code the subs into the video (burned-in subs), resulting in a subtitled movie that is immediately playable on various devices. Version 1.9.6 is latest right now.
  • Handbrake – just to be clear, this isn’t exactly required, but I use it so I can get a higher quality file. Version 0.9.5 is latest right now.

NOTE: Please consider donating to the developers of these utilities. They all need cash to continue being supported and are great applications. They’re all available for free, and all worth donating to. They make my life so much easier that personally, I’d pay for any of them if they were paid apps.

How to Add Subtitles to Your Movies

M4 Power Tip: It helps if you have marked some timestamps down before starting this process, for example, by opening the video in Quicktime or VLC and scanning preferably for the timestamp where the first subtitle in the movie should appear. Write this down. Then scan for the timestamp where the last subtitle in the movie should appear, and write that timestamp down. Having two timestamps with as much time between them as possible will give you the most accurate measurement of the timing.

STEP 1: Prepare Your Subtitles File

You need to acquire a subtitle files in .srt format. You could do this in a number of ways:

  • Search for one online and download it (easiest)
  • Extract it from a DVD or Blu-Ray (more difficult, and outside the scope of this tutorial)
  • Create it from scratch (yikes!)

Once you have the file, you’ll want to open it using D-Subtitler and go through it (if you care) to correct spelling errors. If you don’t care about spelling and grammar, just skip to Step 2. Take caution to keep the subtitles on the same lines, as combining them will cause timing problems and visibility issues. I basically give them a quick read-through looking for grammar and spelling problems. Keep in mind I’m usually only doing the foreign-language segments, and not English, so my subtitles are much shorter and can be read through in a few minutes than the full-movie subs.

Save the file often in D-Subtitler during editing. As handy as this application is, it crashes on me frequently.

Step 2: Test the Timing of the Subtitles

If you’re darn lucky, you may just end up with a subtitles file that’s perfectly timed to your movie, needing no further timing adjustment. But most of the time, that’s not going to happen. Causes for mis-timed subtitles could be that your movie is 24fps, and the subtitles file you acquired was done for another timing, like 25fps or 29.97fps. Here’s how we test the subtitles timing: Open up Submerge and then open your movie file.

M4 Power Tip: I prefer to use a 1080p source video file, ripped from Blu-Ray, whenever I’m going to add subtitles. This is because the video is going to get compressed twice, and I want to start with the highest quality I can before I send it through two compressions. You don’t have to compress it twice, as I’ll explain shortly, but maybe you’ll understand my madness.

With the movie file opened up in Submerge, go to the menu and select your .srt subtitles file by clicking on the Choose button.

After the .srt file is selected, Submerge will automatically render the entire movie again with the subtitles overlaid. When it’s done, you’ll be able to watch the movie and check how the timing of the subtitles is.

If you wrote down some timestamps as I recommended above, you can easily jump to those timestamps and quickly check the subtitles. Start at least 30 seconds prior to the first timestamp, and watch them for as long as you need to. Jump to the last timestamp and check the timing there also. Keep meticulous notes about how off the timing seems to be. Count or use a timer to measure the offset.

If the timing looks great, then skip to Step 4. If the timing needs adjustment, continue to Step 3.

Step 3: Adjust the Timing of the Subtitles File

There are two methods for adjusting the timing. I’ll explain both.

  1. Use SubFix
  2. Try adjusting the timing using Submerge

    Select the first subtitle in the left pane, and input the correct timestamp below.

Adjusting timing with SubFix

Open your .srt file with SubFix. On the left side, select the subtitle that corresponds to the early timestamp (preferably the first subtitle in the movie) that you wrote down. With the subtitle highlighted on the left pane, input the correct timestamp when you want this subtitle to appear, at the fields near the bottom.

Then, on the right side, select the subtitle that corresponds to the late timestamp (preferably the last subtitle in the movie) that you wrote down. With the subtitle highlighted on the right side of the pane, input the correct timestamp when you want this subtitle to appear at the fields near the bottom.

Click the “Save As …” button to save this .srt out to a new file. Go back and repeat Step 2 with the new file you created. Adjust again if necessary.

Adjusting timing with Submerge

Use the "Time Offset" feature in the Settings panel in Submerge to "slide" the subtitles forward or backward. In this example, we're moving the subtitles ahead by 5 seconds.

Let’s say that you notice that the subtitles are appearing exactly 30 seconds too soon at the beginning of the movie, and are remaining exactly 30 seconds too soon throughout the entire movie, all the way to the end. If this is the case, you could easily adjust this in Submerge. In Submerge, we can keep the timing of the subtitles the same, but “slide” them backwards or forwards in the timeline to line them up with the audio track.

Open the video file and the .srt file in Submerge as explained in Step 2. Then click on the Settings button in the toolbar. You’ll notice there is a Time Offset field here. If you’re American, think of the comma as a decimal point. You can use the up/down arrow buttons to change the time offset. A negative value will advance the subtitles track toward the beginning of the movie, and a positive value will retard it toward the end of the movie.

Each time you adjust it, you’ll need to click the Render button to re-render the subtitles and re-check the subs at your timestamps. After you check them, readjust them as necessary and test again. When you’re happy with the timing, continue to Step 4.

Step 4: Exporting a Movie with Burned-in Subs

Submerge has great export presets for many popular devices.

This is where you’ll start to understand why I choose to use Handbrake as an optional, additional step in this process.

Submerge has some great exporting features that I just choose not to use. Feel free to experiment with them. It has built-in support to export a video file directly compatible with most Apple and Sony devices, the Wii and Xbox, and more.

However, since I prefer to make HD-SD dual files, and I already have presets in my Handbrake for my Apple TV and also my portable devices, I’d prefer to use them to get my final files.

So, if you’re not crazy like me, just feel free to use one of the built-in Submerge export presets, and you’re all done here. Continue to tag the file and add it to your library.

If you are crazy like me, and you want to use Handbrake to produce your final files, then you should have followed the second M4 Power Tip above, and used a 1080p file to start with, or at least the highest you could rip from a DVD or Blu-Ray – even uncompressed will work here.

I prefer to use Custom export settings for my videos, then recompress in Handbrake.

From the Submerge menu, select  File > Export… (or ⌘E).

Then, name your file, and choose “MPEG-4″ from the Export option. Now click the Setup button.

I set the Audio to “Pass Through”, and the video settings as shown in the graphic to the left here.

Save the file. Even on my Mac Pro this process takes a while.

Step 5: Create Finals in Handbrake

After the file is complete, I’ll open it in Handbrake, and re-compress it for Apple TV (HD) and for other devices (SD, universal preset).

Then, just tag the files, add them to your library, and enjoy.

If you found this post helpful, please share it. I always welcome your comments and suggestions for topics. :)