FFmpeg Splitter

Viele Schnittprogramme (z.B. Adobe Premiere oder DaVinci Resolve) können große Video Dateien viel besser verarbeiten, wenn die Audio- und Videospuren einer Datei getrennt sind.
Mit dieser Anleitung erstellst du ein Skript, das mit nur einem Klick die Spuren aller Videodateien in einem Ordner trennen kann.

Vorher -> Nachher

FFmpeg Installation

Zuerst musst du den FFmpeg Werkzeugkasten auf deinem PC installieren.

Anleitung für Windows:

  1. Drücke Windowstaste+R oder suche im Windowsmenü nach "Ausführen".
  2. Schreibe "Winget install ffmpeg" in das neue Fenster und bestätige.
  3. Warte bis die Installation beendet ist.
  4. Fertig.

Um zu testen, ob die Installation erfolgreich war, kannst du in ein Terminal (z.B. PowerShell) den Befehl "ffmpeg -version" eingeben.

Siehst du ungefähr folgende Antwort, war die Installation erfolgreich:

Skript

Erstelle eine Textdatei:

  1. Rechts-Klick auf z.B. deinen Desktop.
  2. "Neu" - "Textdokument"
  3. Nenne das Dokument wie du möchtest (z.B. AutoSplitter).
  1. Öffne die Text-Datei.
  2. Kopiere folgenden Code in die Datei:
@echo off
setlocal EnableDelayedExpansion

set outname=C:\Test\

for %%v in (*.mkv *.mp4 *.avi *.mov *.flv *.webm) do (
    set "BaseName=%%~nv"
    set "Ext=%%~xv"

    echo Extrahiere Video und Audiospuren von: !FileName!

    ffmpeg -i "%%v" ^
      -map 0:v -c copy "!outname!!BaseName!_video!Ext!" ^
      -map 0:a:0 -c copy "!outname!!BaseName!_audio_1.aac" ^
      -map 0:a:1 -c copy "!outname!!BaseName!_audio_2.aac" ^
      -map 0:a:2 -c copy "!outname!!BaseName!_audio_3.aac"
)

pause

  1. "C:\Test\" muss ersetzt werden mit einem Ordner, der auf deinem PC existiert. Dort werden die neuen Dateien abgespeichert.
  2. In meinem Beispiel werden neben der Videospur auch die ersten 3 Audiospuren separat abgespeichert. Je nach dem welche Audiospuren du vom Video trennen möchtest, musst du hier die letzten 3 Audio-Zeilen anpassen.

  1. Hast du nur eine Audiospur kannst du auch direkt den folgenden Text übernehmen:
@echo off
setlocal EnableDelayedExpansion

set outname=C:\Test\

for %%v in (*.mkv *.mp4 *.avi *.mov *.flv *.webm) do (
    set "BaseName=%%~nv"
    set "Ext=%%~xv"

    echo Extrahiere Video und Audiospuren von: !FileName!

    ffmpeg -i "%%v" ^
      -map 0:v -c copy "!outname!!BaseName!_video!Ext!" ^
      -map 0:a:0 -c copy "!outname!!BaseName!_audio.aac"
)

pause
  1. Speichere nun die Textdatei ab.
  2. Ändere die Dateiendung von .txt auf .bat (z.B. AutoSplitter.bat).
  3. Lege die .bat nun in einen Ordner mit all den Videodateien die du splitten möchtest.
  4. Doppelklick auf die .bat
  5. Je nach dem, wie groß die Dateien sind, kann es länger dauern.
  6. Fertig. Die einzelnen Video- und Audiospuren liegen nun an dem Ort, den du im Skript angegeben hast.
  7. Möchtest du den Text in der .bat ändern, kannst du einfach Rechts-Klick darauf machen und auf "Im Editor bearbeiten" gehen.

Bei diesem Prozess geht keine Qualität verloren, da wirklich nur die Dateien getrennt werden.

Du kannst jetzt in dem Schnittprogramm deiner Wahl die einzelnen Spuren einfügen und dort wieder verknüpfen.

Das erspart dem Programm viel Rechenarbeit, da es nicht mehr versuchen muss den Ton vom Video synchron zu halten, denn es sind jetzt separate Dateien.

Video Tutorial

Hier ist eine Video-Anleitung, in der ich den Prozess noch genauer erkläre: