All Tools View Categories About Contact Privacy

Subtitle Track Remover

Generate an ffmpeg command to strip subtitle tracks.

Runs entirely in your browser — no data is uploaded or stored.

Use -sn to drop all subtitle streams while keeping video/audio intact.

About this tool & how to use it
  • Strips all subtitle streams at once: The -sn flag drops every subtitle track in the file rather than making you map them out individually, which is exactly what you want when a container carries a dozen unwanted languages.
  • Bit-for-bit video and audio: Because -c copy remuxes instead of re-encoding, the picture and sound in the output are identical to the source and nothing is degraded by the cleanup.
  • Straightforward two-field form: Only Video file and Output file are needed, so there are no options to misconfigure and no chance of accidentally keeping one track you meant to remove.
  • Safe default names: Leaving the fields empty produces video.mkv and nosubs.mkv, which both demonstrates the command shape and keeps the input and output distinct.
  • Quoted arguments: Paths are wrapped in quotes so files stored under names with spaces or punctuation run correctly without manual escaping.
  • Copy or download as .txt: Take the command to the clipboard for a one-off cleanup, or save it as a text file to build into a script that sweeps a whole folder.
  • Purely local: This page builds text only; your media is never read or transmitted, and you run ffmpeg yourself.
  1. Enter the path of the file you want cleaned into the Video file box, for example movie.mkv.
  2. Type a new name into the Output file box, keeping it different from the input so ffmpeg does not try to read and write the same file.
  3. Consider extracting anything you want to keep first, since -sn discards every subtitle stream without exception.
  4. Press Run to generate the command and read it back to confirm both paths are correct.
  5. Copy the command or download it as a .txt file, then run it in a terminal with ffmpeg installed.
  6. Check the result with ffprobe or by opening the subtitle menu in a player, where there should now be no tracks listed.

Example 1 - cleaning a downloaded MKV. The file arrived with eleven subtitle streams, several of which auto-enable on a television. One remux removes all of them and leaves the video and audio untouched.

Video file:  movie.mkv
Output file: movie-clean.mkv

Generated command:
ffmpeg -i "movie.mkv" -c copy -sn "movie-clean.mkv"

Example 2 - preparing an MP4 for a strict delivery spec. The spec allows video and audio only, so the leftover track has to go before the asset is accepted.

Before (ffprobe):
Stream #0:0 Video: h264
Stream #0:1 Audio: aac
Stream #0:2 Subtitle: mov_text

After running the command:
Stream #0:0 Video: h264
Stream #0:1 Audio: aac

Nothing about the picture changed, but the file now matches the spec, which is the difference between an accepted delivery and a bounced one.

About Subtitle Track Remover

The Subtitle Track Remover produces the ffmpeg command that strips every subtitle stream out of a container while keeping the video and audio bit-for-bit identical. Enter a Video file and an Output file and the tool returns a one-line command built around -c copy -sn, ready to copy or download as .txt.

Unwanted subtitle tracks cause more trouble than people expect. Downloaded files often carry forced or machine-translated tracks that auto-enable on smart TVs, some hardware players choke on an unusual subtitle codec inside an MP4, and delivery specs frequently forbid extra streams outright, so a stray track means a rejected asset.

The mechanics are deliberately minimal. -c copy tells ffmpeg to remux rather than re-encode, so the exact video and audio packets from the source are written into the new container, while -sn disables subtitle stream selection so none are carried over. Nothing is decoded, which makes the operation I/O bound and far faster than any transcode. Note that this removes soft tracks only - captions already burned into the picture are part of the frames and cannot be stripped this way.

The generator never opens your file: it composes a string locally in your browser and nothing is uploaded.

Features

  • Strips all subtitle streams at once: The -sn flag drops every subtitle track in the file rather than making you map them out individually, which is exactly what you want when a container carries a dozen unwanted languages.
  • Bit-for-bit video and audio: Because -c copy remuxes instead of re-encoding, the picture and sound in the output are identical to the source and nothing is degraded by the cleanup.
  • Straightforward two-field form: Only Video file and Output file are needed, so there are no options to misconfigure and no chance of accidentally keeping one track you meant to remove.
  • Safe default names: Leaving the fields empty produces video.mkv and nosubs.mkv, which both demonstrates the command shape and keeps the input and output distinct.
  • Quoted arguments: Paths are wrapped in quotes so files stored under names with spaces or punctuation run correctly without manual escaping.
  • Copy or download as .txt: Take the command to the clipboard for a one-off cleanup, or save it as a text file to build into a script that sweeps a whole folder.
  • Purely local: This page builds text only; your media is never read or transmitted, and you run ffmpeg yourself.

How to Use

  1. Enter the path of the file you want cleaned into the Video file box, for example movie.mkv.
  2. Type a new name into the Output file box, keeping it different from the input so ffmpeg does not try to read and write the same file.
  3. Consider extracting anything you want to keep first, since -sn discards every subtitle stream without exception.
  4. Press Run to generate the command and read it back to confirm both paths are correct.
  5. Copy the command or download it as a .txt file, then run it in a terminal with ffmpeg installed.
  6. Check the result with ffprobe or by opening the subtitle menu in a player, where there should now be no tracks listed.

Examples

Example 1 - cleaning a downloaded MKV. The file arrived with eleven subtitle streams, several of which auto-enable on a television. One remux removes all of them and leaves the video and audio untouched.

Video file:  movie.mkv
Output file: movie-clean.mkv

Generated command:
ffmpeg -i "movie.mkv" -c copy -sn "movie-clean.mkv"

Example 2 - preparing an MP4 for a strict delivery spec. The spec allows video and audio only, so the leftover track has to go before the asset is accepted.

Before (ffprobe):
Stream #0:0 Video: h264
Stream #0:1 Audio: aac
Stream #0:2 Subtitle: mov_text

After running the command:
Stream #0:0 Video: h264
Stream #0:1 Audio: aac

Nothing about the picture changed, but the file now matches the spec, which is the difference between an accepted delivery and a bounced one.

Benefits

  • No more captions you did not ask for: Removing forced or default-enabled tracks stops text appearing over the picture on TVs and set-top boxes that ignore your player preferences.
  • Passes strict delivery checks: Many platforms and broadcasters reject files containing unexpected streams, and a clean remux removes that failure mode before you upload.
  • Fixes stubborn playback problems: When an unusual subtitle codec causes a device to stutter or refuse a file, stripping the stream is often the quickest route to a file that just plays.
  • Zero quality risk: Since the video and audio are copied rather than re-encoded, cleanup never costs you image quality or introduces new compression artefacts.
  • Done in moments: A remux runs at disk speed, so even a feature-length file is cleaned in far less time than any transcode would take.
  • Your files stay private: The command is generated in your browser and executed on your own machine, so nothing about the media is shared.

Frequently Asked Questions

What does -sn do?
It tells ffmpeg to skip (not copy) any subtitle streams, removing them from the output.
Is video re-encoded?
No, video and audio are copied, so it is fast and lossless.
Do you run it?
No, we generate the command for you to run.
Is my file uploaded?
No, generation is local.