Ein kleines Skript kann Videoclips schnell in die passenden Formate konvertieren, so dass sie sich dann in DaVinci Resolve importieren lassen und auch der Ton nicht fehlt. Ist das Skript direkt in den Dateimanager Nemo eingebaut, dann reicht ein Rechtsklick und „Mit ffmpeg konvertieren“, schon liegen die Clips im richtigen Format vor.
Für Videoschnitt nutze ich neben dem Open-Source-Tool Kdenlive vor allem die professionelle Videoschnittsoftware DaVinci Resolve, die viele coole Funktionen hat und als natives Linux-Programm vorliegt. Während Kdenlive mit allen wichtigen Video- und Audiocodecs zurechtkommt, ist DaVinci Resolve unter Linux wählerisch.
Pingeliges DaVinci Resolve
Nur die Studioversion von DaVinci Resolve kann Videos in den Formaten H.264/H.265 importieren oder in das Format rendern – eine Nvidia-Grafikkarte vorausgesetzt. Den weitverbreiteten Audiocodec AAC beherrscht es gar nicht. Deshalb fehlt nach dem Import eines Videos von meinem Smartphone (einem Pixel) der Ton. Ich habe eine Studioversion, das heißt also: Will ich ein Smartphone-Video importieren, muss ich mindestens die Tonspur konvertieren, beispielsweise in das unkomprimierte Audioformat PCM.
Mit ffmpeg lässt sich dieses Problem leicht lösen: Das Kommandozeilentool konvertiert schnell Video- und Audioclips in passende Formate mit den gewünschten Codecs. Wenn ich die Funktion außerdem in den Dateimanager einbaue, dann reicht ein Rechtsklick und „Mit ffmpeg konvertieren“. Falls ffmpeg fehlt, kann man es in allen großen Linux-Distributionen aus den Paketquellen nachinstallieren. In CachyOS/Arch Linux mit sudo pacman -S ffmpeg.
Einige Sachen habe ich einfach umgestellt, um das Codec-Problem zu umgehen – zum Beispiel die Aufnahmen in OBS Studio. Hier nehme ich mittlerweile direkt mit PCM-Audiocodec auf, so dass DaVinci Resolve den Ton importieren kann. Andere Clips konvertiere ich mit einem Skript. Die Nobara-Dokumentation stellt dazu ein Skript bereit, das ich als Ausgangspunkt für ein eigenes genommen habe.

Power-Tool ffmpeg
Zentraler Bestandteil des Skripts ist ein ffmpeg-Befehl. Den habe ich zunächst getestet und erst dann ein Skript drumrum geschrieben. Um einen Videoclip mit ffmpeg zu konvertieren und dabei den Videocodec zu übernehmen und den Audiocodec in PCM zu konvertieren, lautet der Befehl folgendermaßen:
ffmpeg -i quelldatei.mp4 -vcodec copy -acodec pcm_s24le -f mp4 zieldatei.mp4
Der Parameter -i erwartet die zu verarbeitende Datei dahinter. Mit -vcodec copy übernehme ich das Video unverändert und mit -acodec pcm_s24le konvertiere ich das Audio in PCM. -f mp4 schließlich legt das Containerformat für die Ausgabedatei fest.
In meinem Fall kommen brauche ich noch zwei weitere Parameter, weil ich zwei Tonspuren habe, die beide erhalten bleiben sollen: -map 0:v -map 0:a. Der erste übernimmt die Videospur, der zweite erhält alle Audiospuren. Wer einfach nur eine Audiospur hat, kann -map ganz weglassen. Ich nehme allerdings grundsätzlich Mikrofon und Desktop-Sound auf zwei verschiedene Spuren auf, um sie getrennt anpassen zu können. Wer nur die freie Version von DaVinci Resolve hat, muss außerdem den Videocodec konvertieren und ein anderes Ausgabeformat wählen, zum Beispiel:
ffmpeg -i quelldatei.mp4 -vcodec mpeg4 -q:v 3 -acodec pcm_s24le zieldatei.mov
Beim Codec gilt es, wie so oft, Qualität und Dateigröße im Blick zu behalten, eine Übersicht über die Optionen liefert die ffmpeg-Dokumentation. Das -q:v 3 produzierte im Test mit einem Screencast vergleichbare Dateigrößen und Ergebnisse. Das dürfte aber je nach Videomaterial variieren. Welche Codecs DaVinci Resolve akzeptiert, verrät ein PDF zu den unterstützten Codecs auf der Herstellerseite im Abschnitt „Rocky Linux“.
Ein Skript für Nemo
Ist der Befehl getestet und funktioniert, kann er ins Skript gepackt werden. Meins sieht beispielsweise so aus:
#!/usr/bin/env bash
## This is a script for a nemo_action
## to convert video files for DaVinci Resolve Studio.
## If you are using the free version and can't import H.264/H.265,
## adapt the `-vcodec` line accordingly.
for file in "$@"; do
dir=$(dirname "$file")
output="${file%.*}.konv.mp4"
backupdir="$dir/backup"
# Create a folder for the original media
mkdir -p "$backupdir"
# Convert to PCM audio codec
# move the originals to the backup folder
# and add `.konv` to the filename
if ffmpeg -i "$file" \
-map 0:0 \
-map 0:1 \
-vcodec copy \
-acodec pcm_s24le \
-f mp4 \
"$output"
then
mv "$file" "$backupdir/"
fi
done
Dieses Skript ist fürs Einbinden in Nemo gedacht. Der Shell-Parameter $@ übergibt die markierten Dateien ans Skript. Außerdem legt das Skript einen Ordner für die Originale an und schiebt diese nach dem Konvertieren als Backup dorthin, so dass sie erhalten bleiben, aber aus dem Weg sind.

Einbau ins Kontextmenü
Damit das Skript im Nemo-Kontextmenü auftaucht, speichere ich es unter dem Namen convert_for_davinci.sh im Verzeichnis ~/.local/share/nemo/actions. Abschließend mache ich das Skript noch ausführbar, indem ich es in Nemo rechts anklicke und in den „Eigenschaften“ unter „Zugriffsrechte“ den Haken bei „Der Datei erlauben sie als Programm auszuführen“ setze. Jetzt fehlt noch eine Nemo Action mit einem passenden Dateinamen wie convert_with_ffmpeg.nemo_action im selben Verzeichnis:
[Nemo Action]
Name=Mit ffmpeg konvertieren
Exec=<convert_for_davinci.sh %F>
Selection=notnone
Extensions=mp4;mkv;avi;mov;webm;mpeg;mpg;m4v;
Wenn ich jetzt eine oder mehrere Videodatei(en) mit einer der eingetragenen Endungen in Nemo mit der rechten Maustaste anklicke, taucht im Menü der Eintrag „Mit ffmpeg konvertieren“ auf. Das macht den Umgang mit Videoclips in DaVinci Resolve deutlich einfacher.
Fazit
Da Nemo bei mir auf allen Linux-Desktops der bevorzugte Dateimanager ist, eignet sich die Nemo Action perfekt, um schnell Clips zu konvertieren. Das Skript ist ausbaufähig und fängt nicht alle Fälle ab. Auch fehlt eine Fortschrittsanzeige, doch da die konvertierte Datei erst am Ende ins backup-Verzeichnis verschoben wird, sieht man, wenn es durchgelaufen ist. Wer andere Medienformate verarbeiten will, muss darauf achten, dass sie in der Nemo Action berücksichtigt werden. Für mich funktioniert es fürs erste gut, muss ich doch jetzt endlich nicht mehr nach dem Ordner suchen, in dem ich das Skript ursprünglich gespeichert hatte. Und natürlich lassen sich auch andere Skripte so (oder im Untermenü Skripte) an den Dateimanager andocken.

Schreibe den ersten Kommentar