एआई के साथ शॉर्ट फिल्म: स्क्रिप्ट से फाइनल कट तक का पाइपलाइन
शॉर्ट फिल्म का मकसद पाइपलाइन है, कोई एक शॉट नहीं। लास्ट ट्रेन पच्चीस सेकंड की है और इसमें एक लीड, एक बस्कर, एक प्लेटफॉर्म और एक क्रोम केस है। यहाँ हर वह चरण है जिसने इसे बनाया, असली प्रॉम्प्ट के साथ, हर चरण के लिए मॉडल, और जहाँ पाइपलाइन ने पीछे हटने के लिए कहा।
- 13 मिनट में पढ़ें
अंग्रेज़ी से अपने आप अनुवाद किया गया। मूल पढ़ें
Last Train इस गाइड के लिए बनाई गई 25 सेकंड की फिलम है: Vale आखिरी ट्रेन के लिए दौड़ता है, उसे चूक जाता है, और हंसता है। इसमें सब कुछ कंपनी के अपने अकाउंट से आया असली आउटपुट है, जिसे नीचे दिए गए क्रम में लाइव कंपोजर्स पर बनाया गया है, और इसमें मौजूद हर व्यक्ति काल्पनिक है। उसी शॉट्स के सेट को consistency guide में ऑब्जेक्ट-बाय-ऑब्जेक्ट मापा गया है।
पहले दो ईमानदार सीमाएं। एक सेव किया गया कैरेक्टर अपने कपड़ों और लिखित विवरण को हर शॉट में ले जाता है; हमने यह नहीं मापा है कि यह शॉट-टू-शॉट एक ही व्यक्ति है या नहीं, और यह गाइड इस बात का दावा नहीं करती है। और कैरेक्टर को सीधे वीडियो मॉडल से जोड़ने पर या तो उसने इनकार कर दिया या स्टेशन खो गया, इसलिए यहाँ हर शॉट एक फ्रेम से शुरू होता है। दोनों बातें स्टेप्स में शामिल हैं।
क्या गलत हो सकता है
| गलती | यह क्यों फेल होता है | ठीक करें |
|---|---|---|
| कास्ट बनने से पहले पहला क्लिप शूट करना | हर शॉट अपना खुद का व्यक्ति, कोट और प्लेटफॉर्म बना लेता है | पहले कैरेक्टर, लोकेशन और प्रॉप स्टिल सेव करें |
| कैरेक्टर को सीधे वीडियो मॉडल पर भेजना | कुछ मॉडल्स फोटोरियलिस्टिक व्यक्ति को रेफरेंस के रूप में स्वीकार नहीं करते या उसे कैरी नहीं कर सकते; जिसने उसे लिया, उसने अपना खुद का प्लेटफॉर्म बना लिया | इमेज कंपोजर में कास्ट अटैच करके 16:9 फ्रेम बनाएं, फिर उस फ्रेम को एनिमेट करें |
| एक पूरे बीट के लिए एक लंबा शॉट | मोशन ड्रिफ्ट होता है, प्रॉप्स स्थान बदलते हैं, सेट दोहराया जाता है | प्रति शॉट 4 से 6 सेकंड, प्रत्येक में एक एक्शन; जहां ड्रिफ्ट हो, वहां कट करें |
| हर बार प्रॉप को अलग तरह से वर्णित करना | एक क्रोम केस ब्रीफकेस बन जाता है, फिर एक बैग | प्रॉप के लिए एक वाक्य, जिसे हर प्रॉम्प्ट में पेस्ट किया जाए, और इंsert्स के लिए उसकी एक स्टिल |
| हर क्लिप को ग्रेड करना | पांच क्लिप्स को पांच तरह से ग्रेड करना पांच अलग फिल्म्स जैसा दिखता है | स्टूडियो में टाइमलाइन को एक बार ग्रेड करें |
शुरू करने से पहले
- नामित बीट्स वाला एक स्क्रिप्ट। पांच बीट्स यानी पच्चीस सेकंड।
- प्रत्येक किरदार, प्रत्येक स्थान और प्रत्येक प्रॉप के लिए एक वाक्य, उसी तरह लिखा गया जैसे कॉस्ट्यूम या आर्ट डिपार्टमेंट लिखता। ये वाक्य हर प्रॉम्प्ट में बिना बदलाव के पेस्ट किए जाते हैं।
- एक NOLGIA अकाउंट। किरदार, लोकेशन, कंपोजर्स और स्टूडियो इसके साथ आते हैं।
- प्रत्येक चरण पर एक रीडो के लिए धैर्य। हमें एक की जरूरत थी, और गाइड बताता है कि कहां।
LAST TRAIN. Night. An underground platform, pale green tiles under cold fluorescent tubes. 1. Vale runs for the last train, a chrome case in one hand. 2. She passes Ozzy, the busker, who turns to watch. 3. The doors close in her face and the train pulls away. 4. The case, set down on the wet platform. 5. On the bench, out of breath, she laughs.कास्ट, सेट और प्रॉप सेव करें
Characters खोलें। एक नाम और कैरेक्टर का एक वाक्य विवरण के रूप में टाइप करें, रेफ़रेंस इमेज जोड़ें खोलें, और या तो एक फोटो अपलोड करें या पोर्ट्रेट प्रॉम्प्ट और एक मॉडल के साथ जनरेट करें का उपयोग करें। पोर्ट्रेट को रेफ़रेंस के रूप में चुनने के बाद, कैरेक्टर बनाएं दबाएं। हमने GPT Image 2.5 Flare पर Vale का पोर्ट्रेट बनाया और उसे उसके रेफ़रेंस के रूप में सेव किया, और Ozzy का भी इसी तरह।
Full-length portrait of a woman in her early twenties, platinum blonde sleek chin-length bob with a straight fringe, light olive skin, bold brows, wearing an oversized cherry-red leather bomber jacket open over a white ribbed tank, wide black jeans and chunky black platform lace-up boots, holding a folded transparent bubble umbrella, standing on an underground subway platform with pale green tiles and cold fluorescent tubes along the ceiling, wet floor reflections, thin haze. Photoreal, cinematic, editorial fashion photograph, no text, no logos.Locations खोलें और जगह के लिए भी यही करें: एक नाम, एक विवरण, कैनोनिकल विवरण के रूप में एक वाक्य, और आपकी लाइब्रेररी से एक स्टिल या एक अपलोड। हमारा प्लेटफ़ॉर्म Seedream 5.0 Pro स्टिल है। प्रॉप भी एक स्टिल है, जो इमेज कंपोज़र में बनाया गया है और लाइब्रेररी में रखा गया है; यह एक रेफ़रेंस इमेज के रूप में एक इंsert में और हर अन्य प्रॉम्प्ट में एक वाक्य के रूप में जाता है।




An empty underground subway platform at night: glossy pale green tiles with one dark green stripe at waist height, a long run of cold fluorescent tubes along the ceiling, wet floor with mirror reflections, thin haze, a yellow safety line along the platform edge, a single steel bench, the tunnel mouth glowing warm amber. No readable text or signs.हर शॉट को पहले एक फ्रेम के रूप में बनाएं
image composer खोलें। GPT Image 2.5 Flare चुनें, आकार को 16:9 पर सेट करें, फिर कैरेक्टर दबाएं और Vale चुनें, और लोकेशन दबाएं और Halcyon Street station चुनें। कंपोजर में प्रत्येक के लिए एक चिप दिखाई देता है। शॉट को एक क्षण के रूप में लिखें, प्रॉम्प्ट में @ का उपयोग करके कैरेक्टर का नाम लिखें, और इमेज जनरेट करें दबाएं। पांच फ्रेम, एक प्रति शॉट, एक वीडियो टेक से कम क्रेडिट खर्च करते हैं और यहीं पर वॉर्डरोब, प्रॉप्स और फ्रेमिंग तय होती हैं।
@Vale mid-sprint along the empty platform toward the camera, her red leather bomber flying open over the white tank, the folded transparent umbrella in her left hand and a small brushed-chrome hard-shell case with a black rubber handle and two black latches in her right, black platform boots splashing the wet tiles. Wide low shot, the cold fluorescent tubes above her, thin haze, the tunnel glowing warm amber behind. Cinematic film still, anamorphic, fine grain, no text.




सुझाव:जब दो लोग एक फ्रेम साझा करते हैं तो बताएं कि कौन कहाँ जाएगा. फ्रेम 2 बताता है कि कौन किसे पार करता है, ओज़ी कहाँ खड़ी है, और वह क्या ले जा रही है। हमारे पहले वर्जन में केस को वाक्य से छोड़ दिया गया था, इसलिए फ्रेम में केस नहीं था। कलास्ट में दो किरदार होने पर, कंपोज़र उन्हें आपके चुने हुए क्रम में नंबर देता है, और प्रॉम्प्ट में @Vale और @Ozzy उन संदर्भों से मेल खाते हैं।
फ्रेम को शॉट में एनिमेट करें
वीडियो कंपोज़र खोलें, Start from के तहत इमेज एनिमेट करें चुनें, स्टार्ट फ़्रेम जोड़ें दबाएं, फिर कोई एसेट चुनें दबाएं और अपनी लाइब्रेररी से फ्रेम चुनें। यह क्लिप का पहला फ्रेम बन जाता है। उस फ्रेम से होने वाली एक्शन लिखें, कैमरा मूव चिप दबाएं, लंबाई सेट करें, और जनरेट करें। हमने स्प्रिंट के लिए Kling v3 का उपयोग किया, जिसमें सबसे ज़्यादा मूवमेंट था, और बाकी चार शॉट्स के लिए Seedance 2.5 को 720p पर इस्तेमाल किया, हर शॉट 4 से 6 सेकंड का, और Studio में एक को छोटा काट दिया। दौड़ने, कूदने या भारीपन वाली किसी भी एक्शन के लिए, फ्रेम को Kling v3 या Seedance 2.5 पर एनिमेट करें।
She sprints straight toward the camera along the platform, the red leather bomber flying open, the chrome case in her right hand and the folded umbrella in her left, black platform boots splashing the wet tiles, hair bouncing with each stride, the cold fluorescent tubes and the warm amber tunnel glow behind her. Real sprint physics, cinematic, anamorphic, fine film grain.




ध्यान दें:फ्रेम पहले क्यों, और सीधे वीडियो मॉडल में किरदार क्यों नहीं. हमने तीन मॉडल्स पर सीधा रास्ता आज़माया। Seedance 2.0 Fast ने किसी भी क्रैडिट कटने से पहले Vale के रेफरेंस को मना कर दिया, यह कहते हुए कि यह किसी असली व्यक्ति की फोटो जैसा लगता है। Seedance 1.5 Pro ने भी मना कर दिया: यह किरदार का रेफरेंस बिल्कुल नहीं ले सकता। Seedance 2.5 ने उसे लिया और 16:9 क्लिप बनाई, लेकिन अपने प्लेटफॉर्म पर, खंभों के साथ और बिना हरी धारी या एम्बर टनल के, क्योंकि इस रास्ते पर केवल किरदार ही चलता है। किरदार और लोकेशन के साथ जुड़ी 16:9 फ्रेम, एनिमेटेड होने पर, दोनों को साथ ले जाती है।

स्कोर और इफेक्ट्स
फिल्म में कोई संवाद नहीं है, इसलिए साउंड ऑडियो कंपोजर audio composer में दो बार बनाया जाता है: Lyria 3.5 से एक स्कोर और ElevenLabs Sound Effects v2 से दो इफेक्ट्स, दरवाजे बंद होने की आवाज़ और जूतों के चलने की आवाज़। स्कोर को टेम्पो और मूड से बताएं, और हर इफेक्ट को एक इवेंट के रूप में वर्णित करें।
A tense, driving electronic cue at 118 bpm for a short film about missing the last train: pulsing arpeggiated synth, deep sub bass, a ticking hi-hat, a sudden drop to a single warm pad at the end, no vocals, cinematic underground nightSubway train doors closing: a two-tone chime, a pneumatic hiss, doors thud shut, then the train accelerates away through a tunnel with a rising electric whine and echo, station reverbStudio में कट, ग्रेड और एक्सपोर्ट करें
Timeline खोलें, नई टाइमलाइन दबाएं, प्रोजेक्ट और टाइमलॉइन का नाम दें, फिर मीडिया कॉलम में लइब्रेरि खोलें और + बटन के साथ पांच शॉट्स को क्रम में जोड़ें: हर बार दबाने पर क्लिप प्लेहेड पर एक नए ट्रैक में जोड़ी जाती है, और End प्लेहेड को मौजूदा सामग्री के अंत तक ले जाता है। शॉट 2 के लिए, सोर्स प्रीव्यू को 5 सेकंड तक ड्रैग करें और + दबाने से पहले मार्क आउट दबाएं, ताकि केवल इसके पहले 5 सेकंड ही शामिल हों। शुरुआत में स्कोर जोड़ें; यह 2 मिनट लंबा है, इसलिए प्लेहेड को पिक्चर के अंत पर रखें, कुछ भी सिलेक्ट न होने पर इसे स्प्लिट करने के लिए C दबाएं, टेल पर क्लिक करें और डिलीट करें दबाएं। जहां जूते जमीन पर पड़ते हैं और जहां दरवाजे बंद होते हैं, वहां दो इफेक्ट्स जोड़ें। फिर टूलबार से कलर खोलें जब कुछ भी सिलेक्ट न हो, और पूरी टाइमलॉइन के लिए एक फिल्म स्टॉक चुनें; हमारा CineStill 800T है।




पहलेबाद मेंवीडियो एक्सपोर्ट करें MP4 रेंडर करता है, और यह बिना किसी शुल्क के आपकी लाइब्रेररी में आ जाता है। इसके बगल में तीर एक्सपोर्ट मेनू खोलता है; Premiere Pro या DaVinci Resolve एक ZIP डाउनलोड करता है: sequence.xml, एक media फोल्डर जिसमें टाइमलाइन द्वारा उपयोग किए जाने वाले क्लिप्स, luts/canvas.cube के रूप में ग्रेड, और एक README.txt होता है जो उन चीजों की सूची देता है जो स्थानांतरित नहीं होती हैं। पहले इसे अनज़िप करें, फिर Premiere में File > Import करें और sequence.xml चुनें। एक्सपोर्ट पोस्ट उन अन्य चीजों के बारे में बताती है जो स्थानांतरित होती हैं।


किस काम के लिए कौन सा टूल
| स्टेज | कहां | हमने जो मॉडल इस्तेमाल किया |
|---|---|---|
| कास्ट | Image composer, फिर Characters | GPT Image 2.5 Flare |
| सेट और प्रॉप स्थिर छवियां | Image composer, फिर Locations | Seedream 5.0 Pro |
| फ्रेम्स | Characters और Location के साथ Image composer | GPT Image 2.5 Flare |
| शॉट | Video composer, Animate an image | स्प्रिंट के लिए Kling v3, बाकी के लिए Seedance 2.5 |
| प्रॉप के साथ Insert करें | सेट पर प्रॉप के फ्रेम के लिए Image composer, फिर Animate an image | GPT Image 2.5 Flare, Seedance 2.5 |
| स्कोर और इफेक्ट्स | Audio composer | Lyria 3.5, ElevenLabs Sound Effects v2 |
| कट, ग्रेड, एक्सपोर्ट | Studio | कोई मॉडल नहीं, कोई शुल्क नहीं |
जहाँ आप अभी भी रीजनरेट करते हैं
- एक मॉडल जो आपकी कस्ट को अस्वीकार करता है। Seedance 2.0 Fast ने Vale के रेफरेंस को अस्वीकार कर दिया। शब्द बदलने के बजाय मॉडल बदलें; अस्वीकृति चेकर को दर्शाती है, आपके प्रॉम्प्ट को नहीं।
- एक मॉडल जो एक किरदार को नहीं संभाल सकता। Seedance 1.5 Pro किसी भी शुल्क से पहले किरदार के रेफरेंस को अस्वीकार कर देता है, और Seedance 2.5 एक लेता है लेकिन उसके आसपास अपना सेट बनाता है। Location के साथ 16:9 फ्रेम के माध्यम से जाएं।
- एक कैमरा चिप जो ड्रिफ्ट करती है। शॉट 1 Locked off था, और फिर भी कैमरा पहले कुछ सेकंड के लिए उसके साथ पीछे की ओर ड्रिफ्ट हुआ। हर टेक पर मूवमेंट की जांच करें।
- एक प्रॉप जो आपने नहीं माँगा था। फ्रेम 3 में छाता वेल के सेव किए गए विवरण से आया था, प्रॉम्प्ट से नहीं। शॉट लिखने से पहले किरदार का विवरण पढ़ें, या बताएं कि प्रत्येक हाथ में क्या है।
- चेहरों। कपड़े, बाल और प्रॉप्स पाँचों शॉट्स में स्थिर रहते हैं; यह कि चेहरा एक ही व्यक्ति का है या नहीं, यहाँ मापा नहीं गया है।
इसकी कीमत क्या है
फ्रेम्स की कीमत प्रति इमेज तय होती है, शॉट्स की कीमत मॉडल, लंबाई और क्वालिटी के अनुसार, और स्कोर तथा प्रत्येक इफेक्ट की कीमत प्रति रन। स्टूडियो, कट और एक्सपोर्ट फ्री हैं। इस फ़िल्म में उपयोग किए गए मॉडल्स के लाइव रेट्स:
GPT Image 2.5 FlareEvery plan
Per image
Native 8 क्रेडिट · 2K 21 क्रेडिट · 4K 58 क्रेडिट
Seedream 5.0 ProEvery plan
Per image
1K 5 क्रेडिट · 2K 9 क्रेडिट
Kling v3Pro and up
Per 5s clip (audio on by default)
720p 35 क्रेडिट · 1080p 47 क्रेडिट · 4K 117 क्रेडिट
Seedance 2.5Pro and up
Per 5s clip
480p 26 क्रेडिट · 720p 56 क्रेडिट · 1080p 137 क्रेडिट
1080p renders at 16:9 and 9:16
Lyria 3.5Every plan
Per generation
Standard 5 क्रेडिट
ElevenLabs SFXEvery plan
Per generation
Standard 4 क्रेडिट
यह पेज लोड होते ही कैटलॉग से लाइव पढ़ा जाता है। जनरेट करने से पहले हर कीमत दिखाई जाती है। सभी दरें देखें.
चेकलिस्ट
- पहले फ्रेम से पहले किरदार, लोकेशन और प्रॉप सेव किए गए; प्रत्येक के लिए एक वाक्य, ज्यों का त्यों दोहराया गया।
- प्रत्येक शॉट के लिए एक 16:9 फ्रेम जिसमें किरदार और लोकेशन जोड़े गए हों; कपड़े और प्रॉप्स को फुल साइज़ में चेक किया गया।
- प्रत्येक फ्रेम को 4 से 6 सेकंड के लिए एनिमेट किया गया, एक एक्शन और एक कैमरा मूव के साथ।
- टेम्पो और मूड के अनुसार स्कोर; इफेक्ट्स में प्रत्येक के लिए एक इवेंट।
- जहाँ मॉडल ड्रिफ्ट करता है, वहाँ ट्रिम किया गया; टाइमलाइन पर एक ग्रेड; एक बार एक्सपोर्ट किया गया।
खुद आज़माएँ
अपने खुद के कैरेक्टर और लोकेशन को सेव करें, फिर GPT Image 2.5 Flare पर 16:9 में किरदारों और लोकेशन के साथ फ्रेम 1 का प्रॉम्प्ट इस्तेमाल करें, और Kling v3 पर 'Animate an image' में 'Locked off' चिप के साथ शॉट 1 का प्रॉम्प्ट इस्तेमाल करें। हमने फ्रेम 1 की रेसिपी दूसरी बार भी चलाई: यह उसी प्लेटफॉर्म पर लौटी, उसी जैकेट, बॉब हेयरस्टाइल, बूट्स, छाता और केस के साथ, केस उसके दाहिने हाथ में था जैसा लिखा गया था, लेकिन अलग स्टाइड में और बेंच उसके दूसरी तरफ था। पोज और छोटी चीजों में बदलाव की उम्मीद करें; कैरेक्टर और जगह रेफरेंस से स्थिर रहते हैं। नीचे दिए गए स्टिल्स हमारे किरदार, सेट और प्रॉप्स हैं; फ्रेम्स और शॉट्स ऊपर दिए गए हैं।
सामग्री
- Vale, पोर्ट्रेटWebP इमेज · 1536x2048 · 238 KBडाउनलोड करें
- Ozzy, पोर्ट्रेटWebP इमेज · 1536x2048 · 231 KBडाउनलोड करें
- स्टेशन स्टिलWebP इमेज · 1536x864 · 114 KBडाउनलोड करें
- क्रोम केस स्टिलWebP इमेज · 1280x1280 · 56 KBडाउनलोड करें
- फ्रेम 1, रनWebP इमेज · 2560x1440 · 353 KBडाउनलोड करें
सवाल और जवाब
- क्या हर शॉट में Vale एक ही व्यक्ति है?
- उसकी जैकेट, बाल, बूट्स, छाता और केस पांचों शॉट्स में स्थिर रहते हैं, और कंसिस्टेंसी गाइड इसे मापता है। क्या शॉट से शॉट में यह एक ही व्यक्ति है, यह हमने नहीं मापा है, इसलिए हम इसका दावा नहीं करते।
- हर शॉट से पहले फ्रेम क्यों बनाएं?
- एक फ्रेम एक वीडियो शॉट का एक छोटा हिस्सा खर्च करता है और यही वह जगह है जहां कपड़े, प्रॉप्स और फ्रेमिंग तय होती हैं। यह दो समस्याओं से भी बचाता है: एक वीडियो मॉडल का कैरेक्टर रेफरेंस को इनकार करना या छोड़ देना, और एक मॉडल जो उसे स्वीकार करता है लेकिन उसके आसपास अपना सेट बना लेता है।
- मुझे किस वीडियो मॉडल का उपयोग करना चाहिए?
- रनिंग शॉट के लिए, Kling v3: यह स्प्रिंट और उसके हाथों में मौजूद प्रॉप्स को विश्वसनीय बनाए रखता है। Seedance 2.0 Fast ने उसके रेफरेंस को इनकार कर दिया और Seedance 1.5 Pro एक को नहीं ले सकता, इसलिए शांत शॉट्स फ्रेम्स से Seedance 2.5 के हैं। वजन वाले किसी भी चीज़ के लिए, Kling v3 या Seedance 2.5 का उपयोग करें।
- फिल्म कितनी लंबी हो सकती है?
- जितनी आपकी शॉट लिस्ट। पच्चीस सेकंड 4 से 6 सेकंड के पांच शॉट्स थे। शॉट्स छोटे रखें; मॉडल लगभग 5 सेकंड के बाद ड्रिफ्ट और रिपीट होने लगते हैं।
- क्या कैरेक्टर्स बोल सकते हैं?
- इस फिल्म में कोई नहीं है। लाइनों के लिए, उन्हें ऑडियो कंपोजर में रिकॉर्ड करें और कट के नीचे रखें, या एक शॉट के लिए नेटिव स्पीच वाले मॉडल का उपयोग करें।
- क्या मैं इसे Premiere या Resolve में पूरा कर सकता हूँ?
- हाँ। Studio के Export मेनू से एक ZIP डाउनलोड होता है जिसमें सीक्वेंस, मीडिया और ग्रेड एक LUT के रूप में होते हैं। पहले उसे अनज़िप करें, फिर सीक्वेंस को इम्पोर्ट करें।
कास्ट के साथ शुरू करें
Characters खोलेंसंबंधित गाइड
फ़िल्ममेकिंग
शॉट्स के बीच कैरेक्टर और लोकेशन को एकसमान रखें
एक सेव किया हुआ कैरेक्टर, एक सेव किया हुआ लोकेशन और हर प्रॉप के लिए एक बार दोहराया गया वाक्य: एक फिल्म के पांच शॉट्स में वास्तव में क्या स्थिर रहा, वस्तु और रंग के हिसाब से मापा गया, और वे दो अंतर जो नहीं थे।
· 11 मिनट में पढ़ें
फ़िल्ममेकिंग
स्क्रिप्ट से वीडियो बनाएं, स्टेप बाय स्टेप
60 से 90 शब्दों की स्क्रिप्ट को शॉट्स में बांटें, वीडियो कंपोजर में कैमरा मूव के साथ हर शॉट जनरेट करें, नैरेशन रिकॉर्ड करें, स्टूडियो में इसे काटें और एक्सपोर्ट करें। हर स्टेप वास्तव में चलाया गया।
· 13 मिनट में पढ़ें
फ़िल्ममेकिंग
NOLGIA आपका DIT काम करता है: कैमरा कार्ड्स की कॉपी, चेक और नामकरण करें
कैमरा कार्ड्स की कॉपी दो ड्राइव्स पर लें, हर कॉपी को कार्ड से मिलाकर चेक करें, और ASC MHL मैनिफेस्ट, DIT रिपोर्ट और नामित फाइलें पाएं। मुफ्त, आपके अपने कंप्यूटर पर।
· 8 मिनट में पढ़ें




