6

Я знаю, может быть, это не то место, где можно задать этот вопрос, но я не смог найти больше связанных сайтов Q/A из группы StackExchange, так что вот так:

Мне нужно добавить субтитры к фильму, у меня уже есть видео в формате AVI и файл субтитров в формате SRT, и теперь я хочу закодировать их оба в один файл. поэтому выходной файл должен иметь 3 потока: видео, аудио и субтитры. когда я пытаюсь ffmpeg -i video.avi -i subtitle.srt combined.mkv он понимает, что я хочу, и регистрирует

stream #0.0 -> #0.0
stream #0.1 -> #0.1
stream #1.0 -> #0.2

но затем он генерирует ошибку Encoder (codec id 0) not found for output stream #0.2 . Я попытался добавить опцию -newsubtitle после combined.mkv .mkv, но это казалось излишним, потому что он генерировал журнал следующим образом:

stream #0.0 -> #0.0
stream #0.1 -> #0.1
stream #1.0 -> #0.2
stream #1.0 -> #0.3

Может кто-нибудь помочь мне, что я должен сделать, чтобы ввести кодировщик субтитров в ffmpeg (я также пробовал формат mp4 для выходного потока, но та же ошибка была зарегистрирована)? и, кстати, кто-нибудь знает, как сохранить оригинальное качество видео в сгенерированном?

2 ответа2

4

Ответ в том виде, в котором он дан, будет (с потерями) перекодировать аудио и видео входного файла, и он будет выбирать только одну аудио и видео дорожку (поэтому, если у вас несколько языков, вы SOL). Правильный способ сделать это в современном ffmpeg (или avconv для пользователей Ubuntu/Debian, тот же синтаксис):

ffmpeg -i input.avi -i input.srt -map 0 -map 1 -c copy output.mkv

MKVmerge, входящий в состав mkvtoolsnix, тоже может делать это на отлично

mkvmerge -o output.mkv input.avi subtitle.srt
3

после некоторых испытаний кажется, что мне пришлось добавить -scodec copy в мою командную строку. Я имею в виду ffmpeg -i video.avi -i subtitle.srt -scodec copy combined.mkv добавил субтитры к моему видео.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .