FFMPEG: конвертировать MP4 в тот же MP4 (в другом контейнере) и добавить субтитры

3149
FreeSoftwareServers

Основная причина этого поста в том, что у меня есть movie.mp4, для которого я скачал SRT. Когда я вручную добавляю SRT, VLC использует свои настройки для изменения шрифта / размера и т. Д. SRT. Но если я встраиваю файл субтитров, он больше не работает. Я обнаружил, что это проблема с mp4 / mov_text!

Возможно встроить субтитры в MP4, НО я обнаружил, что VLC игнорирует настройки субтитров для MP4 и не может видеть мягко кодированные субтитры MP4

Я хочу конвертировать

movie.mp4 

в

movie.mkv 

Без перекодирования (LossLess) и добавления субтитров.

1
Я довольно нелепый, я ненавижу иметь 2 файла (srt и mp4), поэтому мое единственное решение - слишком конвертировать в MKV. Дело в том, что встроенные mp4-субтитры не работают хорошо, и вам лучше просто добавить их вручную из загруженного SRT или следовать моему руководству, чтобы без потерь конвертировать в MKV FreeSoftwareServers 8 лет назад 0

3 ответа на вопрос

3
FreeSoftwareServers

This command will not work with a mp4 with embedded subtitles & extracting subtitles from an Mp4 will result in MOV_TEXT style subtitle file, which is not what you want. Basically, google for an SRT, test it out and then we are ready to go.

If you have embedded SRT you also need a seperate file with just video and audio. To strip the srt streams, leaving the just video and audio you want.

Example:

ffmpeg -i movie.mp4 -map 0:0 -vcodec copy -map 0:1 -acodec copy movienosubs.mp4 

So lets assume you now have

subtitle.srt movienosubs.mp4 

The FFMPEG command would be this: (Note this only copies the first audio stream, you may need to mess around with mapping streams if you wan't to get more complicated, but you get the idea)

ffmpeg -i movienosubs.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s copy movieFINAL.mkv 
Мой сценарий FFMPEG здесь @ [FFMPEG SCRIPT] (https://www.freesoftwareservers.com/index.php/2015/09/04/add-or-remove-audio-and-add-or-remove-subtitles-recursively- с-FFmpeg /) FreeSoftwareServers 8 лет назад 0
3
toejoe

MKV file is a container in which you may put video, audio and text(subtitle). If you have difficulty with command line ffmpeg tool (as already suggested), you may try GUI tools such as MKVToolnix. There is no re-encoding during this proces, it's practically copying only.

+1. Не потому, что это правильный ответ, а потому, что он затрагивает ключевой вопрос. А именно в заголовке спрашивается что-то невозможное. Возможно, он должен читать «конвертировать MP4 в тот же MP4 (в другом контейнере)». Hennes 8 лет назад 0
Изменив свой титул, я понимаю, что вы говорите, я в основном упаковываю MP4 в другой контейнер, но, эй, он выполняет свою работу! У меня только один файл! FreeSoftwareServers 8 лет назад 0
0
mdalacu

Вы можете использовать мою программу dmMediaConverter (которая представляет собой графический интерфейс FFmpeg, демонстрирующий некоторые ее функции), она просто делает это, вы можете копировать все потоки без транскодирования. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html

enter image description here

Вы можете добавить, что dmMediaConverter на самом деле использует FFmpeg. Это всего лишь (удобный!) Интерфейс для некоторых его функций. Hennes 8 лет назад 1
Да, вы правы, я исправил свой пост .... Кстати, это было указано на моем сайте в первой строке. ;) mdalacu 8 лет назад 0
Я знаю, я посмотрел. И логотип в правом нижнем углу тоже был довольно большой намек. Тем не менее, мы стараемся избегать гниения ссылок на сайтах SE, а это означает, что в ответ должны быть включены все необходимые данные, а не «смотреть этот сайт» или «гуглить по этому». Hennes 8 лет назад 1

Похожие вопросы