How to disable subtitles decoding in ffmpeg

46,842

Solution 1

I've finally found an answer.

There is such option as -sn which disables subtitles decoding from input stream. Also there are analogous options for audio and video decoding: -an and -vn respectively.

It also turned out that there is another way to achieve this. One may use the -map option to select which streams are to be decoded. So omitting the subtitles stream among the -map options does the job.

For example, if one has a movie file with 3 streams:

  • Stream 0: video
  • Stream 1: audio
  • Stream 2: subtitles

the converting command for FFmpeg may look as follows:

ffmpeg -i <input file> -sn -vcodec <video codec> -acodec <audio codec>  <output file>

or

ffmpeg -i <input file> -vcodec <video codec> -acodec <audio codec> -map 0:0 -map 0:1  <output file>

The former command line deselects the subtitles stream (probably all of them, if there are several) while the latter one selects only the necessary streams to decode.

Solution 2

To remove subtitle stream without re-encoding video and audio shortest command would be:

ffmpeg -i input.mkv -sn -c copy output.mkv

Solution 3

Use negative mapping to omit subtitles and keep everything else:

ffmpeg -i input.mkv -map 0 -map -0:s -c copy output.mkv
  • -map 0 selects all streams. This is recommended because the default stream selection behavior only chooses 1 stream per stream type.
  • -map -0:s is a negative mapping that deselects all subtitle streams.
  • -c copy enables stream copy mode which only re-muxes and avoids re-encoding.
Share:
46,842
v_2e
Author by

v_2e

Updated on June 17, 2020

Comments

  • v_2e
    v_2e almost 4 years

    I'm trying to convert some video file containing video, audio and subtitles streams into another format using FFMpeg. However, ffmpeg complains about the subtitles format - it cannot decode the stream. Since I don't need this subtitles stream, I'd like to know how can I disable subtitles stream decoding during conversion?