Videoschnitt mit GNU/Linux ist längst kein K.O. Kriterium mehr. Neben freier Software wie Kdenlive existieren sehr umfangreiche proprietäre Programme, wie DaVinci Resolve. Es wurde bereits für die Produktion von Blockbustern genutzt und lässt dem Nutzer die Wahl: GNU/Linux, oder die unfreien Betriebssysteme Windows & MacOS. Während Resolve grundsätzlich funktioniert, gibt es allerdings Schwierigkeiten mit gängigen Codecs – weil diese unfrei sind. Doch das ist kein Grund, zwingend proprietäre Betriebssysteme nutzen zu müssen. Dieser Artikel zeigt das Problem sowie kostenfreie Alternativen zur kostenpflichtigen Studio-Version.
Kostenfrei leistungsfähig, DaVinci Resolve Studio kann noch mehr
Die Software existiert in zwei Editionen: In einer kostenfreien Variante ohne Namenszusatz. Und dem kostenfreien DaVinci Resolve Studio. Letzteres kostet in der aktuellen Version 20 mit MwSt. derzeit 305€. Lobenswert ist hierbei, dass sich der Hersteller Blackmagic Design nicht am Plattformverfall beteiligt. Im Gegensatz zu Adobe & co. unterlässt er den schmierigen Abo-Zwang. Resolve 20 kann als vollwertige Version einmalig gekauft werden. Die kostenfreie Version ist ohne Wasserzeichen oder gar Werbung nutzbar, sie unterscheidet sich lediglich im Funktionsumfang:
- Der (meist schnellere) Grafikprozessor (die GPU) kann nur in Studio genutzt werden
- Videos mit einer Auflösung über 4k oder mehr als 60 Bildern/s erfordern Studio
- „KI“ Funktionen fehlen in der kostenfreien Version
- Künstliches erhöhen der Auflösung ist eine Studio-Funktion
Neben diesen Beispielen existieren weitere Funktionalitäten, auf die Nutzer der kostenfreien Edition verzichten müssen. Am schwerwiegendsten sehe ich den ersten Punkt. Alle anderen sind für viele sicherlich vernachlässigbar. Ob man mit dem langsameren Rendern auf lediglich der CPU leben kann, hängt vom Umfang der Projekte ab. Und wie oft man damit arbeitet.
Gängige Codecs hinter Bezahlschranken
Ein größeres Problem erkennt man dagegen erst auf den zweiten Blick. Filmaufnahmen nutzen Container-Formate (oft MP4), die jeweils aus einem Video- und Audio-Codec bestehen. Beide Spuren zusammen bilden das Video mit Bild & Ton. Verschiedene Codecs dabei zum Einsatz kommen. Sehr häufig wird das alte H.264 eingesetzt. Es existiert seit geraumer Zeit, sodass nahezu jedes Gerät sowie jede Software damit klar kommt. H.265 soll dies ablösen – das jüngere Format hat sich seit einigen Jahren verbreitet. Weitere existieren, viele haben eine Gemeinsamkeit: Sie sind durch Patente verschiedener Unternehmen belastet. Das macht ihre Verwendung schwierig, sowie ggf. durch Lizenzzahlungen teuer.
Man kann bereits erahnen, dass es hier komplex wird. DaVinci Resolve veröffentlicht daher zu jeder Version ein umfangreiches PDF-Dokument. Es listet auf, welche Codecs ihre Software pro Betriebssystem unterstützt. Für Version 20 ist es 14 Seiten lang.1 Ab Seite 11 sind die Listen für GNU/Linux zu finden, dort am Beispiel von Rocky Linux 8.6 aufgezeigt. Viele werden von der kostenfreien Version zumindest in eine Richtung (Encode/Decode) unterstützt. Doch leider gibt es ausgerechnet bei H.264 und H.265 große Einschränkungen: Sie sind der kostenpflichtigen Studio-Edition vorbehalten.
Es mag nachvollziehbar sein, dass Blackmagic Design dieses Risiko für kostenfreie Nutzer nicht eingehen möchte. In der Praxis erzeugt das jedoch erhebliche Probleme: Sehr viele Kameras nutzen standardmäßig einen der beiden Video-Codecs. Sie sind in der kostenfreien Edition komplett unbenutzbar – weder für das Quellmaterial, noch als Ziel beim Rendern. Das Kaufen der Studio-Version mag für manche in Frage kommen. Insbesondere wer die Software nur gelegentlich nutzt, empfindet über 300€ sicherlich als zu hoch.
Freie Codecs sind die Lösung
Das Problem kann gelöst werden, in dem man das Quellmaterial zuvor in ein offeneres Format umwandelt. Neben den belasteten H.264/265 Codecs existieren längst freie Alternativen, wie beispielsweise AV1 von der Alliance for Open Media (AOMedia). Oder VP9. Sie können frei verwendet werden – ohne problematische Patentansprüche, sowie den daraus ggf. entstehenden Zahlungen für Rechtsstreit/Lizenzkosten. Somit kann DaVinci Resolve diese Formate risikolos einbinden.
Sie mögen etwas ungewohnt sein, weil sie bislang eine geringere Verbreitung aufweisen. Doch viele gängige Programme kommen damit zurecht. Schließlich ist AV1 bereits 2018 erschienen. Das ältere VP9 wurde 2012 erstmals veröffentlicht. Im Alltag sind sie dennoch recht unbekannt, weil Smartphones & Kameras zumindest im Standard bevorzugt klassische Platzhirsche nutzen. Ein MP4-Video mit H.265 funktioniert überall. Man geht damit auf Nummer sicher und vermeidet potenzielle Probleme bei den Nutzern, die z.B. zu mehr Support-Anfragen führen könnten.
Schwierigkeiten gibt es nur noch vereinzelt und wenn, dann bei fremden Plattformen – etwa dem Hochladen eines Videos auf externe Dienste oder verschicken per Messenger. Beides soll uns nicht hindern: Schließlich ist zunächst das Rohmaterial betroffen, welches wir in Resolve importieren möchten. Die fertig gerenderten Videos können wir optional in z.B. H.264 konvertieren, falls das notwendig ist.
Passend Umwandeln mit ffmpeg
In meinem Beispiel-Szenario habe ich einen 6 Sekunden Clip inklusive Ton mit einer Sony Alpha 6400 aufgenommen. Sie nutzt standardmäßig H.264, das Video ist exakt 44 MB groß. Als Auflösung kommt 3840×2160 zum Einsatz (4K UHD). Das verlangsamt die Umwandlung, mit 1080P (Full-HD) Material funktioniert es deutlich zügiger. Durchgeführt wurden die Tests auf einem AMD Ryzen 9 3900X (12 Kerne) mit 64 GB RAM.
Viele Codecs können eine CQ/CRF Parameter für die Qualität nutzen. Man erspart sich damit komplexe technische Angaben zur Qualität und sorgt dafür, dass diese gleich bleibt. Bei VP9 und X264 ist das ein Wert von 0 – 63, für die höchste und 63 für die niedrigste steht. 23 ist meist ein guter Mittelwert, der keine optisch sichtbaren Qualitätsverluste zeigt. Die ffmpeg Doku empfiehlt sogar 31 für 1080p (Full-HD) Videos. Da es sich um Rohmaterial sowie eine höhere Auflösung handelt, nutze ich etwas höhere Werte.
AV1 (Empfohlen)
In ffmpeg sind insgesamt drei Encoder für AV1 enthalten. Mit libsvtav1 erreichen wir deutlich kleinere Dateien (20,1 MB) bei vergleichbarer Qualität. CRF 23 wird als visuell verlustfrei angesehen, mit 20 haben wir also ebenfalls sogar noch etwas puffer. Mit nur 8 Sekunden funktionierte dies beim Testvideo mit Abstand am schnellsten. Er eignet sich daher am besten, um das Quellmaterial für DaVinci Resolve aufzubereiten.
ffmpeg -i C0269.MP4 -c:v libsvtav1 -crf 20 -c:a pcm_s16le C0269_crf20_av1_pcm_s16le.mkv
VP9
Man kann ihn mit den Containerformaten WebM oder MP4 einsetzen. Der VP9 Codec wird von Resolve (kostenfrei) unterstützt, allerdings nicht alle Audio-Codecs. Alternativ kann für webm der libvorbis Audio-Codec genutzt werden. Dieser bietet eine schlechtere Qualität, weswegen ich pcm_s16le bevorzuge. Dadurch wechseln wir das Container-Format von webm auf mov. Die Dateigröße erhöht sich moderat auf 53,7 MB mit CRF 20. Bei 23 bleibt sie gleich.
ffmpeg -i C0269.MP4 -c:v libvpx-vp9 -crf 20 -c:a pcm_s16le C0269_crf20_a-pcm_s16le.mkv
Allerdings ist der Prozess langsam: Für das 4s Testvideo genehmigte sich ffmpeg insgesamt 2:08 min Zeit. Für produktive Aufnahmen kann man ihn daher leider kaum brauchen, weil die Verarbeitungszeit unverhältnismäßig hoch ausfällt.
Funktionsfähige Alternativen mit Nachteilen
Funktionierend, aber nicht empfehlenswert ist DNxHD. Es erzeugt sehr große Dateien, die selbst als temporäres Rohmaterial unnötig viel Schreiblast erzeugen. Aus einem 27MB großen H.265 Video wurde damit eine 4,9 GB (!) große Datei. Hierbei handelte es sich nicht um das 6 Sekunden Testvideo, sondern eines aus dem Alltag. In Anbetracht der Länge von lediglich 58 Sekunden ist die Größe unverhältnismäßig hoch. Sicherlich lässt sich das durch z.B. Qualitätsreduzierungen noch etwas optimieren. Dennoch ist die Effizienz überschaubar und liegt deutlich unter den oben genannten besseren Alternativen.
ffmpeg -i C0016_x265.mp4 -c:v dnxhd -profile:v dnxhr_hq -c:a pcm_s16le C0016_dnxhd.mov
Einfache Nutzung im Alltag mit eigenem Bash-Alias
Nun möchte man derart lange Befehle nicht ständig eintippen müssen: Einsteiger werden anfangs mühe haben, bis sie mit dem Aufbau von ffmpeg vertraut sind. Selbst wenn das gegeben ist, nervt es irgendwann. Daher habe ich mir dafür ein Bash-Alias dar-in als Abkürzung für DaVinci Resolve Input in der ~/.bashrc angelegt:
function dar-in() {
if [ $# -ne 2 ]; then
echo -e "Fehler: 2 Argumente müssen angegeben sein!\ndar-in /pfad/quelldatei.mp4 /pfad/zielordner" >&2
return 1
fi
srcPath=$1
fileFull=$(basename "$srcPath")
file="${fileFull%.*}"
destPath=$2
fullDestFile="$destPath/${file}_av1-crf20.mkv"
echo "Ziel: $fullDestFile"
time ffmpeg -i "$srcPath" -c:v libsvtav1 -crf 20 -c:a pcm_s16le "$fullDestFile"
}
Sie erwartet als ersten Parameter den Pfad zur Quelldatei, die von einer Kamera kommend für Resolve aufbereitet werden soll. Es folgt der Zielpfad für das kompatibel umgewandelte Video. Den Dateiname übernehmen wir aus der Quelldatei, versehen ihn mit einem Suffix zu Format & Qualität sowie der passenden Erweiterung MKV. Nach dem folgenden Aufruf erhaltet ihr in ~/Videos/C0016_av1-crf20.mkv eine Videodatei, welche Resolve uneingeschränkt importieren kann.
dar-in C0016.mp4 ~/Videos
Rendern des fertigen Videos mit DaVinci Resolve
Während wir damit das erste Problem für die Rohvideos gelöst haben, können sie in Resolve zum gewünschten Video geschnitten werden. Doch es gibt noch ein weiteres Problem: Die Software bietet in der kostenfreien Version gängige Codecs wie H.264/265 überhaupt nicht an – weder als Eingangsmaterial, noch für das gerenderte fertige Ausgangsvideo. Hier können wir große Dateien zwar nicht komplett verhindern, doch es gibt ebenfalls Lösungen mit einem kleinen Umweg.
Im QuickTime [sic] Format kann der DNxHR-Codec ausgewählt werden. DNxHR HQX und DNxHR HQ stehen für sehr hohe Qualität mit entsprechender Dateigröße. Zur Einordnung: Avid DNXHR HQ (Quality: Best) erzeugt aus einem knapp 4 Minuten (3:53 min) langem 4k Rohmaterial satte 20GB. Stellt man die Qualität unten von Best auf High, reduziert sich die Größe im selben Profil auf 13,2 GB. Außerdem dauert das Rendern nur noch 01:21 Min statt 02:05 Min.
Ich nutze Avid CNxHR SQ 12-bit mit Quality: High. Der SQ-Codec hat eine Bitrate von 200-300 Mbps und liefert eine visuelle gute Qualität, bei der ich selbst mit dezentem Vergrößern keine Verluste erkennen kann. Wer stark Zoomen möchte, mag das letzte Quäntchen heraus kitzeln müssen. Für mich reicht das völlig, die Dateigröße hält sich damit in Grenzen.
Archivierung mit H.265
In jedem Falle ist die Effizienz der von Resolve bereitgestellten Codecs für die dauerhafte Speicherung nicht zufriedenstellend. Selbst nach den Optimierungen entstehen noch immer riesige Dateien für weniger als 4 Minuten Videomaterial. Das lässt sich mit ffmpeg lösen: Man kann damit recht einfach das Video in eine MP4-Datei mit H265 Codec umwandeln.
ffmpeg -i demo.mov -vcodec libx265 demo_x265.mp4
Wie im obigen Shell-Alias demonstriert, lässt sich die Qualität per CRF auf Wunsch beeinflussen. Selbst mit hohem CRF liegt die Dateigröße weit unter Resolve. Einziges Manko: Das Umwandeln von 4K Videos dauert auf der CPU ziemlich lange (Geschwindigkeit 0,5x). Obwohl es sich um einen leistungsstarken 12-Kerner handelt, der nahezu konstant über 80% ausgelastet wird. Mit weniger leistungsstarker Hardware ist es noch langsamer.
Dafür schrumpft die 13,2 GB große Datei auf 112 MB. Von 4k auf 1080P herunter skaliert, sind es sogar nur 36 MB.
Reduzierung der Auflösung
Wer noch mehr Zeit & Speicherplatz sparen möchte, sollte über eine Reduzierung der Auflösung nachdenken. Das herunter skalieren von 4K Videos auf 1080P hat in meinen Tests beides deutlich reduziert. Während DaVinci Resolve Studio durch den GPU-Einsatz auch 4K Videos in akzeptabler Geschwindigkeit verarbeiten kann, läuft das auf der CPU leider deutlich schleppender.
Ich empfehle, zuvor zu überlegen, was man mit den Aufnahmen machen möchte. 1080P (Full-HD) ist nach wie vor für vieles ausreichend, auch auf dem Desktop. Werden die Videos lediglich auf dem kleinen Handy konsumiert, ist 4K nur unnötige Ressourcenverschwendung. Die größten Vorteile bietet 4K, wenn man stärker Vergrößern möchte. Selbst in größerem Umfang reicht die Pixeldichte für ein hochwertiges 1080P Video. Liegt das Eingangsmaterial dagegen bereits in Full-HD vor, kann ein sichtbarer Qualitätsverlust entstehen.
Im Zweifel würde ich mich für die höhere Auflösung entscheiden. Mit ffmpeg optimiert ist der Speicherverbrauch von etwa 36 MB (FHD) gegenüber 112 MB (4K) mit Faktor 3 überschaubar.
Ändern des Formats
Handelt es sich um selbst aufgenommenes Videomaterial, lohnt sich ein Blick in die Einstellungen der Kamera. Möglicherweise lässt sich dort ein alternatives Format einstellen, welches von Resolve nativ unterstützt wird. Damit entfällt zumindest die Umwandlung des Eingangsmaterials. Ob das möglich ist, hängt allerdings vom Gerät ab. Nicht jedes bringt einen Zoo an Codecs mit. Selbst Systemkameras machen es sich einfach und unterstützen nur wenige, um Implementierungsaufwand zu sparen. Einen Versuch ist es dennoch wert, da es etwas Arbeit im Schnitt einsparen kann.
Fazit: Hürden lassen sich überwinden
Leider kann die kostenfreie Edition von Resolve gängige Codecs nicht direkt verarbeiten. Dies zeigt die Problematik von unfreier Software ein weiteres mal. Freie Projekte wie Kdenlive sind leistungsstark geworden, um viele Szenarien abdecken zu können – insbesondere für den Hobby-Einsatz. Wer dennoch Resolve benötigt (etwa wegen der mächtigen Farbkorrektur), muss einen Umweg gehen. Mit leistungsstarkem Prozessor ist dieser hinnehmbar.
Insbesondere für die häufigere Nutzung kann eine pragmatische Kompromisslösung im Kauf einer Studio-Lizenz bestehen. Sie ist mit gut 300€ nicht absurd teuer und bietet neben der gängigen Codecs noch weitere Vorteile, wie etwa das Rendern über den Grafikprozessor. Das kann die Arbeit deutlich beschleunigen, insbesondere mit höheren Auflösungen.



