गलती से इस्तेमाल किया गया Blender VSE
(aras-p.info)संयोग से Blender VSE में योगदान करना
- दो महीने पहले मैंने Blender के Video Sequence Editor (VSE) में थोड़ा-सा कोड योगदान देना शुरू किया।
- क्या आपको पता था कि Blender में video editing tools भी हैं? मुझे भी नहीं पता था।
- Video editing, timeline, sequencer, color correction, ffmpeg, audio mixing जैसी चीज़ों के बारे में कुछ भी न जानते हुए भी मैंने VSE पर काम शुरू किया।
VSE पर काम ‘संयोग से’ कैसे शुरू हुआ?
- मैंने Amsterdam में Unity की Unite 2023 conference देखने और दोस्तों से मिलने का फैसला किया।
- Conference के बाद आधे दिन के लिए Blender headquarters गया, और Francesco तथा Sergey ने पूछा कि क्या मैं VSE में योगदान देना चाहूँगा।
- बस, यहीं से VSE पर काम शुरू हो गया।
Timeline drawing में सुधार
- VSE timeline image के नीचे स्थित होती है, और एक बार में लगभग 3000 "strips" दिखाई देती हैं।
- Timeline को scroll और move करने पर user interface लगभग 15 frames पर update होता था।
- अब यह 60 frames से अधिक पर update होता है (#115311)।
Scopes
- VSE image histogram, waveform, vectorscope जैसे सामान्य "scopes" दिखा सकता है।
- Histogram, waveform और vectorscope में सुधार किए गए हैं।
ffmpeg वाला हिस्सा
- Blender मुख्य रूप से audio/video पढ़ने और लिखने के लिए ffmpeg library का उपयोग करता है।
libswscaleका उपयोग movie frame RGB↔YUV conversion के लिए किया जाता है।- अब multi-threading का उपयोग करके RGB→YUV conversion step को और तेज़ किया गया है (#116008)।
Audio resampling
- Audio library (Audaspace) के भीतर audio clip data के resampling में बहुत समय लग रहा था।
- Audaspace में नया "medium" resampling quality setting जोड़ा गया है, ताकि rendering के समय उसका उपयोग किया जा सके (#116059)।
Image transformation और filtering
- VSE में image, movie, text, scene आदि को transform किया जा सकता है: position करना, rotate करना, resize करना, और अतिरिक्त crop लागू करना।
- ये transformations सभी CPU पर किए जाते हैं और पहले से ही multi-threading के साथ process होते हैं।
"Half-pixel error" को ठीक करना
- Code में कई "half-pixel errors" थे, जो कई मामलों में एक-दूसरे को cancel कर देते थे या दिखाई नहीं देते थे।
- इन errors को ठीक कर दिया गया है (#116628)।
Bilinear filtering के आसपास transparency border
- सिर्फ Bilinear filtering ही result image के आसपास transparency जोड़ रही थी।
- अब Bilinear filtering code में से "transparency में blending" को हटा दिया गया है (#117717)।
Filtering जोड़ना और बदलना
- VSE strip transformations में Cubic filtering option नहीं था।
- अब VSE में दो तरह की Cubic filtering चुनी जा सकती है (#117100, #117517)।
- "Auto" filter option जोड़ा गया है और उसे default के रूप में सेट किया गया है (#117853)।
VSE effects optimization
- असली movie datasets में बहुत-से effects इस्तेमाल नहीं होते, लेकिन code में कुछ चीज़ें मिलीं जिन्हें optimize किया गया।
- ज़्यादातर optimization multi-threading के ज़रिए किए गए।
यह सब rendering time के लिए क्या मायने रखता है?
- Blender Studio द्वारा दिए गए तीन datasets में PC पर VSE movie का final rendering time लगभग 2 गुना तेज़ हो गया।
असली काम की प्रक्रिया पर विचार
- यक़ीन नहीं है कि ऊपर किया गया सारा काम, दो महीनों की part-time मेहनत के हिसाब से, "काफ़ी अच्छा काम" माना जाएगा या नहीं।
- फिर भी, यह काफ़ी ठीक लगता है, खासकर इसलिए कि developer (मैं) इस क्षेत्र या codebase के बारे में कुछ भी नहीं जानता था।
- कुल 37 pull requests पूरे हुए, review किए गए और merge किए गए।
आगे क्या?
- Blender 4.1 beta में पहुँच चुका है और feature के हिसाब से "पूरा" हो चुका है।
- Blender 4.2 पर काम शुरू हो रहा है, और मैं VSE के साथ काम जारी रखने की योजना बना रहा हूँ।
GN⁺ की राय:
- यह लेख Blender के VSE में हुए सुधारों और development process को साझा करता है, और दिखाता है कि open source projects में योगदान कितना महत्वपूर्ण है।
- यह इस सकारात्मक संदेश को आगे बढ़ाता है कि developer अपने विशेषज्ञता क्षेत्र से बाहर भी सार्थक योगदान दे सकता है, और नए challenges अपनाने के लिए प्रोत्साहित करता है।
- यह लेख software development में optimization और performance improvement के महत्व पर ज़ोर देता है, और ठोस उदाहरणों के साथ समझाता है कि ऐसे सुधार user experience और rendering time पर कैसे असर डालते हैं।
1 टिप्पणियां
Hacker News टिप्पणियाँ