Я пытаюсь преобразовать какой-то видеофайл, содержащий потоки видео, аудио и субтитры, в другой формат с помощью FFMpeg. Однако ffmpeg жалуется на формат субтитров - он не может декодировать поток. Поскольку мне не нужен этот поток субтитров, я хотел бы знать, как я могу отключить декодирование потока субтитров во время преобразования?
Как отключить декодирование субтитров в ffmpeg
Ответы (3)
Я наконец нашел ответ.
Есть такая опция, как -sn
, которая отключает декодирование субтитров из входного потока. Также есть аналогичные варианты декодирования аудио и видео: -an
и -vn
соответственно.
Также оказалось, что есть другой способ добиться этого. Можно использовать опцию -map
, чтобы выбрать, какие потоки нужно декодировать. Таким образом, исключение потока субтитров среди -map
опций делает свою работу.
Например, если у вас есть файл фильма с 3 потоками:
- Поток 0: видео
- Поток 1: аудио
- Поток 2: субтитры
команда преобразования для FFmpeg может выглядеть следующим образом:
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>
Первая командная строка отменяет выбор потока субтитров (возможно, всех, если их несколько), а вторая выбирает только те потоки, которые необходимы для декодирования.
ffmpeg -i video.mkv -vcodec copy -acodec copy -sn video-no-subs.mkv
- person cherouvim; 16.04.2015
Чтобы удалить поток субтитров без перекодирования видео и аудио, самой короткой командой будет:
ffmpeg -i input.mkv -sn -c copy output.mkv
Используйте отрицательное сопоставление, чтобы опустить субтитры и сохранить все остальное:
ffmpeg -i input.mkv -map 0 -map -0:s -c copy output.mkv
-map 0
выбирает все потоки. Это рекомендуется, поскольку по умолчанию выбор потока выбирается только 1 поток для каждого типа потока.-map -0:s
- отрицательное отображение, отменяющее выбор всех потоков субтитров.-c copy
включает режим потокового копирования, который только повторно мультиплексирует и избегает повторного кодирования.
-map_metadata -1
- person Ray Foss   schedule 21.08.2017