इस लेख में आपको मीडिया फ़ाइल की बुनियादी बातों के बारे में पता चलेगा, जैसे कि कंटेनर के सिद्धांत. साथ ही, स्ट्रीम में इस्तेमाल किए जा सकने वाले कई उपलब्ध कोडेक फ़ॉर्मैट के बारे में भी बताया गया है. साथ ही, अडैप्टिव स्ट्रीमिंग, बिटरेट, और रिज़ॉल्यूशन जैसे विषयों पर धीरे से बताएं. हालांकि, हम बाद के सेक्शन में इन सभी के बारे में गहराई से जानेंगे.
वीडियो फ़ाइलें दिखाई जा रही हैं
आप सोच सकते हैं कि किसी वीडियो कैमरा से रॉ फ़ाइल लेकर, उसे सीधे वेब पर अपलोड किया जा सकता है. सही में, YouTube या Vimeo जैसी वीडियो स्ट्रीमिंग साइटें आपको लाइव स्ट्रीमिंग करने की सुविधा भी देती हैं. आम तौर पर, इसके लिए आपके कैमरे के एचडीएमआई पोर्ट से कनेक्ट करके, उसे कैप्चर कार्ड से प्रोसेस किया जाता है. ये सेवाएं, वीडियो प्रोसेसिंग और अपलोडिंग को काफ़ी आसान बनाती हैं. इनमें अडैप्टिव स्ट्रीमिंग और अलग-अलग रिज़ॉल्यूशन के लिए, ज़रूरी कई फ़ाइलें और मेनिफ़ेस्ट जनरेट करना शामिल है. साथ ही, ऐसी कई दूसरी जटिल और बारीकियों वाली ज़रूरतें भी होती हैं, जिनकी वजह से खुद को होस्ट करना थोड़ा मुश्किल हो जाता है. अपनी साइट से वीडियो तैयार करना और उसे दिखाना एक अलग मीडिया सर्वर होना चाहिए. अगर आपको इस बात की फ़िक्र होती है कि आपकी साइट पर आने वाले लोगों के अनुभव को ध्यान में रखते हुए, एक रॉ कैमरा फ़ाइल अपलोड करने की तुलना में, वीडियो बनाना थोड़ा मुश्किल है.
वीडियो फ़ाइलें कई तरह के फ़ॉर्मैट में उपलब्ध होती हैं. आम तौर पर, कैमरे के साथ दिखने वाला फ़ॉर्मैट .mov
फ़ाइल होता है. अगर आपके पास मिरर वाला आधुनिक कैमरा है, तो इसे .mp4
फ़ॉर्मैट में रखा जाता है.
.mov
, रिकॉर्ड करने, बदलाव करने, और प्रोडक्शन के बाद की अन्य प्रोसेस के लिए अच्छा है. हालांकि, फ़ाइल के साइज़ का मतलब है कि यह वेब पर स्ट्रीम करने के लिए सही नहीं है. साथ ही, किसी फ़ाइल का 4K फ़ॉर्मैट में .mp4
साइज़ की वजह से उसे मोबाइल पर बहुत मुश्किल से चलाया जाएगा. ब्राउज़र पर कई तरह के फ़ाइल फ़ॉर्मैट काम करते हैं. इसलिए, अडैप्टिव स्ट्रीमिंग की सुविधा देने के लिए, आपको ऑप्टिमाइज़ की गई कई फ़ाइलें और संभावित तौर पर एक मेनिफ़ेस्ट फ़ाइल बनानी होगी. फ़ाइलों को बदलने से पहले आपको उनके बारे में और उनकी विशेषताओं के बारे में कुछ बुनियादी बातों को समझना होगा.
कंटेनर, कोडेक, और स्ट्रीम?
आपके ऑपरेटिंग सिस्टम शेल में दिखने वाली फ़ाइल एक कंटेनर होती है, जिसकी पहचान फ़ाइल एक्सटेंशन (.mp4
, .webm
, .ogg
वगैरह) से की जाती है. कंटेनर में एक या ज़्यादा स्ट्रीम शामिल हैं. एक मीडिया फ़ाइल में स्ट्रीम की संख्या कितनी भी हो सकती है,
कई फ़ॉर्मैट फ़ॉर्मैट में, और बहुत से फ़ॉर्मैट हो सकते हैं.
इस सेक्शन के बाद में इस्तेमाल की गई सैंपल फ़ाइलों में ज़्यादा से ज़्यादा दो स्ट्रीम शामिल होंगी: एक ऑडियो स्ट्रीम और एक वीडियो स्ट्रीम. आपको कुछ दूसरे तरह के कैप्शन और डेटा भी दिख सकते हैं. ये दोनों ही इस लेख के दायरे से बाहर हैं. ऐसे कई मामले हैं जिनमें ऑडियो और वीडियो स्ट्रीम को अलग-अलग दिखाया जाता है. आपको मिलने वाली ज़्यादातर फ़ाइलों में सिर्फ़ एक ऑडियो स्ट्रीम और एक ही वीडियो स्ट्रीम होगी.
ऑडियो और वीडियो स्ट्रीम में, असल डेटा को एक कोडेक का इस्तेमाल करके कंप्रेस किया जाता है. कोडर या कोडर/डिकोडर, वीडियो या ऑडियो डेटा के लिए कंप्रेस करने का फ़ॉर्मैट होता है. कंटेनर और कोडेक के बीच अंतर करना ज़रूरी है, क्योंकि एक ही कंटेनर वाली फ़ाइलों के कॉन्टेंट को अलग-अलग कोडेक से एन्कोड किया जा सकता है.
नीचे दी गई इमेज में यह स्ट्रक्चर दिखाया गया है. बाईं ओर, बुनियादी कंटेनर स्ट्रक्चर है, जिसमें दो स्ट्रीम हैं. दाईं ओर, एक WebM फ़ाइल के लिए उस स्ट्रक्चर की खास जानकारी दी गई है.
![मीडिया फ़ाइल के स्ट्रक्चर की तुलना, काल्पनिक मीडिया फ़ाइल से करना.](https://web.dev/static/articles/media-file-basics/image/comparing-media-file-stru-58d7e1713333f.png?authuser=6&hl=hi)
WebM कंटेनर में फ़ाइलें दूसरे फ़ॉर्मैट की तुलना में बहुत छोटी हो सकती हैं, इसलिए वे मोबाइल साइटों के लिए स्ट्रीम करने का अच्छा विकल्प बन जाती हैं. माफ़ करें, सभी ब्राउज़र अप-टू-डेट कंटेनर और कोडेक के साथ काम नहीं करते. उदाहरण के लिए, WebM को विशेष रूप से वेब के लिए एक उच्च-क्वालिटी और ओपन सोर्स विकल्प के रूप में बनाया गया था, लेकिन इसका समर्थन अभी तक यूनिवर्सल नहीं है. ईमेल लिखने के समय, क्या मैं इसका इस्तेमाल कर सकता/सकती हूं के मुताबिक, Safari खास तौर पर एम्बेड किए गए वीडियो के लिए, WebM के साथ काम नहीं करता, खास तौर पर Safari. हालांकि, WebM को WebRTC में इस्तेमाल किए जाने वाले VP8 और VP9 कोडेक के साथ आंशिक रूप से काम किया जाता है. इसलिए, आपके लिए सबसे अच्छा विकल्प है कि आप फ़ॉलबैक वीडियो दें.
कोडेक के फ़ॉर्मैट
एक ही कंटेनर में कई फ़ाइल टाइप, एक से ज़्यादा कोडेक के साथ काम करते हैं. उपलब्ध वीडियो कोडेक और ऑडियो कोडेक की पूरी सूची अपने-आप में एक पूरी वेबसाइट हो जाएगी. अभी दिए गए लिंक एमडीएन की व्यावहारिक सूचियों के लिए हैं, जो वेब पर इस्तेमाल की जा सकती हैं. नीचे पसंदीदा फ़ाइल टाइप और उनके इस्तेमाल किए जा सकने वाले कोडेक दिए गए हैं. फ़ाइल टाइप के लिंक पर क्लिक करके, उन ब्राउज़र पर जाएं जिन पर ये लिंक काम करते हैं.
फ़ाइल टाइप | वीडियो कोडेक | ऑडियो कोडेक |
---|---|---|
MP4 | AV1, AVC (H.264)*, VP9 | AAC |
WebM | AV1, VP9* | वर्बिस, ओपस |
* पसंदीदा वीडियो कोडेक दिखाता है.
बिटरेट और रिज़ॉल्यूशन
बिटरेट, किसी स्ट्रीम के एक सेकंड को कोड में बदलने के लिए इस्तेमाल किए जाने वाले बिट की ज़्यादा से ज़्यादा संख्या होती है. एक सेकंड की स्ट्रीम को कोड में बदलने के लिए जितने ज़्यादा बिट इस्तेमाल किए जाएंगे, उतनी ही ज़्यादा संभावित जानकारी और फ़िडेलिटी होगी. हम बिटरेट में, इस कॉन्सेप्ट के बारे में ज़्यादा जानकारी देते हैं.
रिज़ॉल्यूशन, वीडियो के किसी एक फ़्रेम में मौजूद जानकारी की मात्रा होती है. इसे हर डाइमेंशन में लॉजिकल पिक्सल की संख्या के रूप में दिया जाता है. हमने रिज़ॉल्यूशन में इस कॉन्सेप्ट के बारे में ज़्यादा जानकारी दी है.
आगे, मीडिया ऐप्लिकेशन की बुनियादी बातों में, हम आपको दो कमांड लाइन टूल इस्तेमाल करके इन विशेषताओं की जांच करने का तरीका दिखाएंगे: शाका पैकेजर और FFmpeg.