1 Punkte von GN⁺ 2024-02-09 | 1 Kommentare | Auf WhatsApp teilen

Zufällig zu Blender VSE beigetragen

  • Vor zwei Monaten habe ich angefangen, ein wenig Code zum Video Sequence Editor (VSE) von Blender beizusteuern.
  • Wusstet ihr, dass Blender ein Werkzeug für die Videobearbeitung hat? Ich wusste es auch nicht.
  • Obwohl ich überhaupt nichts über Videobearbeitung, Timelines, Sequencer, Farbkorrektur, ffmpeg, Audiomischung und Ähnliches wusste, habe ich angefangen, am VSE zu arbeiten.

Wie kam ich eher „zufällig“ dazu, am VSE zu arbeiten?

  • Ich beschloss, mir die Unite-2023-Konferenz von Unity in Amsterdam anzusehen und dabei Freunde zu besuchen.
  • Nach der Konferenz besuchte ich für einen halben Tag den Hauptsitz von Blender, und Francesco und Sergey fragten mich, ob ich bereit wäre, zum VSE beizutragen.
  • So habe ich mit der Arbeit am VSE begonnen.

Verbesserungen beim Zeichnen der Timeline

  • Die VSE-Timeline befindet sich unten im Bild, und auf einmal sind ungefähr 3000 „Strips“ sichtbar.
  • Beim Scrollen und Verschieben der Timeline wurde die Benutzeroberfläche nur mit etwa 15 Frames aktualisiert.
  • Jetzt wird sie mit mehr als 60 Frames aktualisiert (#115311).

Scopes

  • Der VSE kann typische „Scopes“ wie Bildhistogramm, Waveform und Vektorskop anzeigen.
  • Es gibt Verbesserungen bei Histogramm, Waveform und Vektorskop.

Der ffmpeg-Teil

  • Blender verwendet hauptsächlich die ffmpeg-Bibliotheken zum Lesen und Schreiben von Audio und Video.
  • Mit libswscale werden RGB↔YUV-Konvertierungen für Filmframes durchgeführt.
  • Jetzt wird Multithreading genutzt, um den Schritt der RGB→YUV-Konvertierung schneller zu machen (#116008).

Audio-Resampling

  • Innerhalb der Audio-Bibliothek (Audaspace) ging viel Zeit für das Resampling von Audioclip-Daten verloren.
  • Audaspace wurde um eine neue Resampling-Qualität „mittel“ erweitert, die nun beim Rendern verwendet wird (#116059).

Bildtransformation und Filterung

  • Im VSE lassen sich Bilder, Filme, Text, Szenen usw. transformieren: positionieren, drehen, skalieren und zusätzlich beschneiden.
  • Diese Transformationen werden komplett auf der CPU ausgeführt und waren bereits multithreaded.
Behebung des „Half-Pixel-Fehlers“
  • Im Code gab es mehrere „Half-Pixel-Fehler“, die sich in vielen Fällen gegenseitig aufhoben oder unsichtbar blieben.
  • Diese Fehler wurden behoben (#116628).
Transparente Ränder durch Bilinear-Filterung
  • Nur die Bilinear-Filterung fügte rund um das Ergebnisbild Transparenz hinzu.
  • Jetzt wurde im Code der Bilinear-Filterung das „Blending mit Transparenz“ entfernt (#117717).
Filter hinzugefügt und geändert
  • Für Strip-Transformationen im VSE gab es keine Option für Cubic-Filterung.
  • Jetzt kann man im VSE zwischen zwei Arten von Cubic-Filterung wählen (#117100, #117517).
  • Eine Filteroption „Auto“ wurde hinzugefügt und als Standard festgelegt (#117853).

Optimierung von VSE-Effekten

  • In echten Filmdatensätzen werden viele Effekte zwar nicht genutzt, aber ich habe im Code einiges entdeckt und optimiert.
  • Die meisten Optimierungen erfolgten durch Multithreading.

Was bedeutet das alles für die Renderzeit?

  • Bei drei von Blender Studio bereitgestellten Datensätzen ist die finale Renderzeit von VSE-Filmen auf dem PC etwa doppelt so schnell geworden.

Gedanken zum tatsächlichen Arbeitsprozess

  • Ich bin mir nicht sicher, ob all das in zwei Monaten Teilzeitarbeit schon „eine gute Menge Arbeit“ ist.
  • Dafür, dass der Entwickler (ich) weder von diesem Bereich noch von der Codebasis irgendetwas wusste, scheint es ziemlich ordentlich zu sein.
  • Insgesamt wurden 37 Pull Requests abgeschlossen, geprüft und gemergt.

Was kommt als Nächstes?

  • Blender 4.1 hat den Beta-Status erreicht und ist funktional „fertig“.
  • Die Arbeit an Blender 4.2 beginnt, und ich plane, weiter am VSE zu arbeiten.

GN⁺-Meinung:

  1. Dieser Beitrag teilt Verbesserungen und den Entwicklungsprozess rund um Blenders VSE und zeigt, wie wichtig Beiträge zu Open-Source-Projekten sind.
  2. Indem er hervorhebt, dass Entwickler auch außerhalb ihres eigentlichen Fachgebiets sinnvolle Beiträge leisten können, vermittelt er eine positive Botschaft, die zu neuen Herausforderungen ermutigt.
  3. Der Beitrag unterstreicht die Bedeutung von Optimierung und Performance-Verbesserungen in der Softwareentwicklung und erklärt anhand konkreter Beispiele, wie sich solche Verbesserungen auf die tatsächliche Nutzererfahrung und Renderzeiten auswirken.

1 Kommentare

 
GN⁺ 2024-02-09
Hacker-News-Kommentare
  • Ein Nutzer erwähnte, dass der größte Fehltritt seiner Laufbahn darin bestand, kein Gleichgewicht zwischen dem Finden mathematischer Lösungen für einzigartige Projekte und bezahlten Projekten mit durchschnittlichen Ergebnissen zu finden. Er teilte die Erfahrung, dass sich zwar eine Gelegenheit ergab, für etwas bezahlt zu werden, woran er zuvor unbezahlt gearbeitet hatte, er am Ende aber überhaupt nicht daran arbeitete.
  • Ein anderer Nutzer erwähnte einen Fall, in dem jemand nach viel Erfahrung mit Unity zu Blender beitrug, und lobte insbesondere eine Änderung, die durch Optimierung der Bildverarbeitungspipeline die Rechengeschwindigkeit vervierfachte.
  • Ein Nutzer nannte es als seinen Lieblingstrend der vergangenen Jahre, dass Aras an verschiedenen Open-Source-Grafikprojekten mitwirkt, große Geschwindigkeitssteigerungen und Verbesserungen erreicht und dann zum nächsten Projekt weiterzieht.
  • Ein anderer Nutzer äußerte Bedauern darüber, dass sein bevorzugter Musikplayer Musicbee nicht Open Source ist, und sagte, dass er in seiner Freizeit gern zum Beheben kleiner Probleme beitragen würde, wenn der Quellcode offen wäre.
  • Ein Nutzer erwähnte, dass er Blender VSE seit 2020 für die Videobearbeitung nutzt und es für den stabilsten und funktionsreichsten Videoeditor unter Linux hält.
  • Ein anderer Nutzer berichtete, dass er für seinen Podcast ausschließlich Open-Source-Tools nutzen wollte, der Rendervorgang einer mp4-Sequenz mit Chroma Key in Blender jedoch 10 Stunden dauerte, weshalb er zu DaVinci Resolve wechselte.
  • Ein Nutzer bat um Hilfe dabei, die Bedeutung des Titels zu verstehen, und fragte, ob es sich vielleicht um eine memehafte Formulierung handele.
  • Ein anderer Nutzer sagte, dass es äußerst schwierig sein dürfte, irgendeinen Teil des 3D-Programms Blender schneller zu machen, und bewertete es als die bereits am schnellsten startende und am reaktionsschnellsten arbeitende 3D-Anwendung.
  • Ein Nutzer bat darum, den Titel klarer zu formulieren.
  • Schließlich erwähnte ein Nutzer, dass seine ersten Erfahrungen mit VSE nicht besonders gut gewesen seien, und teilte einen Link zu seinen Erfahrungen.