Make SRT and VTT subtitles from MKV files

By the Potok teamUpdated ~2 min read

With an MKV file in hand, you can get SRT and VTT subtitles for it: send it to Potok in Telegram and download the 2 files that come back. Keep the text encoding unchanged if you edit the SRT, then add it to the video in your player so the captions show on screen.

Get the text of your recording

Your recording goes to @potok_now_bot as a file or a voice message, and the transcript returns to you in Telegram.

Go to @potok_now_bot in Telegram

Up to 2 GB per file · speaker labels and timestamps · six export formats · about 30 languages

Key facts

  • RFC 9559 registers video/matroska with extension .mkv and audio/matroska with extension .mka (x- forms deprecated).
  • Android lists FLAC and Opus in Matroska (.mkv) among supported containers.
  • Matroska defines S_TEXT/UTF8 as a plain text subtitle codec, so an MKV can carry an S_TEXT/UTF8 track.
  • The bot reads .mkv files of up to 2 GB directly; Potok adds no conversion step.

What a MKV file is

PropertyValue
KindOpen container (Matroska)
Media typesvideo/matroska, audio/matroska
What it holdsMatroska, an audiovisual container that can hold many audio, video and subtitle streams

How to make subtitles from MKV files

  1. Hand the file to the bot. Find @potok_now_bot in Telegram and add your .mkv file as a message. The bot takes up to 2 GB; very long recordings are better uploaded with the mini app's Upload button.
  2. One property of the format matters. Matroska defines S_TEXT/UTF8 as a plain text subtitle codec, so an MKV can carry an S_TEXT/UTF8 track.
  3. Export SRT or VTT. Choose SRT or VTT among the export buttons and load the file next to the video in your editor or player; check the first and the last caption against the sound.
  4. Worth knowing. Android lists FLAC and Opus in Matroska (.mkv) among supported containers.

What the subtitle file looks like

Example of SRT captions

[00:00:01,000 --> 00:00:03,400] Caption 1: Okay chat, we are entering the last dungeon.

[00:00:03,600 --> 00:00:06,100] Caption 2: Watch out, there is a trap behind that door.

[00:00:06,300 --> 00:00:09,000] Caption 3: Nice, the boss is down on the first try.

[00:00:09,200 --> 00:00:11,800] Caption 4: The plumber says the leak comes from the old pipe under the sink.

Captions written by us to show the layout. They are not output from a real MKV file.

What you get with Potok
FeatureDetails
LanguagesAround 30 languages have good published results; a few more come with warnings
DictationFor dictating into other programs there is a separate Potok desktop app that recognises Russian speech
AcceptedVoice messages, audio and video
Upload limit2 GB per file
Speakers and timeYou can turn on speaker labels and timestamps

Where MKV files go wrong

Where things go wrong
SlipResultRemedy
Forgetting to add the SRT as an S_TEXT/UTF8 trackThe MKV plays without captions even though the SRT existsMux the SRT into the MKV or load it beside the video
Sending an MKV with several audio languagesCaptions follow whichever track was picked and may be wrongChoose the speech track before sending the MKV
Saving the SRT in a non-UTF-8 encodingAccented letters turn into broken symbols in the MKV playerSave the subtitle file as UTF-8 text
Naming the language wrongly when adding the SRT to the MKVPlayers list the captions under the wrong languageSet the language label to match the spoken language when muxing

Keep going

Need a converter or a calculator? Open the tools. Unsure about a term? Check the glossary. Apps are on the download page.

Common questions

Is MKV supported?

It is: the bot takes .mkv files of up to 2 GB and decodes them itself, so you do not need to convert anything first.

What is the difference between SRT and VTT?

SRT is a plain list of numbered captions with start and end times. VTT starts with a WEBVTT header and is the format web video players read.

Which apps and devices create MKV files?

The OBS Studio recording guide recommends MKV as a recording format (OBS Studio recording).

Sources

The dates show when each source was opened. Pages are edited over time; read the original before you rely on a detail.

  1. RFC 9559: Matroska media container format, IETF · checked
  2. Supported media formats, Android Developers · checked
  3. Matroska codec specifications, Matroska · checked

See the result on your recording

Open @potok_now_bot in Telegram, attach the recording and wait: the transcript arrives as a message in the same chat.

Open @potok_now_bot in Telegram