19

Is there a way to display multiple subtitles at the same time? It would help a lot while learning a new language. I have some *.mkv movie with two embedded subtitles, how would I turn them both on, so that one will be on the bottom and another one on the top? Or at least a fast switch with immediate text update without rewinding back would be nice.

1

8 Answers 8

12

mpv

I think that the best approach is with mpv (available via sudo apt install mpv).

I'm going to assume that all the subtitles are either built-in (as specified in the question) or in a separate, but suitably named external file (e.g. if your movie is called file1.mkv your subtitle file should be file1.srt). If not, you can specify the subtitle files explicitly by adding the options --sub-file=subtitle_file_lang_xx.src, --sub-file=subtitle_file_lang_yy.src etc. or by playing around with --sub-auto (e.g. --sub-auto=fuzzy).

Irrespective of how they were chosen (built-in or from an external file) each set of subtitles will be in its own "stream" when you play the video file. The streams are assigned consecutive, integer indices (1, 2, 3...). In general, the built-in subtitles will (logically) have the earlier indices. The stream indices, their languages (if the subtitle has a specified language), and whether the subtitle comes from an external file, are displayed in the terminal when you play your file with mpv. For example, after running mpv file1.mkv:

(+) Subs  --sid=1 --slang=eng (*) (subrip)
    Subs  --sid=2 --slang=fra (subrip)
    Subs  --sid=3 'file1.srt' (subrip) (external)

Here the first two subtitles are built-in, with languages English (eng) and French (fra) respectively, while the third one is from an external file. The indices (sid) are 1, 2, 3. The default subtitle stream is the first one (marked with a (*)) and it's also the one that's selected (with a (+)).

Knowing these indices, you can specify the "main" and secondary subtitles with the options --sid and --secondary-sid. For example, to display the English subtitles, from the previous example, as the main subtitles, and the French ones as the secondary ones, you can run (in a terminal):

mpv --sid=1 --secondary-sid=2 file1.mkv

Cycling secondary subtitles with keyboard shortcuts

By default, there aren't any keyboard shortcuts for cycling the secondary subtitles (in the way that you can cycle the "main" subtitles with j and J (Shift+j)). However, you can very easily add some.

For example, if you add the following to your ~/.config/mpv/input.conf (or more generally, your ${XDG_CONFIG_HOME}/mpv/input.conf):

Ctrl+j cycle secondary-sid
Ctrl+J cycle secondary-sid down

then Ctrl+j will cycle your secondary subtitles in the same direction that j cycles the main ones (increasing subtitle stream index), and Ctrl+Shift+j will cycle them in the opposite direction J (decreasing subtitle stream index).

VLC

If you prefer VLC, it also supports dual/secondary subtitles, as of the beta 4.0.0. Making it work seems to currently be a bit more fiddly than with MPV.

First, you need to turn them on, overall. Go to Tools > Preferences > Subtitles/OSD > Dual Subtitles (at the very bottom) > Align and change it to anything but unset. You may also need to adjust the offset (the adjacent setting).

When playing a video, you need to "Toggle secondary subtitle control" with the default shortcut Ctrl+Shift+V. (This means that the normal subtitle control shortcuts like v or Alt+v, for cycling between subtitles backwards and forwards, will now apply to the secondary subtitles, rather than the main subtitles. Pressing Ctrl+Shift+V again will toggle back to having these apply to the main subtitles.) Then, press v the right number of times to switch to the (secondary) subtitles that you want.

2
  • 4
    Thanks a lot! Finally got some "instructions" on how to actually use the VLC4 UI for handling the two subtitles. Note that it seems impossible to do without shortcuts (for now).
    – jmon12
    Oct 16, 2020 at 10:00
  • 1
    This answer is the easiest one to apply. Jul 27, 2021 at 9:06
6

Another tool to merge subtitles is DualSub (http://dualsub.sourceforge.net/). It works with SRT subtitles for input and output. It has many options for customization. In addition you can use it to translate subtitles to any language.

0
4

The easiest option that "simply works", out of the box (at least, for me) is SMPlayer. In context menu, select Subtitles -> Primary and Secondary tracks: screenshot

1
  • No Mac support, really?!
    – Ivan
    Aug 10, 2021 at 23:33
3

I spent a few days googling about this topic. The short answer is that there is no way to play two subtitle tracks in a *.mkv file simultaneously, in Ubuntu.

There are, however:

The best you can do with your .mkv files is to extract one subtitle from .mkv file and put it in a separate subtitle file, so that you can take advantage of the vlc extension.

Alternatively you can consider KMplayer for Microsoft Windows. I never tried it, because I don't have a Windows, but apparently it is what always comes out top if you google for dual subtitle players.

3

Combine subtitles

Most video players do not have the ability to play two concurrent sets of subtitles at once. But luckily it is easy enough to combine two subtitles into one file online. At http://pas-bien.net/2srt2ass/ select the Spanish subtitle file you downloaded in step one, and add it as the top subtitle, and the English subtitle file as the bottom.

for further help go to the link below.

Courtesy: http://spanish.amandajw.com/2012/11/multiple-subtitles/
1
1

The best and simplest way i found is to play second subtitle with a standalone subtitle player like PenguinsSubtitlePlayer.

Here is a demo: enter image description here Hope it helps.

1

Also, SMPlayer can play two subtitles simultaneously. You can load subtitles via load options and then choose primary and secondary subtitles. This is my favorite since there are no keyboard shortcuts to memorize.

enter image description here

Installation guide from their website:

Ubuntu

sudo add-apt-repository ppa:rvm/smplayer 
sudo apt-get update 
sudo apt-get install smplayer smplayer-themes smplayer-skins 

Flatpak

sudo flatpak install smplayer*.flatpak

Snap

sudo snap install smplayer
0

Aegisub merges and positions subtitles where you want in a single file:

sudo add-apt-repository ppa:alex-p/aegisub
sudo apt-get install aegisub

.srt's (left) will pile subs on top of each other and font settings aren't conserved so be sure to save the result as an .ass/.ssa file (right).

srt-versus-ass-subtitle rendering

I had a similar question as OP except I wanted transcribe subtitles from a video and then translate them, combining the results into one file that would automatically play in VLC. It worked: Looking for a subtitle translator-&-merger to create dual-language subtitles.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .