वीडियो कंप्रेशन

ईमेल अटैचमेंट और Discord के लिए वीडियो फ़ाइल कैसे कंप्रेस करें

अपने ब्राउज़र में ही वीडियो को अटैचमेंट की सीमा से छोटा करें, और पहले से जान लें कि इसके बदले आपको क्या छोड़ना पड़ेगा।

सीमा उस नंबर से छोटी है जो आपको बताया गया था

मेल सर्वर आपकी फ़ाइल को कच्चे बाइट्स के रूप में नहीं भेजते। भेजते समय अटैचमेंट को base64 में एनकोड किया जाता है, और base64 को तीन बाइट ले जाने के लिए चार कैरेक्टर चाहिए होते हैं, इसलिए नेटवर्क पर जाने वाला मैसेज आपकी डिस्क पर रखी फ़ाइल से लगभग एक तिहाई बड़ा हो जाता है। Gmail की जानी-मानी 25 MB की सीमा इसी एनकोड किए गए मैसेज पर लागू होती है, उस फ़ाइल पर नहीं जिसे आपने फ़ाइल ब्राउज़र में चुना था। असल में लगभग 18 MB का वीडियो वह सबसे बड़ा साइज़ है जो भरोसे के साथ पहुँच जाता है, और हेडर व मैसेज का टेक्स्ट ऊपर से थोड़ी और जगह ले लेते हैं।

दूसरी सेवाएँ अपनी-अपनी सीमा तय करती हैं और उसे बदलती भी रहती हैं। Discord के फ़्री अकाउंट की अपलोड सीमा एक से ज़्यादा बार बदल चुकी है। Outlook, iCloud Mail और कंपनियों के Exchange सर्वर, सब अपनी सीमा ख़ुद तय करते हैं, और IT विभाग इसे और भी कम रख सकता है। जब ऐप आपकी फ़ाइल लेने से मना करे, तब वह जो नंबर दिखाए उस पर भरोसा करें, उस नंबर पर नहीं जो आपको कुछ साल पहले से याद है।

आपके हाथ में सिर्फ़ तीन चीज़ें हैं

हर वीडियो कंप्रेसर के पास, चाहे वह ब्राउज़र में चले या नहीं, काम करने के लिए यही तीन चीज़ें होती हैं: हर फ़्रेम में कितने पिक्सेल हैं, एनकोडर हर सेकंड कितने बिट खर्च कर सकता है, और क्लिप कितनी लंबी है। तीसरी चीज़ से आम तौर पर सबसे सस्ते में फ़ायदा मिलता है, और लोग उसी को भूल जाते हैं। शुरुआत के वे चालीस सेकंड काट देना, जिनमें कोई ट्राइपॉड के साथ जूझ रहा है, क्वालिटी की कितनी भी बारीक सेटिंग से ज़्यादा जगह बचाता है, और वैसे भी उन्हें कोई देखना नहीं चाहता था।

यहाँ का कंप्रेसर आपके सामने स्लाइडरों की कतार रखने के बजाय पहली दो चीज़ें आपके लिए ख़ुद सेट कर देता है। फ़्रेम की लंबी साइड 720 पिक्सेल पर सीमित रहती है, इसलिए 1080p की क्लिप 720 पिक्सेल चौड़ी होकर लौटती है। बिट का बजट किसी तय नंबर से नहीं, बल्कि इस बात से निकाला जाता है कि सोर्स का वीडियो ट्रैक असल में कितने बिट खर्च कर रहा था, और फ़ोन पर रिकॉर्ड की गई आम 1080p क्लिप के लिए यह मूल वीडियो बिटरेट का लगभग पाँचवाँ हिस्सा बैठता है। बजट पर एक ऊपरी सीमा भी लगी है, ताकि वह कभी सोर्स के बिटरेट के आस-पास न पहुँचे। यह सीमा इसलिए है क्योंकि कभी एक तय न्यूनतम बिटरेट पहले से ही किफ़ायती ढंग से एनकोड हुई क्लिप के बिटरेट से ऊपर पड़ता था, जिससे कंप्रेस करने पर क्लिप और बड़ी हो जाती थी।

ऑडियो ट्रैक एक न्यूनतम सीमा तय कर देता है

जब तेज़ रास्ता चलता है, तो ऑडियो जैसा का तैसा कॉपी हो जाता है। न उसे डिकोड किया जाता है, न दोबारा एनकोड, न छोटा। इससे उसकी आवाज़ बिल्कुल पहले जैसी रहती है और प्रोसेसिंग में कोई समय नहीं लगता, लेकिन इसका मतलब यह भी है कि ऑडियो एक तय खर्च है जिसे यहाँ कंप्रेस करके घटाया नहीं जा सकता। किसी लंबी क्लिप में, जहाँ कोई कैमरे के सामने बोल रहा है, तस्वीर मुश्किल से हिलती है और आवाज़ कभी रुकती नहीं, बचे हुए साइज़ का ज़्यादातर हिस्सा ऑडियो ही हो सकता है। अगर आउटपुट अब भी बहुत बड़ा है और तस्वीर पहले ही धुंधली-सी दिखने लगी है, तो वीडियो को और दबाने से आपका काम नहीं बनेगा।

रफ़्तार आपकी मशीन पर निर्भर करती है, फ़ाइल पर नहीं

यह पेज के साथ आने वाले किसी कंपाइल किए गए एनकोडर पर नहीं, बल्कि WebCodecs API के ज़रिए ब्राउज़र के अपने वीडियो कोडेक पर चलता है। जहाँ आपकी मशीन ब्राउज़र को हार्डवेयर वीडियो एनकोडिंग की सुविधा देती है, वहाँ यह क्लिप को उसके चलने की रफ़्तार से कई गुना तेज़ प्रोसेस कर देता है। जहाँ नहीं देती, वहाँ सॉफ़्टवेयर एनकोडिंग वीडियो को बस बैठकर देख लेने से भी धीमी हो सकती है।

टूल काम करते हुए ख़ुद अपनी रफ़्तार नापता रहता है। अगर अनुमान कहता है कि यह रियल टाइम से धीमा चलेगा, तो यह वह रास्ता छोड़ देता है और इसके बजाय वीडियो को कैनवास से रिकॉर्ड करने लगता है। यह दूसरा तरीक़ा हमेशा कम से कम उतना समय लेता है जितनी लंबी क्लिप है, क्योंकि यह प्लेबैक की रफ़्तार पर लाइव स्ट्रीम रिकॉर्ड करता है। तीन मिनट के वीडियो का मतलब है तीन मिनट का इंतज़ार। इस दौरान टैब को सामने खुला रखें, क्योंकि ब्राउज़र बैकग्राउंड वाले टैब की रफ़्तार कम कर देते हैं और इससे इंतज़ार और लंबा हो जाएगा।

यह तरीक़ा कहाँ जवाब दे देता है

पूरी फ़ाइल मेमोरी में पढ़ी जाती है, डीमक्स किए गए फ़्रेम मेमोरी में रखे जाते हैं, और तैयार MP4 भी आपको देने से पहले मेमोरी में ही जोड़ा जाता है। सबसे ज़्यादा खपत के समय मेमोरी सोर्स फ़ाइल के साइज़ से कई गुना तक पहुँच जाती है। फ़ोन की क्लिप या स्क्रीन रिकॉर्डिंग आराम से चल जाती है। आधे घंटे की 4K फ़ाइल देना ब्राउज़र टैब से ऐसा काम करवाना है जिसके लिए वह कभी बना ही नहीं था, और वह या तो रेंगने लगेगा या क्रैश हो जाएगा।

शुरू करने से पहले कुछ और सीमाएँ जान लेना अच्छा है:

  • तेज़ रास्ते के लिए MP4 या MOV कंटेनर चाहिए। WebM और MKV फ़ाइलें इसके बजाय धीमे, रियल टाइम वाले रास्ते से जाती हैं।
  • सिर्फ़ एक प्रीसेट है और क्वालिटी चुनने का कोई विकल्प नहीं, इसलिए अगर नतीजा आपके लक्ष्य से बड़ा निकले, तो थोड़ा आगे-पीछे करने के लिए कोई सेटिंग नहीं है।
  • टैब बंद करने या मशीन को स्लीप में जाने देने पर काम वहीं छूट जाता है। आधा-अधूरा कुछ भी सेव नहीं होता।
  • जो ऑडियो AAC नहीं है, उसे सीधे कॉपी नहीं किया जा सकता, और इससे पूरा काम धीमे रास्ते पर चला जाता है।

कब डेस्कटॉप टूल बेहतर जवाब है

HandBrake और ffmpeg तय फ़ाइल साइज़ तक इससे कहीं ज़्यादा सटीकता से पहुँचते हैं, क्योंकि वे दो पास में काम कर सकते हैं: एक में वीडियो को देखते हैं, दूसरे में बिट वहाँ खर्च करते हैं जहाँ उनकी सच में ज़रूरत है। वे घंटे भर लंबी फ़ाइलें और ऐसी फ़ाइलों से भरे पूरे फ़ोल्डर संभाल लेते हैं, आपको कोडेक और प्रोफ़ाइल चुनने देते हैं, और इस बात से बंधे नहीं होते कि एक ब्राउज़र टैब कितनी मेमोरी ले सकता है। अगर आप कभी-कभार से ज़्यादा वीडियो कंप्रेस करते हैं, तो इनमें से कोई एक इंस्टॉल कर लें।

कभी-कभी सही जवाब यह होता है कि कंप्रेस किया ही न जाए। अगर फ़ाइल 2 GB की है, तो उसे कितना भी दबा लें, वह ब्लॉकों का धुंधला ढेर बने बिना ईमेल में नहीं समाएगी। उसे किसी शेयर्ड ड्राइव में रखें और लिंक भेज दें। कंप्रेशन उस क्लिप के लिए है जो सीमा के क़रीब है, उसके लिए नहीं जो सीमा से पचास गुना बड़ी है।

आपका वीडियो आपकी मशीन से बाहर नहीं जाता

वीडियो कभी अपलोड नहीं होता। ऊपर बताया गया सब कुछ उसी पेज के अंदर होता है जो आपने पहले से खोल रखा है, और जब क्लिप कोई मेडिकल स्कैन, रिकॉर्ड किया गया कानूनी बयान या किसी बच्चे के स्कूल का नाटक हो, तो यह बात जितनी लगती है उससे ज़्यादा मायने रखती है। इसे आँख मूँदकर मानने की ज़रूरत नहीं है: अपने ब्राउज़र के डेवलपर टूल खोलें, नेटवर्क टैब पर जाएँ और कुछ कंप्रेस करें। किसी भी रिक्वेस्ट में आपकी फ़ाइल नहीं जाती, क्योंकि ऐसी कोई रिक्वेस्ट भेजी ही नहीं जाती।

आज़माएँ

वीडियो कंप्रेसर आपके वीडियो को इसी टैब में कम बिटरेट पर दोबारा एनकोड करता है, बिना कुछ अपलोड किए।

वीडियो कंप्रेसर खोलें