.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 и добавить субтитры одновременно, вот процедура:
- Перейдите на вкладку Convert и выберите ваш входной файл
- В контейнере "Видео" выберите " Копировать", а в " Аудиокодек" - " Копировать".
- Нажмите добавить субтитры и выберите внешний файл SRT
- В текстовом поле команды ffmpeg заменить часть субтитров -c:s srt "" на -c:s mov_text ""
- нажмите кнопку Добавить в список пакетов, а затем нажмите кнопку Начать кодирование будет выполнено через минуту или две.
Конечно, если вы не возражаете против кодирования дважды, и вам не нравится вводить команды, вы также можете сделать это следующим образом:
- выберите вкладку Transcode и перетащите ваш файл на Input file.., нажмите Start, это будет сделано в течение минуты.
- Затем выберите только что закодированный MP4 и в контейнере Video выберите copy, а в Audio codec нажмите copy.
- Нажмите Добавить в список пакетов, а затем нажмите Пуск. Кодирование будет сделано в течение минуты.