Weil ich im iNet nur Lösungen mit der MKVMergeGUI gefunden habe, hier mal eine Kommandozeilenvariante.
Code
@echo off &setlocal EnableDelayedExpansion
:: MKV splitten an Kapitelmarken / split by chapters
:: Windows erlaubt ab XP 8.191 Zeichen in der Befehlszeile
:: und 32.767 Zeichen für alle Umgebungsvariablen (Artikel-ID: 830473).
:: Die Länge des Pfadnamens sollte 260 Zeichen nicht übersteigen.
:: MKVMerge verwendet für Timecodes das Format hh:mm:ss.123456789 (18 Zeichen).
:: Somit ist Platz für ca. (8.191 - 260*2 - 18)/(18 + 1) ~ 402 Kapitel in der Kommandozeile.
:: Wenn nur ein Kapitel am Trackbeginn vorhanden ist, wird die MKV remuxt.
:: Wenn ein Kapitel mit dem Ende des längsten Tracks zusammenfällt,
:: wird eine zusätzliche "leere" Datei geschrieben, die ggf. gelöscht werden muss.
:: Wenn keine Kapitel vorhanden sind, zeigt MKVMerge eine Fehlermeldung.
set source=%~1
set destination=output\%~nx1
if not exist output\ mkdir output
for /f "usebackq tokens=4" %%i in (`mkvinfo --ui-language en "%source%" ^| findstr /i /c:"ChapterTimeStart: "`) do (
if defined timecodes set timecodes=!timecodes!,
set timecodes=!timecodes!%%i
)
mkvmerge -o "%destination%" --split timecodes:%timecodes% "%source%"
endlocal
Alles anzeigen