1 पॉइंट द्वारा GN⁺ 2024-02-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें

संयोग से 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⁺ की राय:

  1. यह लेख Blender के VSE में हुए सुधारों और development process को साझा करता है, और दिखाता है कि open source projects में योगदान कितना महत्वपूर्ण है।
  2. यह इस सकारात्मक संदेश को आगे बढ़ाता है कि developer अपने विशेषज्ञता क्षेत्र से बाहर भी सार्थक योगदान दे सकता है, और नए challenges अपनाने के लिए प्रोत्साहित करता है।
  3. यह लेख software development में optimization और performance improvement के महत्व पर ज़ोर देता है, और ठोस उदाहरणों के साथ समझाता है कि ऐसे सुधार user experience और rendering time पर कैसे असर डालते हैं।

1 टिप्पणियां

 
GN⁺ 2024-02-09
Hacker News टिप्पणियाँ
  • एक उपयोगकर्ता ने बताया कि उसके करियर की सबसे बड़ी गलती यह रही कि वह अनोखे प्रोजेक्ट्स के लिए गणितीय समाधान खोजने और औसत नतीजे देने वाले paid प्रोजेक्ट्स के बीच संतुलन नहीं बना सका। उसने यह अनुभव भी साझा किया कि जिस काम को वह बिना भुगतान के कर रहा था, उसके लिए भुगतान पाने का मौका मिला, लेकिन अंत में उसने उस पर बिल्कुल काम ही नहीं किया।
  • एक अन्य उपयोगकर्ता ने उस मामले का ज़िक्र किया जिसमें किसी ने पहले Unity में काफी अनुभव हासिल करने के बाद Blender में योगदान दिया, और खास तौर पर image processing stage को optimize करके computation speed को 4 गुना बढ़ाने वाले बदलाव की सराहना की।
  • एक उपयोगकर्ता ने कहा कि Aras का विभिन्न open source graphics projects में शामिल होना, बड़े पैमाने पर speedup और improvements करना, और फिर दूसरे प्रोजेक्ट की ओर बढ़ जाना, पिछले कुछ वर्षों की उसकी पसंदीदा प्रवृत्ति रही है।
  • एक अन्य उपयोगकर्ता ने अफसोस जताया कि उसका पसंदीदा music player Musicbee open source नहीं है, और कहा कि अगर source उपलब्ध होता तो वह अपने खाली समय में छोटी-मोटी समस्याएँ ठीक करने में योगदान देना चाहता।
  • एक उपयोगकर्ता ने बताया कि वह 2020 से वीडियो एडिटिंग के लिए Blender VSE का उपयोग कर रहा है, और उसके अनुसार यह Linux पर सबसे stable और feature-rich video editor है।
  • एक अन्य उपयोगकर्ता ने साझा किया कि वह अपने podcast के लिए पूरी तरह open source tools इस्तेमाल करना चाहता था, लेकिन Blender में chroma key वाले mp4 sequence को render करने में 10 घंटे लग गए, इसलिए उसने DaVinci Resolve पर स्विच कर लिया।
  • एक उपयोगकर्ता ने पोस्ट के शीर्षक का अर्थ समझने में मदद मांगी और पूछा कि क्या यह किसी तरह की meme-जैसी अभिव्यक्ति है।
  • एक अन्य उपयोगकर्ता ने कहा कि Blender 3D प्रोग्राम के किसी भी हिस्से को और तेज़ बनाना बेहद कठिन होगा, क्योंकि उसके हिसाब से यह पहले से ही सबसे तेज़ boot होने वाला और सबसे responsive 3D application है।
  • एक उपयोगकर्ता ने शीर्षक को और स्पष्ट करने का अनुरोध किया।
  • अंत में, एक उपयोगकर्ता ने कहा कि VSE के साथ उसका पहला अनुभव खास अच्छा नहीं था, और उसने अपने अनुभव से जुड़ा एक लिंक साझा किया।