Я нашел эту тему:Настройки ручного тормоза для преобразования 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 ответа3

1

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

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

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

Ну, я использую файл .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 просто делает это автоматически со всеми этими файлами в одной папке.

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

0

Существует программа с открытым исходным кодом, которая называется 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

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