Habe heute Nacht aus Gründen mal wieder in die Repos von Karl Voit geschaut und etwas gefunden, das meinen Workflow im Umgang mit Videos stark vereinfacht.

Ich schaue Videos immer mit MPV an, weil das meiner Ansicht nach einfach der beste Multimedia-Player überhaupt ist, auf der Kommandozeile benutzbar ist und komplett ohne Maus bedient werden kann.

Wenn ich bisher aus einem (längeren) Video nur einen bestimmten Ausschnitt speichern wollte, so startete ich parallel das Programm VidCutter. Das Vor- und zurückspulen und die Anzeige des Videos in VidCutter sind leider relativ langsam, sodass ich VidCutter nur zum Markieren verwenden konnte, nicht zum Anschauen der Videos.

Bisheriger Workflow mit VidCutter

Der Ablauf in VidCutter: Video in das Programm laden. Dann werden Thumbnails erzeugt, was ein paar Sekunden dauert. Dann springt man den Anfang und das Ende und klickt auf “Speichern”, gibt den Dateinamen ein und der Teil des Videos wird als neue Datei abgespeichert. Das Video wird dabei nicht neu encodiert, sondern lediglich der Ausschnitt kopiert.

Im Hintergrund verwendet VidCutter ffmpeg mit dem Parameter -copy und dieses könnte man auch direkt aufrufen, aber die Syntax dazu ist nicht gerade einfach für die tägliche Benutzung, da man genau den Startzeitpunkt und den Endzeitpunkt auf der Kommandozeile angeben muss.

Neuer Workflow mit mpv-cut

Nun zurück zu dem, was ich gefunden habe. Es ist ein Lua-Script für Mpv mit dem Namen mpv-cut. Es macht mehrere Dinge, aber das für mich Wichtigste ist, dass man mit einem Tastendruck Anfang und Ende in einem Video markieren kann. Sodann beginnt mpv im Hintergrund, den markierten Ausschnitt in einer neuen Datei zu speichern.

Statt also zusätzlich zu Mpv noch ein weiteres Programm nutzen zu müssen, kann ich nun direkt beim ersten Anschauen eines Videos an Anfang und Ende des gewünschten Ausschnitts jeweils die Taste c drücken und es wird eine neue Datei mit dem Ausschnitt erstellt.

Beim ersten Drücken von c wird der Timecode angezeigt.

Beim zweiten Drücken wird im Hintergrund die neue Datei erzeugt und anschließend Done angezeigt.

Hinweis
Das Lua-Script läuft nur, solange Mpv auch läuft. Wenn es also mal länger dauert, weil man z. B. die Encode-Option von mpv-cut nutzt, dann darf man währenddessen Mpv nicht beenden.

Gute Einstellungen für MPV

Empfehlenswert sind auch die Einstellungen für die input.conf, die im Repo von mpv-cut genannt werden, um zielgenau im Video zu navigieren, siehe hier.

Sehr gut finde ich bei den hier gezeigten Einstellungen, dass man mit Backspace umschalten kann, dass das “On Screen Display” permanent angezeigt wird und nicht nur, wenn die Maus im unteren Bereich des Videos liegt oder während man im Video vorspult, zurückspult, usw.

Bug(?) mit Videos der DJI Osmo Action

Bei Videos von meiner ActionCam DJI Osmo Action wurden leider nur leere Dateien erstellt. Das selbe Problem kannte ich auch schon von VidCutter und die Fehlermeldung kam mir auch bekannt vor. Denn auch mpv-cut verwendet im Hintergrund ffmpeg.

Ich verstehe nicht wirklich, was der Parameter -map macht, aber das ist der Grund für den Fehler, sodass man diese Zeile im Code auskommentieren muss.1

Danach werden auch Videos der DJI Osmo Action korrekt verarbeitet.

Selbst erweitern

Ich habe gesehen, dass es auch ein Modul gibt, um via MPV Benutzereingaben zu bekommen. Vielleicht schaue ich das mal genauer an und wenn ich es verstehe, werde ich versuchen, den Dateinamen interaktiv eingeben zu können.


  1. In Lua mit zwei Strichen am Anfang der Zeile. ↩︎