এই ডকুমেন্টে Android প্ল্যাটফর্মের দেওয়া মিডিয়া কোডেক, কন্টেনার ও নেটওয়ার্ক প্রোটোকল সাপোর্ট সম্পর্কে বর্ণনা করা হয়েছে।
নিচের সারণীতে Android প্ল্যাটফর্মে বিল্ট-ইন মিডিয়া ফর্ম্যাট সাপোর্ট সম্পর্কে বর্ণনা করা হয়েছে। YES-এর অর্থ হল, সব Android ভার্সন চলে এমন হ্যান্ডহেল্ড ও ট্যাবলেটে ফর্ম্যাটটি উপলভ্য। নির্দিষ্ট Android প্ল্যাটফর্ম উল্লেখ করা থাকলে, সেই ভার্সন ও তার পরবর্তী সব ভার্সনে চলে এমন হ্যান্ডসেট ও ট্যাবলেটে ফর্ম্যাট উপলভ্য থাকে। এছাড়াও, ফর্ম্যাটটি আগের ভার্সনে উপলভ্য হতে পারে, তবে এর কোনও গ্যারান্টি নেই। হ্যান্ডসেট ও ট্যাবলেট ছাড়া অন্যান্য ফর্ম ফ্যাক্টরে, মিডিয়া ফর্ম্যাট কাজ করবে কিনা তা আলাদা হতে পারে।
মনে রাখবেন, কোনও নির্দিষ্ট মোবাইল ডিভাইস অতিরিক্ত ফর্ম্যাট বা ফাইলের ধরন সাপোর্ট করতে পারে যা এই টেবিলে তালিকাভুক্ত নেই। এছাড়াও, আপনি সরাসরি MediaCodec ব্যবহার করলে, কাজ করে এমন ফাইল টাইপ ও কন্টেনার ফর্ম্যাট নির্বিশেষে উপলভ্য যেকোনও মিডিয়া ফর্ম্যাট অ্যাক্সেস করতে পারবেন।
অডিও সহায়তা
| ফর্ম্যাট | এনকোডার | ডিকোডার | ফাইলের ধরন কন্টেনার ফর্ম্যাট | বিবরণ | |
|---|---|---|---|---|---|
| এক্সট্র্যাক্টর | Muxer | ||||
| AAC LC | হ্যাঁ | হ্যাঁ |
• 3GPP (.3gp) • ADTS র AAC (.aac, ADIF কাজ করে না) • MPEG-TS (.ts, not seekable, Android 3.0+) |
• 3GPP (.3gp) • ADTS র AAC (.aac, ADIF কাজ করে না) • MPEG-TS (নিশ্চিত নই) (.ts, খোঁজা যায় না, Android 3.0+) |
৮ থেকে ৪৮ kHz পর্যন্ত স্ট্যান্ডার্ড স্যাম্পেলিং রেট সহ মোনো/স্টিরিও/৫.০/৫.১ কন্টেন্টের জন্য সহায়তা। |
| HE-AACv1 (AAC+) | Android 4.1+ | হ্যাঁ | |||
| HE-AACv2 (উন্নত AAC+) | হ্যাঁ | ৮ থেকে ৪৮ kHz পর্যন্ত স্ট্যান্ডার্ড স্যাম্পেল রেট সহ স্টেরিও/৫.০/৫.১ কন্টেন্ট কাজ করে। | |||
| xHE-AAC | Android 9+ | ৮ থেকে ৪৮ kHz পর্যন্ত স্ট্যান্ডার্ড স্যাম্পেল রেট সহ সর্বাধিক ৮টি চ্যানেল কন্টেন্টের জন্য সহায়তা | |||
| AAC ELD (উন্নত কম বিলম্বিত AAC) | Android 4.1+ | Android 4.1+ | ১৬ থেকে ৪৮ kHz পর্যন্ত স্ট্যান্ডার্ড স্যাম্পেল রেট সহ মোনো/স্টিরিও কন্টেন্টের জন্য সহায়তা | ||
| AMR-NB | হ্যাঁ | হ্যাঁ |
• 3GPP (.3gp) • AMR (.amr) |
• 3GPP (.3gp) • AMR (.amr) |
8kHz-এ স্যাম্পেল করা ৪.৭৫ থেকে ১২.২ kbps |
| AMR-WB | হ্যাঁ | হ্যাঁ | ৯টি রেট, ৬.৬০ kbit/s থেকে ২৩.৮৫ kbit/s, ১৬kHz-এ স্যাম্পেল করা হয়েছে | ||
| FLAC | Android 4.1+ | Android 3.1+ |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10+) • Matroska (.mkv) |
মোনো/স্টিরিও (মাল্টিচ্যানেল নয়)। ৪৮ kHz পর্যন্ত স্যাম্পেল রেট (তবে ৪৪.১ kHz আউটপুট সহ ডিভাইসে ৪৪.১ kHz পর্যন্ত রেট সাজেস্ট করা হয়, কারণ ৪৮ থেকে ৪৪.১ kHz ডাউনস্যাম্পলারে লো-পাস ফিল্টার থাকে না)। ১৬-বিট সাজেস্ট করা হয়েছে; ২৪-বিটের জন্য কোনও ডিথার প্রয়োগ করা হয়নি। | |
| MIDI | হ্যাঁ |
• টাইপ ০ ও ১ (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
MIDI টাইপ ০ ও ১. DLS ভার্সন ১ ও ২। XMF এবং মোবাইল XMF. রিংটোনের ফর্ম্যাট RTTTL/RTX, OTA ও iMelody-এর জন্য সহায়তা | ||
| MP3 | হ্যাঁ |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10+) • Matroska (.mkv, Android 10+) |
মোনো/স্টিরিও ৮-৩২০Kbps কনস্ট্যান্ট (CBR) বা ভেরিয়েবল বিট-রেট (VBR) | ||
| Opus | Android 10+ | Android 5.0+ |
• Ogg (.ogg) • MPEG-4 (.mp4) • Matroska (.mkv) |
• Ogg (.ogg) • WebM (.webm) |
|
| PCM/WAVE | Android 4.1+ | হ্যাঁ | WAVE (.wav) | ৮- এবং ১৬-বিট লিনিয়ার পিসিএম (হার্ডওয়্যারের সীমা পর্যন্ত রেট)। ৮০০০, ১৬০০০ এবং ৪৪১০০ Hz-এ কাঁচা PCM রেকর্ডিংয়ের স্যাম্পেলিং রেট। | |
| Vorbis | হ্যাঁ |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0+) • MPEG-4 (.mp4, .m4a, Android 10+) |
• WebM (.webm) | ||
ভিডিও সহায়তা
ভিডিও ফর্ম্যাট
| ফর্ম্যাট | এনকোডার | ডিকোডার | ফাইলের ধরন কন্টেনার ফর্ম্যাট | বিবরণ | |
|---|---|---|---|---|---|
| এক্সট্র্যাক্টর | Muxer | ||||
| H.263 | হ্যাঁ | হ্যাঁ |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
Android 7.0+ ভার্সনে H.263-এর জন্য সহায়তা ঐচ্ছিক |
| H.264 AVC বেসলাইন প্রোফাইল (BP) |
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 মূল প্রোফাইল (MP) |
Android 6.0+ | হ্যাঁ | ডিকোডার প্রয়োজন, এনকোডার থাকলে ভাল হয়। | ||
| H.265 HEVC | Android 5.0+ |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | মোবাইল ডিভাইসের জন্য মূল প্রোফাইল লেভেল ৩ এবং Android TV-র জন্য মূল প্রোফাইল লেভেল ৪.১ | |
| 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 থেকে এনকোডার ও ডিকোডার বাধ্যতামূলক। |
| APV | Android 16+ | Android 16+ | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | Android 16 থেকে এনকোডার ও ডিকোডার বাধ্যতামূলক। |
ভিডিও এনকোডিং সংক্রান্ত সাজেশন
নিচে দেওয়া সারণীতে Android মিডিয়া ফ্রেমওয়ার্ক ভিডিও এনকোডিং প্রোফাইল ও প্যারামিটার তালিকাভুক্ত করা হয়েছে যা H.264 বেসলাইন প্রোফাইল কোডেক ব্যবহার করে প্লেব্যাকের জন্য সাজেস্ট করা হয়েছে। একই সাজেশন মূল প্রোফাইল কোডেক, যা শুধুমাত্র Android 6.0 ও তার পরবর্তী ভার্সনে উপলভ্য, তার ক্ষেত্রেও প্রযোজ্য।
| SD (খারাপ কোয়ালিটি) | SD (উচ্চ কোয়ালিটি) | HD 720p (সব ডিভাইসে উপলভ্য নয়) | |
|---|---|---|---|
| ভিডিও রেজোলিউশন | ১৭৬ x ১৪৪ পিক্সেল | ৪৮০ x ৩৬০ পিক্সেল | ১২৮০ x ৭২০ পিক্সেল |
| ভিডিও ফ্রেম রেট | ১২ fps | ৩০ fps | ৩০ fps |
| ভিডিও বিটরেট | ৫৬ Kbps | ৫০০ Kbps | ২ Mbps |
| অডিও কোডেক | AAC-LC | AAC-LC | AAC-LC |
| অডিও চ্যানেল | ১ (মোনো) | ২ (স্টিরিও) | ২ (স্টিরিও) |
| অডিও বিটরেট | ২৪ Kbps | ১২৮ Kbps | ১৯২ Kbps |
নিচে দেওয়া সারণীতে VP8 মিডিয়া কোডেক ব্যবহার করে প্লেব্যাকের জন্য সাজেস্ট করা Android মিডিয়া ফ্রেমওয়ার্ক ভিডিও এনকোডিং প্রোফাইল ও প্যারামিটার তালিকাভুক্ত করা হয়েছে।
| SD (খারাপ কোয়ালিটি) | SD (উচ্চ কোয়ালিটি) | HD 720p (সব ডিভাইসে উপলভ্য নয়) | HD 1080p (সব ডিভাইসে উপলভ্য নয়) | |
|---|---|---|---|---|
| ভিডিও রেজোলিউশন | ৩২০ x ১৮০ পিক্সেল | ৬৪০ x ৩৬০ পিক্সেল | ১২৮০ x ৭২০ পিক্সেল | ১৯২০ x ১০৮০ পিক্সেল |
| ভিডিও ফ্রেম রেট | ৩০ fps | ৩০ fps | ৩০ fps | ৩০ fps |
| ভিডিও বিটরেট | ৮০০ Kbps | ২ Mbps | ৪ Mbps | ১০ Mbps |
ভিডিও ডিকোডিং সংক্রান্ত সাজেশন
ডিভাইস ইমপ্লিমেন্টেশনে অবশ্যই ডায়নামিক ভিডিও রেজোলিউশন এবং ফ্রেম রেট পরিবর্তন করার সুবিধা থাকতে হবে। এটি রিয়েল টাইমে একই স্ট্রিমের মধ্যে সমস্ত VP8, VP9, H.264 এবং H.265 কোডেকের জন্য স্ট্যান্ডার্ড Android API-এর মাধ্যমে করতে হবে এবং এটি ডিভাইসে প্রতিটি কোডেকের দ্বারা সমর্থিত সর্বাধিক রেজোলিউশন পর্যন্ত হতে হবে।
Dolby Vision ডিকোডার কাজ করে এমন ইমপ্লিমেন্টেশনকে এইসব নির্দেশিকা মেনে চলতে হবে:
- Dolby Vision-এর উপযুক্ত এক্সট্র্যাক্টর দিন।
- ডিভাইসের স্ক্রিনে বা স্ট্যান্ডার্ড ভিডিও আউটপুট পোর্টে (যেমন, HDMI) Dolby Vision কন্টেন্ট সঠিকভাবে দেখাতে হবে।
- কম্বাইন করা Dolby Vision লেয়ারের ট্র্যাক ইনডেক্সের সাথে ব্যাকওয়ার্ড-কম্প্যাটিবল বেস-লেয়ারের (থাকলে) ট্র্যাক ইনডেক্স একই সেট করুন।
ভিডিও স্ট্রিমিং সংক্রান্ত প্রয়োজনীয়তা
HTTP বা RTSP-এর মাধ্যমে স্ট্রিম করা ভিডিও কন্টেন্টের জন্য অতিরিক্ত প্রয়োজনীয়তা আছে:
- 3GPP এবং MPEG-4 কন্টেনারের জন্য,
moovঅ্যাটমকে অবশ্যই যেকোনওmdatঅ্যাটমের আগে থাকতে হবে, কিন্তু এটিকে অবশ্যইftypঅ্যাটমের পরে থাকতে হবে। - 3GPP, MPEG-4 ও WebM কন্টেনারের ক্ষেত্রে, একই টাইম অফসেটের সাথে সম্পর্কিত অডিও ও ভিডিও স্যাম্পেলগুলির মধ্যে দূরত্ব ৫০০ কেবির বেশি হলে চলবে না। এই অডিও/ভিডিও ড্রাফ্ট কমানোর জন্য, ছোট ছোট খণ্ডে অডিও ও ভিডিও ইন্টারলিভ করার কথা বিবেচনা করুন।
ছবি সংক্রান্ত সহায়তা
| ফর্ম্যাট | এনকোডার | ডিকোডার | বিবরণ | ফাইলের ধরন কন্টেনার ফর্ম্যাট |
|---|---|---|---|---|
| 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-এ ১০০ কোয়ালিটি ব্যবহার করে লসলেস এনকোডিং পাওয়া যেতে পারে। | WebP (.webp) |
| HEIF |
Android 10+ ( MediaCodec বা HeifWriter-এর মাধ্যমে; Bitmap.compress-এ নয়)
|
Android 9.0+ | ডিভাইস ঐচ্ছিক। ৮-বিট সাপোর্ট সম্পর্কে জানতে ImageDecoder.isMimeTypeSupported("image/heif") দেখুন। ১০-বিট ডিকোডিংয়ের জন্য ঐচ্ছিক HEVC Main10 প্রোফাইল প্রয়োজন। |
HEIF (.heic; .heif) |
| AVIF (বেসলাইন প্রোফাইল) |
Android 14+ ( MediaCodec-এর মাধ্যমে; Bitmap.compress-এ নয়)
|
Android 12+ | Android 12+ ভার্সনে ৮-বিট ডিকোডিং কাজ করে। ১০-বিট ডিকোডিং ঐচ্ছিক; ১০-বিট কাজ করে কিনা তা ImageDecoder.isMimeTypeSupported("image/avif") থেকে চেক করুন (কাজ না করলেও, ৮-বিট কাজ করবে)। |
AVIF (.avif) |
নেটওয়ার্ক প্রোটোকল
অডিও ও ভিডিও প্লেব্যাকের জন্য নিম্নলিখিত নেটওয়ার্ক প্রোটোকল কাজ করে:
- RTSP (RTP, SDP)
- HTTP/HTTPS প্রোগ্রেসিভ স্ট্রিমিং
- HTTP/HTTPS লাইভ স্ট্রিমিং ড্রাফ্ট প্রোটোকল:
- শুধুমাত্র MPEG-2 TS মিডিয়া ফাইল
- প্রোটোকল ভার্সন 3 Android 4.0 ও এর পরবর্তী যেকোনও ভার্সন
- প্রোটোকল ভার্সন 2 Android 3.x
- Android 3.0-এর আগের ভার্সনে কাজ করে না
মনে রাখবেন: Android 3.1-এর আগের ভার্সনে HTTPS কাজ করে না।
HDR ভিডিও ফর্ম্যাট
OEM Android HDR আর্কিটেকচারের সাথে তাদের বেছে নেওয়া যেকোনও HDR ফর্ম্যাট চালু করতে পারে, যা HDR ফর্ম্যাটের মূল প্রয়োজনীয়তা প্রদান করে: ১০-বিট বাফার, মেটাডেটা (স্ট্যাটিক, ডায়নামিক এবং কোনওটিই নয়), ট্রান্সফার ফাংশন এবং কালার স্পেস ম্যানেজমেন্ট।
ডেভেলপারদের জন্য ধারাবাহিকতা নিশ্চিত করতে এবং HDR ব্যবহারের মূল কেসগুলি সমাধান করতে, HDR কাজ করে এমন ডিভাইসে OEM-কে কয়েকটি বেস ফর্ম্যাট কাজ করাতে হবে:
- সিনেমা স্ট্রিম করার মতো পেশাদার কন্টেন্ট প্লেব্যাকের জন্য HDR10 প্রয়োজন।
- ব্যবহারকারীর তৈরি করা কন্টেন্ট ক্যাপচার ও প্লেব্যাকের জন্য, Android ডিভাইস জুড়ে একটি সামঞ্জস্যপূর্ণ অভিজ্ঞতা প্রদান করতে আমাদের HLG10 প্রয়োজন।
যেসব OEM HDR কাজ করে এমন সুবিধা যোগ করে, তাদের অবশ্যই এই ফর্ম্যাটগুলি কাজ করাতে হবে, তবে তারা HDR10+ বা Dolby Vision-এর মতো অতিরিক্ত ফর্ম্যাটও কাজ করাতে পারে।
| ফর্ম্যাট | ট্রান্সফার ফাংশন | মেটাডেটা | কোডেক | বিট ডেপথ |
|---|---|---|---|---|
| HLG10 | HLG | না | HEVC | ১০-বিট |
| HDR10 | PQ | স্থির | HEVC | ১০-বিট |
| HDR10+ | PQ | স্থির | HEVC | ১০-বিট |
| Dolby Vision 8.4 | HLG | ডায়নামিক | HEVC | ১০-বিট |
ফর্ম্যাট ম্যানেজ করা সংক্রান্ত সাজেশন
| ক্যাপচার ফর্ম্যাট | আপলোডের ফর্ম্যাট | ডেলিভারি ফর্ম্যাট |
| HLG | অ্যাপ ব্যাকএন্ডে HDR HLG কাজ করে | HDR (HLG) কাজ করে এমন ডিভাইস:
HLG ডিভাইস HDR (শুধুমাত্র PQ, HLG কাজ করে না) সাপোর্ট করে: SDR (ব্যাকএন্ডে HLG থেকে SDR-এ টোন ম্যাপ) HDR কাজ করে না এমন ডিভাইস: SDR (ব্যাকএন্ডে HLG থেকে SDR-এ টোন ম্যাপ) |
ব্যবহারের দ্বিতীয় ক্ষেত্র: নেটিভ ক্যামেরা ক্যাপচার বা ব্যবহারকারীর গ্যালারি থেকে ইমপোর্ট করা (অ্যাপ ব্যাকএন্ড HDR সাপোর্ট করে)
| ক্যাপচার ফর্ম্যাট | আপলোডের ফর্ম্যাট | ডেলিভারি ফর্ম্যাট |
| HLG | HLG | অ্যাপ-মধ্যস্থ ক্যাপচার ব্যবহারের উদাহরণের মতো |
| HDR10+ | HLG
ট্রান্সফর্মার API ব্যবহার করে আপলোড করার আগে HDR10+ (PQ) থেকে HLG-তে টোন ম্যাপ করা |
অ্যাপ-মধ্যস্থ ক্যাপচার ব্যবহারের উদাহরণের মতো |
| DV8.4 | HLG
(DV8.4, HLG ব্যবহার করে এবং বিটস্ট্রিম HLG হিসেবে কাজ করে, তাই কোনও টোন ম্যাপিংয়ের প্রয়োজন নেই) |
অ্যাপ-মধ্যস্থ ক্যাপচার ব্যবহারের উদাহরণের মতো |
ব্যবহারের ক্ষেত্র ৩: অ্যাপ ব্যাকএন্ডে HDR কাজ করে না
| ক্যাপচার ফর্ম্যাট | আপলোডের ফর্ম্যাট | ডেলিভারি ফর্ম্যাট |
| যেকোনও ফর্ম্যাট | SDR
ট্রান্সফর্মার API ব্যবহার করে আপলোড করার আগে HLG থেকে SDR-এ টোন ম্যাপ করা |
SDR |