Я хочу вырезать часть MKV и кодировать ее в MP4, а также записывать субтитры.
Но я не знаю, как сделать это все за 1 проход (связанный вопрос), поэтому я попробовал это шаг за шагом.

  • Когда я сначала вырезал MKV, а затем закодировал его в MP4, он не будет жестко кодировать субтитры. Вырезанный контейнер MKV все еще сохранил субтитры. Я пробовал как внутренние, так и внешние субтитры.

    • тест 1 (неудача): субтитры напрямую из MKV
      ffmpeg -i konosuba.mkv -ss 180 -t 30 test.mkv
      ffmpeg -i test.mkv -vf subtitles=test.mkv test2.mp4

    • тест 2 (неудача): внешние субтитры
      ffmpeg -i konosuba.mkv -ss 180 -t 30 test.mkv
      ffmpeg -i test.mkv -map 0:s:0 subs.ass
      ffmpeg -i test.mkv -vf subtitles=subs.ass test2.mp4

  • Он успешно жестко кодирует субтитры, когда я сначала кодирую весь MKV в MP4, после чего я могу его вырезать. Но это занимает гораздо больше времени с большими исходными файлами :(

    • тест 3 (успех)
      ffmpeg -i konosuba.mkv -vf subtitles=konosuba.mkv test.mp4
      ffmpeg -i test.mp4 -ss 180 -t 30 test2.mp4

Кажется, в логах есть разница: тест 1 против теста 3

Я что-то здесь не так делаю? Я действительно не понимаю, почему я не могу записать субтитры, если только не кодирую оригинальный контейнер MKV, не разрезая его.

Редактировать: мне кажется, что попытка записать субтитры сама по себе не работает (журнал)
ffmpeg -i test2.mp4 -vf subtitles=subs.ass test3.mp4


Журнал: https://gist.github.com/anonymous/d2eb6f09fabba88afe86bd4607b048a4
Сборка: https://ffmpeg.zeranoe.com/builds/
ОС: Windows 10 v1607

https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo
https://ffmpeg.org/ffmpeg-filters.html#subtitles-1

1 ответ1

1

Просто объедините две команды test3:

ffmpeg -i konosuba.mkv -ss 180 -t 30 -vf subtitles=konosuba.mkv test.mp4

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