Почему встроенные субтитры теряются при ремонте видео с помощью FFmpeg?

Вопрос или проблема

Когда я запускаю следующую команду на видеофайле, я теряю встроенные субтитры.

ffmpeg.exe -i INPUT.mp4 -c copy OUTPUT.mp4

Мне нужно что-то добавить, чтобы не потерять субтитры, если они присутствуют?

Я обычно запускаю эту команду на своих файлах перед воспроизведением на медиаплеере Roku.

Если вы добавите -map 0 к команде, это, похоже, сохранит все дорожки, включая субтитры:

ffmpeg -i input.mkv -map 0 -c copy output.mkv

Ответ или решение

Когда вы выполняете команду FFmpeg для изменения формата или копирования видео, основная цель зачастую заключается в том, чтобы сохранить как можно больше исходных характеристик файлов, включая видео, аудио и субтитры. В ситуации, когда вы используете команду:

ffmpeg.exe -i INPUT.mp4 -c copy OUTPUT.mp4

возможная потеря встроенных субтитров объясняется тем, что FFmpeg по умолчанию не выбирает все дорожки (аудио, видео и субтитры) из входного файла, если вы явно не укажете это.

Что происходит с субтитрами?

При выполнении вашей команды FFmpeg копирует только первую дорожку каждого типа. Это значит, что если в вашем видеофайле присутствуют встроенные субтитры, но они не являются первой дорожкой (например, если первая дорожка — это видео, а вторая — аудио), они не будут скопированы в выходной файл. В итоге, вы получите файл без встроенных субтитров.

Как избежать этой проблемы?

Чтобы гарантировать, что все дорожки, включая субтитры, будут сохранены в новом файле, необходимо использовать опцию -map. Команда:

ffmpeg -i input.mkv -map 0 -c copy output.mkv

включает все дорожки (0 – это индекс входного файла и -map 0 указывает на выбор всех дорожек) и завершает задачу без потери данных.

Преимущества использования -map

  1. Сохранение всех дорожек: Опция -map 0 позволяет вам сохранить как видео, так и аудио, а также все субтитры, что делает этот подход универсальным решением.
  2. Удобство: Для пользователей, таких как вы, которые часто производят преобразование медиафайлов для воспроизведения на устройствах, таких как Roku Media Player, это облегчает настройку и исключает необходимость в дальнейших преобразованиях.
  3. Эффективная работа с форматом: FFmpeg отлично справляется с форматами, такими как MKV, которые могут содержать несколько потоков однотипных данных.

Заключение

Потеря встроенных субтитров при использовании FFmpeg может быть легко предотвращена путем добавления параметра -map 0 к вашей команде. Это гарантирует, что все дорожки из исходного файла будут скопированы в выходной. Учтите, что без указания этого параметра FFmpeg будет передавать только первую дорожку, что может привести к неожиданным результатам. Теперь вы знаете, как сохранить субтитры при преобразовании видеофайлов с помощью FFmpeg, и можете использовать это знание для оптимизации вашего рабочего процесса.

Оцените материал
Добавить комментарий

Капча загружается...