वीडियो एन्कोडिंग डिजिटल वीडियो सिग्नल को न्यूनतम गुणवत्ता हानि के साथ भंडारण और नेटवर्क पर संचरण के लिए उपयुक्त फ़ॉर्मैट में संपीड़ित करने की प्रक्रिया है। एन्कोडिंग के बिना, एक मिनट की असम्पीडित 4K वीडियो लगभग 30 GB लेती है, जिससे इंटरनेट पर संचरण असंभव हो जाता है। Sandvine Global Internet Phenomena (2025) रिपोर्ट के अनुसार, वीडियो कुल इंटरनेट ट्रैफ़िक का 65% है, और एन्कोडिंग वह मुख्य तकनीक है जो इसे संभव बनाती है।
मुख्य बिंदु
वीडियो एन्कोडिंग असम्पीडित वीडियो सिग्नल को संपीड़न एल्गोरिदम का उपयोग करके डिजिटल फ़ॉर्मैट में बदलने की प्रक्रिया है। ये एल्गोरिदम, वीडियो कोडेक में कार्यान्वित, स्थानिक डोमेन (एक फ्रेम के अंदर) और लौकिक डोमेन (क्रमिक फ्रेम के बीच) दोनों में अतिरिक्त जानकारी हटाते हैं।
असम्पीडित वीडियो फ्रेम का एक क्रम है, प्रत्येक RGB या YUV फ़ॉर्मैट में पिक्सेल की एक सरणी के रूप में संग्रहीत होता है। संपीड़न के बिना, 30 FPS पर 1080p वीडियो के एक सेकंड के लिए लगभग 1.5 GB मेमोरी की आवश्यकता होती है। H.264 कोडेक इस स्ट्रीम को 3–5 Mbps तक संपीड़ित करता है, जो मूल आकार से 2500 गुना कम है।
वीडियो कोडेक दो प्रकार के संपीड़न का उपयोग करते हैं: इंट्रा-फ्रेम और इंटर-फ्रेम। इंट्रा-फ्रेम संपीड़न प्रत्येक फ्रेम पर स्वतंत्र रूप से लागू होता है, JPEG के समान एल्गोरिदम का उपयोग करता है: असतत कोसाइन ट्रांसफ़ॉर्म (DCT), क्वांटीकरण और एंट्रॉपी कोडिंग।
इंटर-फ्रेम संपीड़न क्रमिक फ्रेम के बीच अंतर का विश्लेषण करता है और केवल परिवर्तनों को एन्कोड करता है। यदि पृष्ठभूमि स्थिर है, तो कोडेक केवल एक बार पूरा फ्रेम (I-frame) भेजता है, और फिर केवल अंतर (P- और B-frames) भेजता है, जो कम गतिविधि वाले दृश्यों के लिए डेटा मात्रा को काफी कम करता है।
वीडियो कोडेक का चयन गुणवत्ता-से-आकार अनुपात, डिवाइस अनुकूलता और लाइसेंसिंग शुल्क निर्धारित करता है। चार मुख्य कोडेक मोबाइल ऐप्लिकेशन बाज़ार पर हावी हैं: H.264 (AVC), H.265 (HEVC), VP9 और AV1।
| कोडेक | मानक | वर्ष | H.264 की तुलना में संपीड़न | लाइसेंसिंग |
|---|---|---|---|---|
| H.264/AVC | MPEG-4 Part 10 | 2003 | 1x (आधार) | रॉयल्टी (MPEG LA) |
| H.265/HEVC | MPEG-H Part 2 | 2013 | 40–50% अधिक कुशल | रॉयल्टी (दो पूल) |
| VP9 | 2013 | 30–40% अधिक कुशल | मुक्त | |
| AV1 | AOM | 2018 | 50–60% अधिक कुशल | रॉयल्टी-मुक्त |
H.264 (AVC — Advanced Video Coding) सबसे अनुकूल वीडियो कोडेक बना हुआ है: यह 2005 से सभी मोबाइल डिवाइस, ब्राउज़र और स्मार्ट TV द्वारा समर्थित है। हार्डवेयर-त्वरित H.264 डिकोडिंग बजट डिवाइस पर भी उपलब्ध है, जो इसे सार्वभौमिक स्ट्रीम के लिए आदर्श बनाता है।
H.264 का मुख्य दोष आधुनिक कोडेक की तुलना में अपेक्षाकृत कम संपीड़न दक्षता है। समान बिटरेट पर, H.265 और AV1 काफी अधिक गुणवत्ता प्रदान करते हैं, जो विशेष रूप से HDR और 4K सामग्री के लिए महत्वपूर्ण है।
H.265 (HEVC — High Efficiency Video Coding) समान दृश्य गुणवत्ता पर H.264 की तुलना में 40–50% बेहतर संपीड़न प्रदान करता है। यह फ्रेम को ब्लॉक में अधिक लचीले विभाजन (16×16 के बजाय 64×64 पिक्सेल तक CTU) और बेहतर गति पूर्वानुमान एल्गोरिदम के माध्यम से प्राप्त किया जाता है।
HEVC सभी Apple डिवाइस (iPhone 6 से शुरू), Android (हार्डवेयर डिकोडिंग के साथ संस्करण 5.0 से) और अधिकांश स्मार्ट TV पर समर्थित है। HEVC लाइसेंसिंग शुल्क H.264 से अधिक है और दो पेटेंट पूल द्वारा प्रबंधित किया जाता है, जो कानूनी उपयोग को जटिल बनाता है।
AV1 Alliance for Open Media (AOM) द्वारा विकसित एक वीडियो कोडेक है, जो Google, Netflix, Amazon, Intel और Mozilla के नेतृत्व में एक संघ है। AV1 H.264 की तुलना में 50–60% बेहतर संपीड़न प्रदान करता है और पूरी तरह से रॉयल्टी-मुक्त है, जो इसे स्ट्रीमिंग सेवाओं के लिए आकर्षक बनाता है।
AV1 का मुख्य दोष एन्कोडिंग की उच्च कम्प्यूटेशनल जटिलता है। AV1 एन्कोडिंग समान हार्डवेयर पर H.264 की तुलना में 5–10 गुना धीमी हो सकती है, हालाँकि हार्डवेयर डिकोडिंग पहले से ही 2024–2025 के डिवाइस (Snapdragon 8 Gen 3, Apple A17 Pro) पर दिखाई दे रही है।
मोबाइल ऐप्लिकेशन में ऑडियो कोडेक वीडियो कोडेक से कम महत्वपूर्ण नहीं हैं। स्ट्रीमिंग वीडियो के लिए न्यूनतम विलंबता, उच्च गुणवत्ता और MP4 और WebM कंटेनरों के साथ अनुकूलता वाले ऑडियो की आवश्यकता होती है। तीन मुख्य ऑडियो कोडेक 99% मोबाइल स्ट्रीमिंग ऐप्लिकेशन को कवर करते हैं।
AAC (Advanced Audio Coding) MP3 का उत्तराधिकारी है, जिसे 1997 में MPEG द्वारा विकसित किया गया और iTunes, YouTube और Android के लिए मानक ऑडियो कोडेक बन गया। AAC 30% कम बिटरेट पर MP3 के समान गुणवत्ता प्रदान करता है और 7.1 तक मल्टी-चैनल ऑडियो का समर्थन करता है।
मोबाइल ऐप्लिकेशन के लिए, स्टीरियो के लिए 128–192 kbps पर AAC-LC और कम बिटरेट 32–64 kbps के लिए AAC-HE की सिफारिश की जाती है। हार्डवेयर AAC डिकोडिंग सभी आधुनिक डिवाइस पर उपलब्ध है, जो बिजली की खपत को कम करता है।
Opus IETF (RFC 6716) का एक ओपन ऑडियो कोडेक है, जो 6 से 510 kbps तक के बिटरेट पर सभी ऑडियो कोडेक के बीच सर्वोत्तम गुणवत्ता प्रदान करता है। Opus SILK (भाषण के लिए एल्गोरिदम) और CELT (संगीत के लिए) को जोड़ता है और सामग्री के आधार पर स्वचालित रूप से मोड बदलता है।
Opus का उपयोग WebRTC में वीडियो कॉल के लिए, Spotify और Discord ऐप्लिकेशन में किया जाता है, और iOS 11 और Android 5.0 से HLS में समर्थित है। Opus की कम विलंबता (AAC के 40–100 ms की तुलना में 5–26 ms) इसे लाइव प्रसारण और वीडियो कॉन्फ्रेंसिंग के लिए पसंदीदा विकल्प बनाती है।
एन्कोडिंग पैरामीटर अंतिम फ़ाइल आकार, वीडियो गुणवत्ता और डिवाइस अनुकूलता निर्धारित करते हैं। मोबाइल ऐप्लिकेशन डेवलपर को प्रत्येक प्रकार की सामग्री के लिए इष्टतम सेटिंग्स चुननी चाहिए: फ़िल्में, खेल प्रसारण, उपयोगकर्ता-निर्मित सामग्री।
बिटरेट वीडियो के एक सेकंड को एन्कोड करने के लिए उपयोग की जाने वाली बिट्स की संख्या है। लाइव प्रसारण के लिए CBR (स्थिर बिटरेट), संग्रहण भंडारण के लिए लक्ष्य गुणवत्ता के साथ VBR (परिवर्तनशील बिटरेट) और स्ट्रीमिंग के लिए ABR (औसत बिटरेट) होते हैं।
| रिज़ॉल्यूशन | H.264 (अनुशंसित) | H.265/HEVC | AV1 |
|---|---|---|---|
| 360p | 400–800 kbps | 250–500 kbps | 200–400 kbps |
| 720p | 1.5–4 Mbps | 1–2.5 Mbps | 0.8–2 Mbps |
| 1080p | 3–8 Mbps | 2–5 Mbps | 1.5–4 Mbps |
| 4K (2160p) | 15–40 Mbps | 10–25 Mbps | 8–20 Mbps |
CRF (Constant Rate Factor) x264 और x265 में एक एन्कोडिंग पैरामीटर है जो निश्चित बिटरेट के बजाय लक्ष्य गुणवत्ता निर्धारित करता है। CRF स्केल 0 (दोषरहित) से 51 (सबसे खराब गुणवत्ता) तक होता है, जिसमें 18–28 कार्य सीमा है। मोबाइल ऐप्लिकेशन के लिए, x264 के लिए CRF 23 और x265 के लिए CRF 25 की सिफारिश की जाती है।
CRF 18–20 प्रस्तुति सामग्री और ऑफ़लाइन देखने के लिए उच्च गुणवत्ता प्रदान करता है। CRF 24–28 स्ट्रीमिंग और उपयोगकर्ता-निर्मित सामग्री के लिए उपयुक्त है, जहाँ फ़ाइल का आकार पूर्ण गुणवत्ता से अधिक महत्वपूर्ण है।
H.264 मानक प्रोफ़ाइल (Baseline, Main, High) और स्तर (Level 1–5.2) को परिभाषित करता है जो अधिकतम वीडियो पैरामीटर को सीमित करते हैं। Baseline Profile सभी डिवाइस के साथ अनुकूल है लेकिन B-frames का समर्थन नहीं करता है। High Profile अधिकतम गुणवत्ता प्रदान करता है और 1080p सामग्री के लिए उपयोग किया जाता है।
4K स्ट्रीमिंग के लिए, Level 5.1 और उससे ऊपर की आवश्यकता है, जो 2018 से अधिकांश मोबाइल डिवाइस द्वारा समर्थित है। कोडेक स्तर अधिकतम रिज़ॉल्यूशन, बिटरेट और बफ़र आकार निर्धारित करता है, जो सभी प्रमाणित डिवाइस पर सही डिकोडिंग सुनिश्चित करता है।
स्ट्रीमिंग के लिए एन्कोडिंग संग्रहण एन्कोडिंग से भिन्न है क्योंकि इसमें कई गुणवत्ता वेरिएंट (ABR ladder) बनाने और नेटवर्क ट्रांसमिशन के लिए अनुकूलन की आवश्यकता होती है। सामग्री प्रदाता VOD के लिए रीयल-टाइम ट्रांसकोडिंग या प्री-एन्कोडिंग का उपयोग करते हैं।
मोबाइल ऐप्लिकेशन के लिए एक विशिष्ट ABR ladder में 4–6 वेरिएंट शामिल हैं: कमज़ोर नेटवर्क के लिए 144p (200 kbps) से Wi-Fi के लिए 1080p (8 Mbps) तक। अनुशंसित रिज़ॉल्यूशन: 144p, 240p, 360p, 480p, 720p, 1080p। 4K सामग्री के लिए, 1440p और 2160p जोड़े जाते हैं।
val mediaCodec = MediaCodec.createEncoderByType(
MediaFormat.MIMETYPE_VIDEO_AVC
)
val format = MediaFormat.createVideoFormat(
MediaFormat.MIMETYPE_VIDEO_AVC,
1280, 720
).apply {
setInteger(MediaFormat.KEY_BIT_RATE, 3_000_000)
setInteger(MediaFormat.KEY_FRAME_RATE, 30)
setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 2)
setInteger(MediaFormat.KEY_PROFILE,
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh)
setInteger(MediaFormat.KEY_LEVEL,
MediaCodecInfo.CodecProfileLevel.AVCLevel31)
}
mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
लाइव प्रसारण के लिए, कम विलंबता विशेष रूप से महत्वपूर्ण है। एन्कोडिंग सेटिंग्स को कोडेक इनपुट/आउटपुट विलंब को कम करना चाहिए: 1–2 सेकंड का GOP आकार (हर 30–60 फ्रेम) अनुशंसित है, B-frames अक्षम या न्यूनतम होने चाहिए, और H.264 के लिए Baseline Profile का उपयोग किया जाता है।
आधुनिक कम-विलंबता प्रोटोकॉल — LL-HLS और CMAF-Low Latency — को 1–2 सेकंड के सेगमेंट और आंशिक डाउनलोड (Partial Segments) के समर्थन के साथ खंडित एन्कोडिंग की आवश्यकता होती है। कोडेक को खंडित MP4 के लिए प्रत्येक सेगमेंट में moof-box का समर्थन करना चाहिए।
अक्सर पूछे जाने वाले प्रश्न
वीडियो एन्कोडिंग डेटा की मात्रा कम करने के लिए कोडेक का उपयोग करके डिजिटल वीडियो सिग्नल को संपीड़ित करने की प्रक्रिया है। मोबाइल ऐप्लिकेशन में, एन्कोडिंग वीडियो को प्रसारित और संग्रहीत करने की अनुमति देती है, जिससे डिवाइस स्क्रीन पर ध्यान देने योग्य गुणवत्ता हानि के बिना आकार सैकड़ों गुना कम हो जाता है।
H.264 पुराने डिवाइस के साथ अधिकतम अनुकूलता प्रदान करता है, जबकि H.265 समान गुणवत्ता पर 40–50% अधिक कुशल है। 1080p और उससे नीचे के लिए, H.264 पर्याप्त है; 4K के लिए H.265 या AV1 की सिफारिश की जाती है यदि डिवाइस समर्थन करता है।
बिटरेट वीडियो के प्रति सेकंड डेटा की मात्रा है। 1080p के लिए, H.264 के लिए इष्टतम बिटरेट 3–8 Mbps और H.265 के लिए 2–5 Mbps है। चुनाव सामग्री पर निर्भर करता है: गतिशील दृश्य (खेल) में उच्च बिटरेट की आवश्यकता होती है, स्थिर दृश्य (साक्षात्कार) में कम बिटरेट की।
VP9 Google से AV1 का पूर्ववर्ती है, जो H.265 के स्तर पर संपीड़न प्रदान करता है। AV1, VP9 की तुलना में 20–30% अधिक कुशलता से संपीड़ित करता है, लेकिन इसे 5–10 गुना अधिक एन्कोडिंग संसाधनों की आवश्यकता होती है। VP9 YouTube के लिए बेहतर है, AV1 Netflix और आधुनिक स्ट्रीमिंग सेवाओं के लिए।
लाइव प्रसारण के लिए, 1–2 सेकंड के GOP के साथ H.264 Baseline Profile का उपयोग करें, बिना B-frames के, 1080p के लिए 2–4 Mbps बिटरेट। LL-HLS के लिए खंडित MP4 (CMAF) सक्षम करें और MediaCodec या VideoToolbox के माध्यम से हार्डवेयर एन्कोडिंग का उपयोग करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें