Я нашел эту ветку: Настройки ручного тормоза для конвертации 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-й) язык. Но не 2-й звуковой язык. Как мне это сделать?
На данный момент я просто конвертирую из .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 субтитрами. Так что я могу "переделать" (или преобразовать, не знаю) все мои .MKV-файлы в .MP4 без потери какой-либо информации.
На данный момент мой .MKV не имеет субтитров, так что это не важно. Но лучше подготовиться к будущему, верно?
Так что, пожалуйста, скажите мне, правильно ли я сделал, и, возможно, как добавить субтитры. Это первый раз, когда я использовал FFmpeg. Только что скачал его, никогда о нем не слышал. Никогда не использовал CMD для этого.
решение1
ffmpeg не сопоставляет автоматически все дорожки; по умолчаниювыбор потокабудет отображать только одну аудиодорожку, одну видеодорожку и одну дорожку субтитров на выходе. Если вы хотитекартавсе потоки, используйте -map 0
. Если вы хотите иметь возможность выбратьчтодля сопоставления вам сначала придется проанализировать входной файл ( ffmpeg -i input.mkv
) и использовать скрипты для построения окончательной команды преобразования. ffprobe может быть полезен для этого. СмотритеFFmpeg Wiki: Советы по FFprobeНапример.
Вы можете -c copy
указатьпотоковое копированиевсе потоки, независимо от их типа. Вы также можете индексировать видео и аудио потоки отдельно, поэтому ваша команда может быть сокращена до:
ffmpeg -i input.mkv -c copy -map 0 output.mp4
решение2
Существует программа с открытым исходным кодом под названием VCT: https://sourceforge.net/projects/videoconvertertranscoder/?source=directory
Это GUI для ffmpeg. Вы также можете редактировать команду ffmpeg вручную. В нем есть вкладка под названиемТранскодироватьгде вы можете перепаковать MKV в MP4, но на этой вкладке нет возможности добавить субтитры.
Если вы хотите перепаковать MKV в MP4 и одновременно добавить субтитры, вот процедура:
- Идти кКонвертироватьвкладку и выберите входной файл
- ВВидео контейнервыбиратькопияИ вАудиокодектакже выберитекопия
- Нажмитедобавить субтитрыи выберите внешний файл SRT
- В текстовом поле команды ffmpeg замените часть субтитров-c:s srt ""с-c:s mov_text ""
- нажмитеДобавить в список партиии затем нажмитеНачинать Кодирование будет выполнено через минуту или две.
Конечно, если вас не смущает двойное кодирование и вам не нравится вводить команды, вы можете сделать это и так:
- выберите вкладкуТранскодироватьи перетащите ваш файл наВходной файл.., нажмитеНачинать, это будет сделано в течение минуты.
- Затем выберите недавно закодированный MP4 и вВидео контейнервыбиратькопияИ вАудиокодекнажмитекопия.
- НажмитеДобавить в список партиии затем нажмитеНачинать. Кодирование будет выполнено в течение минуты.
решение3
Ну, я использую такой .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. Я не могу сказать, это просто "плеер" телевизора или сам конвертированный файл. Графический интерфейс кажется хорошим. Но если вы хотите конвертировать около 20 файлов подряд, то нужно много щелкать. Файл .bat просто делает это автоматически со всеми этими файлами в одной папке.
Возможно, кто-то знает, почему я получаю сообщение об ошибке, и является ли этот скрипт неправильным или нет :)