Я проверил документацию FFmpeg и на многих форумах и выяснили правильную командную строку, чтобы извлечь субтитры из .MP4 видео должно выглядеть так:Можно ли извлекать субтитры SubRip (SRT) из видео MP4 с помощью ffmpeg?
ffmpeg -i video.mp4 -vn -an -codec:s:0 srt out.srt
Однако, я получаю следующее сообщение об ошибке, что придает мне на вопрос, является ли это осуществимо на всех:
ошибки при открытии кодера для выходного потока # 0: 0 - возможно, неправильные параметры, такие как bit_rate, скорость, ширина или высота
Используя ffmpeg -codecs
, я могу подтвердить, что ffmpeg должен иметь возможность кодировать субтипы субтитров.
Использование ffmpeg -i video.mp4
, я могу видеть, что есть два субтитров дорожки, встроенные в видео:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
...
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1/0x31637661), yuv420p, 720x572 [SAR 64:45 DAR 256:143], 1341 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc
Stream #0:1(eng): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream #0:2(fra): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream #0:3(eng): Subtitle: dvd_subtitle (mp4s/0x7334706D)
Stream #0:4(und): Subtitle: mov_text (text/0x74786574)
EDIT
Я проверил с упрощенной командной строки, показанной в комментариях, но я по-прежнему получают ту же ошибку. Ниже приведена команда a link to the detailed verbose output. Я также попытался полностью отключить метаданные и главы в результирующем результате, но это все еще вызывает ту же ошибку.
Простой 'ffmpeg -i in.mp4 out.srt' работает для меня правильно. (ffmpeg 2.0.1) – pogorskiy
Попробуйте 'ffmpeg ... -loglevel debug ...', чтобы узнать больше об ошибке – pogorskiy
У меня есть оба предложения, но я не могу определить очевидную ошибку. Возможно, это вызвано тем, что ffmpeg пытается вывести маркеры разделов в полученный файл srt? У меня есть подробный вывод отладки. –