Work-around if movie subtitles restart after the final subtitle is displayed
November 23, 2021 4 Comments
If I’m watching movies in a language I don’t understand, I want subtitles. On my computers this is possible as long as there is a subtitles file with the name suffix .srt
and the same prefix name as the .mp4
video file in the same directory. I usually prefer to view movies on my TV with a bigger screen, so I copy the movie to a HDD that is normally connected to my TV (a FINLUX model 43-FUD-8020). However, the built-in media player in the TV does not show the subtitles in the .srt
file, even when it is in the same directory as the .mp4
file. Therefore I use the MKVToolNix utility mkvmerge
to put the movie and subtitles into a Matroska multimedia container (.mkv
file), and the TV’s media player can play these .mkv
files and does display the subtitles. In fact, so can my laptops and desktop running Linux (I have not tried on a machine running Windows 10, but I assume Windows 10 would have no trouble either).
To install in Lubuntu 20.10:
user $ sudo apt install mkvtoolnix
To install in Gentoo Linux:
root # emerge mkvtoolnix
To create a Matroska file containing the movie plus subtitles:
user $ mkvmerge -o movie_with_subtitles.mkv movie_without_subtitles.mp4 subtitles.srt
Normally the last subtitle in a movie does not occur at the very end of the movie. For example, there could be action without dialogue at the end of the movie, and/or final credits without dialogue. The media players on my laptops and desktop running Linux display the last subtitle and play the rest of the movie in the Matroska container as expected. However, the media player in my FINLUX TV displays the last subtitle and then displays the subtitles from the beginning again, at breakneck speed. Annoying to say the least. As the problem does not occur on my laptops and desktop with the same .mkv
file, I assume the problem lies with the media player in the TV.
At first I suspected that the .srt
file was the cause, but it correctly uses UTF-8 encoding and the syntax of the contents is correct. Anyway, just to be sure I ran it through an online cleaner for .srt
files and re-generated the .mkv
file, but that made no difference on the TV. Since there is no problem playing the .mkv
file on my computers, I can only assume the TV’s media player is indeed at fault. I cannot do anything about the TV’s media player, so I came up with an acceptable work-around: I added a dummy subtitle at the end of the .srt
file that is set to be displayed at the very end of the movie. For example, let’s say the movie duration is two hours, 12 minutes and twenty-two seconds but the last subtitle is at 01:56:38,201:
188 01:56:38,201 --> 01:56:40,286 The end justifies the means.
I edited the file and added a dummy subtitle at the end:
188 01:56:38,201 --> 01:56:40,286 The end justifies the means. 189 02:12:19,001 --> 02:12:21,999 THE END.
I then re-generated the .mkv
file using the mkvmerge
command and, lo and behold, after the subtitle displayed between at 01:56:38,201 and 01:56:40,286 the TV no longer displays any more subtitles until the very end of the movie when it displays ‘THE END’ and the video ends. Actually, in reality the movie must be very slightly longer than 02:12:21,999 because, after displaying ‘THE END’, the first six subtitles in the subtitle file are displayed in rapid succession before the media player stops playing, but that is no big deal.
I searched the Web quite a lot and was unable to find any mention of this particular problem, so I am posting my work-around here just in case it helps someone else experiencing the same problem.