Aus Versehen Blender VSE verwendet
(aras-p.info)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
libswscalewerden 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:
- Dieser Beitrag teilt Verbesserungen und den Entwicklungsprozess rund um Blenders VSE und zeigt, wie wichtig Beiträge zu Open-Source-Projekten sind.
- 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.
- 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
Hacker-News-Kommentare