Как отключить декодирование субтитров в ffmpeg

Я пытаюсь преобразовать несколько видеофайлов, содержащих потоки видео, аудио и субтитров в другой формат, используя FFMpeg. Однако ffmpeg жалуется на формат субтитров - он не может декодировать поток. Поскольку мне не нужен этот поток субтитров, я хотел бы знать, как отключить декодирование потоков субтитров во время преобразования?

Ответы

Ответ 1

Наконец-то я нашел ответ.

Существует такая опция, как -sn, которая отключает декодирование субтитров из входного потока. Также существуют аналоговые возможности для декодирования аудио и видео: -an и -vn соответственно.

Также выяснилось, что есть еще один способ добиться этого. Можно использовать параметр -map, чтобы выбрать, какие потоки должны быть декодированы. Таким образом, опускание потока субтитров среди параметров -map выполняет задание.

Например, если у вас есть файл фильма с тремя потоками:

  • Поток 0: видео
  • Поток 1: аудио
  • Поток 2: субтитры

команда преобразования для FFmpeg может выглядеть следующим образом:

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

или

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

В предыдущей командной строке отменяется выделение потока субтитров (возможно, все из них, если их несколько), в то время как последний выбирает только необходимые потоки для декодирования.