mkvtomp4
Похоже mkvtomp4
это то, что вы хотите?
Использует mpeg4ip или MPACBox, mkvtoolnix и ffmpeg из GPAC для преобразования проблемных файлов mkv в mp4 . Преобразование не перекодирует видео, а перекодирует аудио только в том случае, если не используется кодек AAC (можно переопределить это поведение с помощью --audio-codec).
Вы можете скачать версии для Windows и Linux на странице кода Google. Вам понадобится дополнительное программное обеспечение, хотя.
Проверьте сайты для загрузки для Windows или Linux. На OS X вам нужно только brew install mkvtoolnix mp4box
если у вас есть Homebrew .
Это не будет копировать ваши субтитры, хотя. Вам понадобится дополнительный шаг.
Партия FFmpeg
Если mkvtomp4 не работает для вас, может подойти и простой командный файл FFmpeg . Для Windows вы можете скачать сборки Zeranoe . В Linux проверьте FFmpeg из источников пакетов. В OS X используйте brew install ffmpeg
.
Тогда просто позвоните:
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
Это создаст допустимый контейнер MP4 без перекодирования. Зацикливайте файлы, когда это необходимо и доступно вашей операционной системе. Однако эта партия не будет копировать субтитры.
В * nix вы можете сделать следующее. Просто создайте файл convert.sh
:
#!/bin/bash
find /path/to/input/folder -iname '*.mkv' -print0 | while read -d '' -r file; do
ffmpeg -i "$file" -c:v copy -c:a copy ${file%%.mkv}.mp4
done
Замените путь к вашей папке с видео здесь. Сделайте его исполняемым с chmod +x convert.sh
, затем запустите его с ./convert.sh
.
В Windows вам, вероятно, понадобятся два пакетных файла ( отсюда бесстыдный плагин ), один из которых startconvert.bat
:
for %%i IN (*.mkv) DO (convert-to-mp4.bat "%%i")
pause
И тот, который выполняет преобразование:
IF EXIST "%1.mp4" GOTO exit
@echo Conversion for %1 started on %DATE% %TIME%
ffmpeg -i %1 -c:v copy -c:a copy %1.mp4
:exit
@echo %1.mp4 already exists
Сохраните оба в папке с видео. Просто запустите startconvert.bat
из папки, из которой вы хотите начать конвертацию.
Субтитры
Если вы хотите добавить субтитры, вам может потребоваться ручная процедура, если следующее не работает для вас:
ffmpeg -i input.mkv -c:a copy -c:v copy -map 0 output.mp4
Чтобы извлечь субтитры, используйте:
mkvextract tracks input.mkv 3:subtitles.srt
Это предполагает, что ваш файл действительно содержит субтитры с номером дорожки с номером 3, и они могут быть экспортированы в формат SRT. Чтобы проверить, действительно ли файл содержит субтитры на дорожке 3, используйте mkvmerge -i input.mkv
.
Затем используйте MP4Box для повторного добавления субтитров в файл MP4.
mp4box -add input.mp4 -add subtitles.srt -new output.mp4