.MKV в.MP4 с 2 звуковыми дорожками (аудио)

Я нашел эту тему: Настройки ручного тормоза для преобразования MKV в MP4 при сохранении исходного качества

И я могу "конвертировать" .MKV в.MP4 с помощью следующего кода:

for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na .mp4"
pause

Единственная проблема в том, что есть 2 звуковых дорожки. Немецкий и английский. С кодом выше, он только копирует немецкий (1-й) язык. Но не второй аудио язык. Как я могу это сделать?

Сейчас я просто конвертирую из.MKV в.MP4 только с немецким языком. Но я хочу иметь возможность переключать язык с моего проигрывателя VLC с немецкого на английский.

Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ: я нашел эту тему здесь: http://ffmpeg.gusari.org/viewtopic.php?f=25&t=611

И я проверил с этой информацией. Я изменил свой код выше, на этот код:

for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -map 0:0 -map 0:1 -map 0:2 -c:v copy -c:a:0 copy -c:a:1 copy "%%~na.mp4"
pause

Я сделал что-то не так здесь? Как я могу добавить немецкие / английские субтитры к этому? Если бы я добавил туда карту субтитров, а у моего.MKV вообще не было субтитров, было бы это проблемой? Я просто хочу создать файл.bat, который преобразует.MKV с 2 звуковыми дорожками и 2 субтитрами. Так что я могу "remux" (или преобразовать не знаю) все мои файлы.MKV в.MP4 без потери какой-либо информации.

На данный момент у моего.MKV нет субтитров, поэтому это не важно. Но лучше подготовиться к будущему, верно?

Поэтому, пожалуйста, скажите мне, правильно ли я это сделал, и, возможно, как добавить субтитры. Это первый раз, когда я использовал FFmpeg. Просто скачал, никогда не слышал об этом. Никогда не использовал CMD для этого.

3 ответа

ffmpeg не отображает автоматически все дорожки; выбор потока по умолчанию будет отображать только один аудио, одно видео и одну дорожку субтитров на выход. Если вы хотите отобразить все потоки, используйте -map 0 , Если вы хотите иметь возможность выбрать, что отображать, сначала вам придется проанализировать входной файл ( ffmpeg -i input.mkv ) и использовать некоторые сценарии для создания окончательной команды преобразования. ffprobe может быть полезен для этого. См. FFmpeg Wiki: FFprobe Tips для примеров.

Вы можете указать -c copy для потокового копирования все потоки, независимо от их типа. Вы также можете индексировать видео и аудио потоки отдельно, поэтому ваша команда может быть сокращена до:

ffmpeg -i input.mkv -c copy -map 0 output.mp4

Ну, я использую файл.bat, как это:

for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na.mp4" 

Но я получаю сообщение об ошибке, но.MP4 по-прежнему работает нормально. Вот файл журнала: pastie.org/private/9lqyvhyotnh1o4gp6rg5g

Проблема в том, что мой старый телевизор Sony иногда зависает при просмотре.MP4. Я не могу сказать вам, является ли это просто "проигрывателем" с телевизора или самим преобразованным файлом. GUI кажется хорошим. Но если вы хотите конвертировать как 20 файлов подряд, это много кликов. Файл.bat просто делает это автоматически со всеми этими файлами в одной папке.

Возможно, кто-то знает, почему я получаю сообщение об ошибке, и если этот скрипт неверен или нет:)

Существует программа с открытым исходным кодом, которая называется VCT: https://sourceforge.net/projects/videoconvertertranscoder/?source=directory

Это графический интерфейс для ffmpeg. Вы также можете редактировать команду ffmpeg вручную. Он имеет вкладку под названием Transcode, где вы можете перепаковать MKV в MP4, но на этой вкладке нет параметров для добавления субтитров.

Если вы хотите перепаковать MKV в MP4 и добавить субтитры одновременно, вот процедура:

  1. Перейдите на вкладку Convert и выберите ваш входной файл
  2. В контейнере "Видео" выберите " Копировать", а в " Аудиокодек" - " Копировать".
  3. Нажмите добавить субтитры и выберите внешний файл SRT
  4. В текстовом поле команды ffmpeg заменить часть субтитров -c:s srt "" на -c:s mov_text ""
  5. нажмите кнопку Добавить в список пакетов, а затем нажмите кнопку Начать кодирование будет выполнено через минуту или две.

Конечно, если вы не возражаете против кодирования дважды, и вам не нравится вводить команды, вы также можете сделать это следующим образом:

  1. выберите вкладку Transcode и перетащите ваш файл на Input file.., нажмите Start, это будет сделано в течение минуты.
  2. Затем выберите только что закодированный MP4 и в контейнере Video выберите copy, а в Audio codec нажмите copy.
  3. Нажмите Добавить в список пакетов, а затем нажмите Пуск. Кодирование будет сделано в течение минуты.

снимок экрана с запрошенной кодировкой MKV в MP4

Другие вопросы по тегам