Как извлечь субтитры из фильмов MP4 и MKV

27

Я пытаюсь извлечь субтитры из фильмов MP4 и MKV. Я использую mp4box (на OS X), но не могу понять, как это работает.

Есть намеки?

Открой путь
источник

Ответы:

47

Файлы MP4 и 3GP

Бесплатный кроссплатформенный MP4Box работает только с контейнерами MP4 или 3GP. Вы можете установить его с домашней страницы. Во-первых, вы хотите посмотреть на разные дорожки и посмотреть, какой идентификатор принадлежит дорожке субтитров.

MP4Box -info input.mp4

Посмотрите на идентификатор рядом с дорожкой субтитров. Затем, основываясь на идентификаторе дорожки, который <trackId>вы хотите извлечь, вызовите следующую команду:

MP4Box -raw <trackID> input.mp4

Или, чтобы экспортировать в широко используемый формат SRT:

MP4Box -srt <trackID> input.mp4

Файлы MKV

Чтобы извлечь субтитры из файлов Matroska (MKV), вам нужны бесплатные mkvtoolnixпакеты с открытым исходным кодом . Они приходят для Windows , и Linux, и на Mac вы можете установить их через Homebrew с brew install mkvtoolnix.

Затем проверьте файл:

mkvmerge -i input.mkv

Это будет список треков, например, так:

File 'input.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AAC)
Track ID 3: subtitles (S_TEXT/UTF8)

На основе идентификатора дорожки вызовите следующую команду, где <trackID>та, которую вы указали выше. <output>это просто фиктивное имя, вы можете использовать любое, что вы хотите.

mkvextract tracks input.mkv <trackID>:<output>.srt

Итак, в нашем случае это было бы:

mkvextract tracks input.mkv 3:subs.srt
slhck
источник
1
Это все работает и для Linux. Я нашел MP4Boxв gpacпакете, доступном через apt-get
aidan
1
Чтобы попасть MP4Boxв Arch Linux, вам нужно установить его gpacиз репозитория сообщества.
Альфредо Эрнандес
11

Вот решение практически для любого формата файлов, который поддерживается ffmpeg(даже для удаленных файлов):

ffmpeg -i video.mp4 subtitle.srt

ffmpegприсутствует в новых версиях Ubuntu по умолчанию, для Mac OS X и Windows вам придется установить его ( загрузив с официального веб-сайта или с помощью homebrew).

Здесь video.mp4указано имя исходного или удаленного видеофайла, а также имя subtitle.srtвыходного файла субтитров. Важно указать расширение файла для вывода, так как ffmpegопределяет, что именно вы хотите извлечь из него. То есть вы можете указать .mp3расширение файла для извлечения аудиофайла из видеофайла или просто установить другой контейнер видео для преобразования между форматами.

Tigr
источник