mkvtomp4
Схоже mkvtomp4
, що ви хочете?
Використовує mpeg4ip або MP4Box, mkvtoolnix та ffmpeg GPAC для перетворення проблемних файлів mkv в mp4 . Перетворення не перекодує відео, а лише перекодує звук лише у тому випадку, якщо він не використовує кодек AAC (можна змінити таку поведінку за допомогою --audio-codec).
Версії Windows та Linux можна завантажити на сторінці Google Code. Вам знадобиться додаткове програмне забезпечення.
Перевірте сайти на завантаження для 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 вам, ймовірно, потрібні два файли Batch (тут безсоромний штекер ), один з яких 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