mkvtomp4
Похоже, mkvtomp4
это то, что вы хотите?
Использует mpeg4ip или MP4Box, 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