इस दस्तावेज़ में, Android प्लैटफ़ॉर्म पर काम करने वाले मीडिया कोडेक, कंटेनर, और नेटवर्क प्रोटोकॉल के बारे में बताया गया है.
यहां दी गई टेबल में, Android प्लैटफ़ॉर्म में काम करने वाले मीडिया फ़ॉर्मैट के बारे में बताया गया है. YES का मतलब है कि यह फ़ॉर्मैट, Android के सभी वर्शन पर काम करने वाले फ़ोन और टैबलेट पर उपलब्ध है. अगर किसी Android प्लैटफ़ॉर्म के बारे में बताया गया है, तो यह फ़ॉर्मैट उस वर्शन और उसके बाद के सभी वर्शन पर काम करने वाले हैंडसेट और टैबलेट पर उपलब्ध होगा. ऐसा हो सकता है कि यह फ़ॉर्मैट, पुराने वर्शन में भी उपलब्ध हो. हालांकि, इसकी गारंटी नहीं है. हैंडसेट और टैबलेट के अलावा, अन्य डिवाइसों पर मीडिया फ़ॉर्मैट के लिए सहायता अलग-अलग हो सकती है.
ध्यान दें कि किसी मोबाइल डिवाइस पर, इन टेबल में नहीं दिए गए अन्य फ़ॉर्मैट या फ़ाइल टाइप भी काम कर सकते हैं. इसके अलावा, अगर सीधे तौर पर MediaCodec का इस्तेमाल किया जाता है, तो उपलब्ध किसी भी मीडिया फ़ॉर्मैट को ऐक्सेस किया जा सकता है. भले ही, वह फ़ाइल टाइप और कंटेनर फ़ॉर्मैट के साथ काम न करता हो.
ऑडियो के लिए सहायता
| फ़ॉर्मैट | एन्कोडर | डिकोड करने वाला डिवाइस | फ़ाइल टाइप कंटेनर फ़ॉर्मैट | जानकारी | |
|---|---|---|---|---|---|
| एक्सट्रैक्टर | मक्सर | ||||
| AAC LC | हां | हां |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF not supported) • MPEG-TS (.ts, not seekable, Android 3.0+) |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF not supported) • MPEG-TS (not sure) (.ts, not seekable, Android 3.0+) |
मोनो/स्टीरियो/5.0/5.1 कॉन्टेंट के साथ काम करता है. इसके लिए, सैंपलिंग रेट 8 से 48 किलोहर्ट्ज़ के बीच होना चाहिए. |
| HE-AACv1 (AAC+) | Android 4.1+ | हां | |||
| HE-AACv2 (बेहतर AAC+) | हां | स्टीरियो/5.0/5.1 कॉन्टेंट के साथ काम करता है. इसके लिए, सैंपलिंग रेट 8 से 48 किलोहर्ट्ज़ के बीच होना चाहिए. | |||
| xHE-AAC | Android 9 या इसके बाद के वर्शन वाले डिवाइसों पर उपलब्ध है | 8 से 48 किलोहर्ट्ज़ के स्टैंडर्ड सैंपलिंग रेट के साथ, ज़्यादा से ज़्यादा 8 चैनल वाला कॉन्टेंट इस्तेमाल किया जा सकता है | |||
| एएसी ईएलडी (बेहतर लो डिले एएसी) | Android 4.1+ | Android 4.1+ | मोनो/स्टीरियो कॉन्टेंट के लिए सहायता. इसमें 16 से 48 किलोहर्ट्ज़ तक के स्टैंडर्ड सैंपलिंग रेट इस्तेमाल किए जा सकते हैं | ||
| AMR-NB | हां | हां |
• 3GPP (.3gp) • AMR (.amr) |
• 3GPP (.3gp) • AMR (.amr) |
8 किलोहर्ट्ज़ पर सैंपल किए गए 4.75 से 12.2 केबीपीएस |
| AMR-WB | हां | हां | 6.60 kbit/s से 23.85 kbit/s तक की 9 दरें, जिन्हें 16kHz पर सैंपल किया गया है | ||
| FLAC | Android 4.1+ | Android 3.1+ |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10+) • Matroska (.mkv) |
मोनो/स्टीरियो (मल्टीचैनल नहीं). सैंपल रेट 48 किलोहर्ट्ज़ तक (हालांकि, 44.1 किलोहर्ट्ज़ आउटपुट वाले डिवाइसों पर 44.1 किलोहर्ट्ज़ का सुझाव दिया जाता है, क्योंकि 48 से 44.1 किलोहर्ट्ज़ डाउनसैंपलर में लो-पास फ़िल्टर शामिल नहीं होता है). 16-बिट का सुझाव दिया जाता है; 24-बिट के लिए कोई डिथर लागू नहीं किया गया है. | |
| MIDI | हां |
• टाइप 0 और 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
एमआईडीआई टाइप 0 और 1. DLS के वर्शन 1 और 2. XMF और Mobile XMF. RTTTL/RTX, OTA, और iMelody फ़ॉर्मैट में रिंगटोन सेट करने की सुविधा | ||
| MP3 | हां |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10+) • Matroska (.mkv, Android 10+) |
मोनो/स्टीरियो 8 से 320 केबीपीएस कॉन्स्टेंट (सीबीआर) या वैरिएबल बिट-रेट (वीबीआर) | ||
| Opus | Android 10+ | Android 5.0 या इसके बाद के वर्शन |
• Ogg (.ogg) • MPEG-4 (.mp4) • Matroska (.mkv) |
• Ogg (.ogg) • WebM (.webm) |
|
| PCM/WAVE | Android 4.1+ | हां | WAVE (.wav) | 8- और 16-बिट लीनियर पीसीएम (हार्डवेयर की सीमा तक की दरें). कच्ची पीसीएम रिकॉर्डिंग के लिए सैंपलिंग रेट, 8000, 16000, और 44100 हर्ट्ज़. | |
| Vorbis | हां |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0+) • MPEG-4 (.mp4, .m4a, Android 10+) |
• WebM (.webm) | ||
वीडियो विज्ञापन के लिए सुविधा
वीडियो फ़ॉर्मैट
| फ़ॉर्मैट | एन्कोडर | डिकोड करने वाला डिवाइस | फ़ाइल टाइप कंटेनर फ़ॉर्मैट | जानकारी | |
|---|---|---|---|---|---|
| एक्सट्रैक्टर | मक्सर | ||||
| H.263 | हां | हां |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
Android 7.0 और इसके बाद के वर्शन में, H.263 कोडेक का इस्तेमाल करना ज़रूरी नहीं है |
| H.264 AVC बेसलाइन प्रोफ़ाइल (बीपी) |
Android 3.0+ | हां |
• 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, सिर्फ़ AAC ऑडियो, खोजा नहीं जा सकता, Android 3.0+) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
|
| H.264 AVC मेन प्रोफ़ाइल (एमपी) |
Android 6.0 और इसके बाद के वर्शन | हां | डिकोडर ज़रूरी है, एन्कोडर का इस्तेमाल करने का सुझाव दिया जाता है. | ||
| H.265 HEVC | Android 5.0+ |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | मोबाइल डिवाइसों के लिए मुख्य प्रोफ़ाइल का लेवल 3 और Android TV के लिए मुख्य प्रोफ़ाइल का लेवल 4.1 | |
| MPEG-4 SP | हां | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | ||
| VP8 | Android 4.3+ | Android 2.3.3+ |
• WebM (.webm) • Matroska (.mkv, Android 4.0+) |
• WebM (.webm) | सिर्फ़ Android 4.0 और इसके बाद के वर्शन पर स्ट्रीम किया जा सकता है |
| VP9 | Android 4.4+ |
• WebM (.webm) • Matroska (.mkv) • MPEG-4 (.mp4) |
• WebM (.webm) | ||
| AV1 | Android 14 या इसके बाद के वर्शन | Android 10+ |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | Android 14 से, एनकोडर और डिकोडर का इस्तेमाल करना ज़रूरी है. |
| एपीवी | Android 16+ | Android 16+ | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | Android 16 से, एनकोडर और डिकोडर का इस्तेमाल करना ज़रूरी है. |
वीडियो एन्कोडिंग के सुझाव
नीचे दी गई टेबल में, Android मीडिया फ़्रेमवर्क की वीडियो एन्कोडिंग प्रोफ़ाइलें और पैरामीटर दिए गए हैं. इन्हें H.264 बेसलाइन प्रोफ़ाइल कोडेक का इस्तेमाल करके वीडियो चलाने के लिए सुझाया गया है. यही सुझाव, Main Profile कोडेक पर भी लागू होते हैं. यह कोडेक सिर्फ़ Android 6.0 और इसके बाद के वर्शन में उपलब्ध है.
| एसडी (कम क्वालिटी) | एसडी (अच्छी क्वालिटी) | एचडी 720 पिक्सल (सभी डिवाइसों पर उपलब्ध नहीं है) | |
|---|---|---|---|
| वीडियो का रिज़ॉल्यूशन | 176 x 144 पिक्सल | 480 x 360 पिक्सल | 1280 x 720 पिक्सल |
| वीडियो का फ़्रेम रेट | 12 एफ़पीएस | 30 एफ़पीएस | 30 एफ़पीएस |
| वीडियो बिटरेट | 56 केबीपीएस | 500 केबीपीएस | 2 एमबीपीएस |
| ऑडियो कोडेक | AAC-LC | AAC-LC | AAC-LC |
| ऑडियो चैनल | 1 (मोनो) | 2 (स्टीरियो) | 2 (स्टीरियो) |
| ऑडियो बिटरेट | 24 केबीपीएस | 128 केबीपीएस | 192 केबीपीएस |
नीचे दी गई टेबल में, Android मीडिया फ़्रेमवर्क की वीडियो एन्कोडिंग प्रोफ़ाइलों और पैरामीटर की सूची दी गई है. इन्हें VP8 मीडिया कोडेक का इस्तेमाल करके वीडियो चलाने के लिए सुझाया गया है.
| एसडी (कम क्वालिटी) | एसडी (अच्छी क्वालिटी) | एचडी 720 पिक्सल (सभी डिवाइसों पर उपलब्ध नहीं है) | एचडी 1080 पिक्सल (सभी डिवाइसों पर उपलब्ध नहीं है) | |
|---|---|---|---|---|
| वीडियो का रिज़ॉल्यूशन | 320 x 180 पिक्सल | 640 x 360 पिक्सल | 1280 x 720 पिक्सल | 1920 x 1080 पिक्सल |
| वीडियो का फ़्रेम रेट | 30 एफ़पीएस | 30 एफ़पीएस | 30 एफ़पीएस | 30 एफ़पीएस |
| वीडियो बिटरेट | 800 केबीपीएस | 2 एमबीपीएस | 4 एमबीपीएस | 10 एमबीपीएस |
वीडियो डिकोडिंग के सुझाव
डिवाइसों पर, एक ही स्ट्रीम में वीडियो के रिज़ॉल्यूशन और फ़्रेम रेट को डाइनैमिक तरीके से स्विच करने की सुविधा होनी चाहिए. इसके लिए, डिवाइसों पर स्टैंडर्ड Android API का इस्तेमाल किया जाना चाहिए. यह सुविधा, VP8, VP9, H.264, और H.265 कोडेक के लिए रीयल टाइम में काम करनी चाहिए. साथ ही, यह सुविधा डिवाइस पर हर कोडेक के लिए उपलब्ध ज़्यादा से ज़्यादा रिज़ॉल्यूशन तक काम करनी चाहिए.
Dolby Vision डिकोडर के साथ काम करने वाले सिस्टम को इन दिशा-निर्देशों का पालन करना होगा:
- Dolby Vision की सुविधा के साथ काम करने वाला एक्सट्रैक्टर उपलब्ध कराएं.
- डिवाइस की स्क्रीन या स्टैंडर्ड वीडियो आउटपुट पोर्ट (जैसे, एचडीएमआई) पर Dolby Vision कॉन्टेंट को सही तरीके से डिसप्ले करना.
- अगर पुराने सिस्टम के साथ काम करने वाली बेस-लेयर मौजूद हैं, तो उनके ट्रैक इंडेक्स को कंबाइंड डॉल्बी विज़न लेयर के ट्रैक इंडेक्स के बराबर सेट करें.
वीडियो स्ट्रीमिंग के लिए ज़रूरी शर्तें
एचटीटीपी या आरटीएसपी पर स्ट्रीम किए जाने वाले वीडियो कॉन्टेंट के लिए, ये अतिरिक्त ज़रूरी शर्तें हैं:
- 3GPP और MPEG-4 कंटेनर के लिए,
moovऐटम, किसी भीmdatऐटम से पहले होना चाहिए. हालांकि, यहftypऐटम के बाद होना चाहिए. - 3GPP, MPEG-4, और WebM कंटेनर के लिए, एक ही टाइम ऑफ़सेट से जुड़े ऑडियो और वीडियो सैंपल के बीच का अंतर 500 केबी से ज़्यादा नहीं होना चाहिए. ऑडियो/वीडियो के बीच के अंतर को कम करने के लिए, ऑडियो और वीडियो को छोटे-छोटे हिस्सों में इंटरलीव करें.
इमेज के लिए सहायता
| फ़ॉर्मैट | एन्कोडर | डिकोड करने वाला डिवाइस | जानकारी | फ़ाइल टाइप कंटेनर फ़ॉर्मैट |
|---|---|---|---|---|
| BMP | हां | BMP (.bmp) | ||
| GIF | हां | GIF (.gif) | ||
| JPEG | हां | हां | बेस+प्रोग्रेसिव | JPEG (.jpg) |
| PNG | हां | हां | PNG (.png) | |
| WebP |
Android 4.0 या इसके बाद के वर्शन फ़ाइल कंप्रेस करने से क्वालिटी पर असर न पड़ना: Android 10 या इसके बाद के वर्शन पारदर्शिता: Android 4.2.1 या इसके बाद के वर्शन |
Android 4.0 या इसके बाद के वर्शन बिना क्वालिटी में बदलाव किए: Android 4.2.1 या इसके बाद के वर्शन पारदर्शिता: Android 4.2.1 या इसके बाद के वर्शन |
Android 10 पर, क्वालिटी को 100 पर सेट करके लॉसलेस एन्कोडिंग की जा सकती है. | WebP (.webp) |
| HEIF |
Android 10 या इसके बाद के वर्शन वाले डिवाइस ( MediaCodec या HeifWriter के ज़रिए; Bitmap.compress में नहीं)
|
Android 9.0 या इसके बाद का वर्शन | डिवाइस का इस्तेमाल करना ज़रूरी नहीं है. देखें कि ImageDecoder.isMimeTypeSupported("image/heif") में 8-बिट की सुविधा काम करती है या नहीं. 10-बिट डिकोडिंग के लिए, HEVC Main10 प्रोफ़ाइल की ज़रूरत होती है. |
HEIF (.heic; .heif) |
| AVIF (बेसलाइन प्रोफ़ाइल) |
Android 14 या इसके बाद के वर्शन वाले डिवाइस ( MediaCodec के ज़रिए; Bitmap.compress में नहीं)
|
Android 12+ | Android 12 और इसके बाद के वर्शन पर, 8-बिट डिकोडिंग की सुविधा काम करती है. 10-बिट डिकोडिंग की सुविधा का इस्तेमाल करना ज़रूरी नहीं है. 10-बिट डिकोडिंग की सुविधा के बारे में जानने के लिए, ImageDecoder.isMimeTypeSupported("image/avif") देखें. अगर यह सुविधा काम नहीं करती है, तब भी 8-बिट डिकोडिंग की सुविधा काम करेगी. |
AVIF (.avif) |
नेटवर्क प्रोटोकॉल
ऑडियो और वीडियो चलाने के लिए, यहां दिए गए नेटवर्क प्रोटोकॉल इस्तेमाल किए जा सकते हैं:
- आरटीएसपी (आरटीपी, एसडीपी)
- एचटीटीपी/एचटीटीपीएस प्रोग्रेसिव स्ट्रीमिंग
- एचटीटीपी/एचटीटीपीएस लाइव स्ट्रीमिंग ड्राफ़्ट प्रोटोकॉल:
- सिर्फ़ MPEG-2 टीएस मीडिया फ़ाइलें
- प्रोटोकॉल वर्शन 3, Android 4.0 और इसके बाद के वर्शन
- प्रोटोकॉल वर्शन 2 Android 3.x
- Android 3.0 से पहले के वर्शन पर काम नहीं करता
ध्यान दें: Android 3.1 से पहले के वर्शन में, एचटीटीपीएस का इस्तेमाल नहीं किया जा सकता.
एचडीआर वीडियो फ़ॉर्मैट
ओईएम, Android के एचडीआर आर्किटेक्चर की मदद से, अपनी पसंद का कोई भी एचडीआर फ़ॉर्मैट चालू कर सकते हैं. यह आर्किटेक्चर, एचडीआर फ़ॉर्मैट की मुख्य ज़रूरतें पूरी करता है: 10-बिट बफ़र, मेटाडेटा (स्टैटिक, डाइनैमिक, और कोई नहीं), ट्रांसफ़र फ़ंक्शन, और कलर स्पेस हैंडलिंग.
डेवलपर के लिए एक जैसा अनुभव देने और एचडीआर के इस्तेमाल के मुख्य उदाहरणों को हल करने के लिए, हम चाहते हैं कि ओईएम, एचडीआर की सुविधा वाले डिवाइसों पर कुछ बुनियादी फ़ॉर्मैट के साथ काम करें:
- प्रोफ़ेशनल कॉन्टेंट को चलाने के लिए, जैसे कि फ़िल्में स्ट्रीम करने के लिए, हमें HDR10 की ज़रूरत होती है.
- उपयोगकर्ता के बनाए गए कॉन्टेंट को कैप्चर करने और चलाने के लिए, हमें HLG10 की ज़रूरत होती है. इससे Android डिवाइसों पर एक जैसा अनुभव मिलता है.
एचडीआर की सुविधा जोड़ने वाले ओईएम को इन फ़ॉर्मैट के साथ काम करना होगा. हालांकि, वे HDR10+ या Dolby Vision जैसे अन्य फ़ॉर्मैट के साथ भी काम कर सकते हैं.
| फ़ॉर्मैट | ट्रांसफ़र फ़ंक्शन | मेटाडेटा | कोडेक | बिट डेप्थ |
|---|---|---|---|---|
| HLG10 | HLG | नहीं | HEVC | 10-बिट |
| HDR10 | PQ | स्थिर | HEVC | 10-बिट |
| HDR10+ | PQ | स्थिर | HEVC | 10-बिट |
| Dolby Vision 8.4 | HLG | डाइनैमिक | HEVC | 10-बिट |
फ़ॉर्मैट हैंडल करने से जुड़े सुझाव
| कैप्चर फ़ॉर्मैट | अपलोड प्रारूप | डिलीवरी का फ़ॉर्मैट |
| HLG | ऐप्लिकेशन के बैकएंड में एचडीआर एचएलजी की सुविधा काम करती है | एचडीआर (एचएलजी) के साथ काम करने वाले डिवाइस:
HLG एचडीआर की सुविधा वाले डिवाइस (सिर्फ़ पीक्यू के साथ काम करते हैं, एचएलजी के साथ नहीं): एसडीआर (बैकएंड में, एचडीआर से एसडीआर में टोन मैप किया गया) ऐसे डिवाइस जिन पर एचडीआर क्वालिटी में वीडियो देखने की सुविधा उपलब्ध नहीं है: एसडीआर (बैकएंड में, एचडीआर क्वालिटी वाले वीडियो को एसडीआर क्वालिटी में टोन मैप किया जाता है) |
इस्तेमाल का दूसरा उदाहरण: नेटिव कैमरे से कैप्चर करना या उपयोगकर्ता की गैलरी से इंपोर्ट करना (ऐप्लिकेशन का बैकएंड, एचडीआर के साथ काम करता है)
| कैप्चर फ़ॉर्मैट | अपलोड प्रारूप | डिलीवरी का फ़ॉर्मैट |
| HLG | HLG | इन-ऐप्लिकेशन कैप्चर के इस्तेमाल के उदाहरण की तरह ही |
| HDR10+ | HLG
ट्रांसफ़ॉर्मर एपीआई का इस्तेमाल करके, अपलोड करने से पहले HDR10+ (PQ) से HLG में टोन मैप करना |
इन-ऐप्लिकेशन कैप्चर के इस्तेमाल के उदाहरण की तरह ही |
| DV8.4 | HLG
(DV8.4, HLG का इस्तेमाल करता है और बिटस्ट्रीम, HLG के तौर पर काम करेगा. इसलिए, टोन मैपिंग की ज़रूरत नहीं है) |
इन-ऐप्लिकेशन कैप्चर के इस्तेमाल के उदाहरण की तरह ही |
इस्तेमाल का तीसरा उदाहरण: ऐप्लिकेशन का बैकएंड, एचडीआर के साथ काम नहीं करता
| कैप्चर फ़ॉर्मैट | अपलोड प्रारूप | डिलीवरी का फ़ॉर्मैट |
| कोई भी फ़ॉर्मैट | SDR
ट्रांसफ़ॉर्मर एपीआई का इस्तेमाल करके, अपलोड करने से पहले HLG से SDR में टोन मैप करें |
SDR |