mkvtomp4
Wygląda na mkvtomp4
to, czego chcesz?
Używa mpeg4ip lub MP4Box, mkvtoolnix i ffmpeg programu GPAC do konwersji kłopotliwych plików mvv na mp4 . Konwersja nie koduje ponownie wideo i ponownie koduje dźwięk tylko wtedy, gdy nie używa kodeka AAC (można to zmienić za pomocą --a-kodek-audio).
Możesz pobrać wersje Windows i Linux ze strony Google Code. Będziesz jednak potrzebował dodatkowego oprogramowania.
Sprawdź witryny pod kątem plików do pobrania dla systemu Windows lub Linux. W systemie OS X wystarczy, brew install mkvtoolnix mp4box
jeśli masz Homebrew .
Nie spowoduje to jednak skopiowania napisów. Będziesz potrzebował dodatkowego kroku.
Partia FFmpeg
Jeśli mkvtomp4 nie działa dla ciebie, może również zrobić prosty plik wsadowy FFmpeg . W systemie Windows można pobrać kompilacje Zeranoe . W systemie Linux sprawdź FFmpeg ze źródeł pakietów. W OS X użyj brew install ffmpeg
.
Następnie wystarczy zadzwonić:
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
Spowoduje to utworzenie prawidłowego kontenera MP4 bez ponownego kodowania. Pętlę nad plikami w razie potrzeby i dostępnych w systemie operacyjnym. Ta partia nie będzie jednak kopiować napisów.
W * nix możesz wykonać następujące czynności. Wystarczy utworzyć plik 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
W tym miejscu zastąp ścieżkę do folderu wideo. Zrób to za pomocą chmod +x convert.sh
, a następnie uruchom za pomocą ./convert.sh
.
W systemie Windows prawdopodobnie potrzebujesz dwóch plików wsadowych ( bezwstydna wtyczka stąd ), z których jeden to startconvert.bat
:
for %%i IN (*.mkv) DO (convert-to-mp4.bat "%%i")
pause
I taki, który dokonuje konwersji:
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
Zapisz oba w folderze wideo. Po prostu uruchom startconvert.bat
z folderu, z którego chcesz rozpocząć konwersję.
Napisy na filmie obcojęzycznym
Jeśli chcesz dodać napisy, może być potrzebna procedura ręczna, jeśli poniższe czynności nie działają:
ffmpeg -i input.mkv -c:a copy -c:v copy -map 0 output.mp4
Aby wyodrębnić napisy, użyj:
mkvextract tracks input.mkv 3:subtitles.srt
Zakłada się, że plik naprawdę zawiera napisy o numerze ścieżki 3 i można je wyeksportować do formatu SRT. Aby sprawdzić, czy plik naprawdę zawiera napisy na ścieżce 3, użyj mkvmerge -i input.mkv
.
Następnie użyj MP4Box, aby ponownie dodać napisy do pliku MP4.
mp4box -add input.mp4 -add subtitles.srt -new output.mp4