Subtitles

There are two ways to categorize subtitles - internal or external. Internal subtitles are part of the video file, external ones are stored as a separate file, typically in the same folder as the video file.

Internal Subtitles

There are two basic types of internal subtitles - textual and bitmap. As the names indicate, one is stored as text and the other as bitmap image overlay. Bitmap subtitles are used e.g. on DVDs, or PGS Subtitles that are often used in MKV files. The bitmap subtitles are just image overlays - the letters are rendered into an image, which can be easily used to force a specific font, color, etc. into the subtitles and it had the great advantage back in the day that the player didn’t have to have fonts that were capable of rendering non-latin characters (Japanese, Chinese, …). It has, however, the inherent disadvantage that you can’t increase the subtitles size, so they may appear blurry when the video is resized. Text-based subtitles, on the other hand contain text - which the player needs to render on its own. It has the advantage of allowing for customization of the font size in the player, but requires the player to correctly handle text encoding and select a font that contains all the characters used in that track.

As not all containers support all types of subtitles (e.g. MP4 container doesn’t support the bitmap types), Permute checks for compatibility of the subtitles and may choose to omit them if it believes they are not supported in the target container (as converting bitmap subtitles into textual involves a lot of OCR and is really difficult to handle correctly).

You can burn a subtitle track from the input file into the target format, which allows you to transfer incompatible subtitles. This merges the video and subtitle tracks into a single video track, so the subtitles cannot be disabled during playback. See the option to burn subtitles in Settings > Presets.

External Subtitles

Permute can automatically detect subtitles stored in external .srt (and other) files that are located in the same folder as the input file. This setting is enabled by default for non-App Store versions of Permute and can be managed in Settings > Subtitles & Audio.

For this feature to work correctly, it is important that the files are in the same folder and the names match - for example, if the video is called Video.mp4, the subtitle file needs to be called Video.srt. See Subtitle file naming section below for details.

By default, Permute will try to analyze the subtitles file and detect the language used in those subtitles. This setting can be changed in Settings > Subtitles & Audio. If this option is off, or the language detection fails, Permute can fallback onto a default language that can be also set in Settings > Subtitles & Audio. Note that if you use the naming scheme for subtitles, then the language in file name takes precedence. See below for information about the naming scheme as well as a recapitulation of the language detection.

You can always review and modify the language in the subtitles dialog on the video item in the queue using the subtitles button on the file.

Subtitle File Naming

Permute can detect multiple subtitles in different languages if the naming follows this convention - name_of_video [xxx].srt - where name_of_video is the name of the video file (e.g. Video if the video file is Video.mp4) followed by a space and language code (xxx) in brackets. The language code should be in ISO-639-2 format, but ISO-639-1 is also accepted. For example:

  • Video.mp4 - the video file
  • Video [ger].srt - detected as German subtitles
  • Video [eng].srt - detected as English subtitles

To summarize - Permute will look for subtitles that have the same base name as the video file and will detect the language by:

  • looking at the file name. If the file name includes the subtitles language as shown above, that language will be used.
  • Permute will analyze the file to detect the language, unless disabled in Settings
  • default language will be used from Settings > Subtitles & Audio. If it is set as Undefined, then a generic subtitles track will be added.