قالب‌های رسانه پشتیبانی‌شده

این سند از کدک رسانه، ظرف، و پشتیبانی پروتکل شبکه ارائه‌شده توسط پلاتفرم Android می‌گوید.

جدول‌های زیر از پشتیبانی قالب رسانه که در پلاتفرم Android ساخته شده است، شرح می‌دهند. «بله» یعنی قالب در دستگاه‌های دستی و رایانه‌های لوحی که همه نسخه‌های Android را اجرا می‌کنند دردسترس است. در جایی که پلاتفرم Android خاصی مشخص شده باشد، این قالب در تلفن‌های همراه و رایانه‌های لوحی دارای آن نسخه و همه نسخه‌های بعدی دردسترس است. این قالب ممکن است در نسخه‌های قبلی نیز دردسترس باشد، اما این موضوع تضمین‌شده نیست. در ضریب‌های شکل غیر از تلفن‌های همراه و رایانه‌های لوحی، پشتیبانی از قالب رسانه ممکن است متفاوت باشد.

توجه داشته باشید که یک دستگاه همراه خاص ممکن است از قالب‌ها یا انواع فایل‌های اضافی که در این جدول‌ها فهرست نشده‌اند پشتیبانی کند. علاوه‌براین، اگر مستقیماً از MediaCodec استفاده کنید، می‌توانید بدون توجه به انواع فایل پشتیبانی‌شده و قالب‌های محتوا به هریک از قالب‌های رسانه‌ای دردسترس دسترسی داشته باشید.

پشتیبانی از صدا

قالب کدبند رمزگشا قالب‌های محتوی انواع فایل جزئیات
استخراج‌کننده Muxer
AAC LC بله بله • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF پشتیبانی نمی‌شود)
• MPEG-TS (.ts، قابل جستجو نیست، Android 3.0+)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac،‏ ADIF پشتیبانی نمی‌شود)
• MPEG-TS (مطمئن نیستیم) (.ts، قابل جستجو نیست، Android 3.0+)
پشتیبانی از محتوای تک‌کاناله/دوکاناله/۵.۰/۵.۱ با نرخ‌های نمونه‌برداری استاندارد از ۸ تا ۴۸ کیلوهرتز.
HE-AACv1 (AAC+)‎ ‫Android 4.1+‎ بله
HE-AACv2 (بهبودیافته AAC+)   بله پشتیبانی از محتوای استریو/۵.۰/۵.۱ با نرخ‌های نمونه‌برداری استاندارد از ۸ تا ۴۸ کیلوهرتز.
xHE-AAC   ‫Android 9 یا بالاتر پشتیبانی از محتوای حداکثر ۸ کاناله با نرخ نمونه‌برداری استاندارد از ۸ تا ۴۸ کیلوهرتز
AAC ELD (AAC با تأخیر کم بهبودیافته) ‫Android 4.1+‎ ‫Android 4.1+‎ پشتیبانی از محتوای تک‌کاناله/استریو با نرخ‌های نمونه‌برداری استاندارد از ۱۶ تا ۴۸ کیلوهرتز
AMR-NB بله بله • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
‫۴٫۷۵ تا ۱۲٫۲ کیلوبیت در ثانیه نمونه‌گیری‌شده در ۸ کیلوهرتز
AMR-WB بله بله ‫۹ نرخ از ۶٫۶۰ کیلوبیت در ثانیه تا ۲۳٫۸۵ کیلوبیت در ثانیه با نمونه‌برداری در ۱۶ کیلوهرتز
FLAC ‫Android 4.1+‎ ‫Android 3.1+‎ • FLAC‏ (.flac)
• MPEG-4‏ (.mp4،‏ .m4a،‏ Android 10 و نسخه‌های جدیدتر)
• Matroska‏ (.mkv)
مونو/استریو (بدون چندکاناله). نرخ نمونه‌برداری تا ۴۸ کیلوهرتز (اما در دستگاه‌های دارای خروجی ۴۴٫۱ کیلوهرتز، نرخ نمونه‌برداری تا ۴۴٫۱ کیلوهرتز توصیه می‌شود، زیرا نمونه‌برداری پایین از ۴۸ به ۴۴٫۱ کیلوهرتز فیلتر پایین‌گذر ندارد). ‫۱۶ بیت توصیه می‌شود؛ برای ۲۴ بیت، لرزش اعمال نمی‌شود.
MIDI   بله • نوع ۰ و ۱ ‏(mid.،‏ xmf.،‏ mxmf.)
• RTTTL/RTX ‏(rtttl.،‏ rtx.)
• OTA ‏(ota.)
• iMelody ‏(imy.)
‫MIDI نوع ۰ و ۱. نسخه ۱ و ۲ DLS. XMF و Mobile XMF. پشتیبانی از قالب‌های آهنگ زنگ RTTTL/RTX،‏ OTA، و iMelody
MP3   بله • MP3‏ (.mp3)
• MPEG-4‏ (.mp4،‏ .m4a،‏ Android 10+)
• Matroska‏ (.mkv،‏ Android 10+)
تک‌کاناله/استریو ۸ تا ۳۲۰ کیلوبیت بر ثانیه ثابت (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) ‫PCM خطی ۸ و ۱۶ بیتی (نرخ‌ها تا حد سخت‌افزار). نرخ‌های نمونه‌برداری برای ضبط‌های 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)
پشتیبانی از H.263 در Android 7.0+ اختیاری است
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 (در همه دستگاه‌ها دردسترس نیست)
وضوح ویدیو ۱۷۶ × ۱۴۴ پیکسل ‫۴۸۰ × ۳۶۰ پیکسل ‫۱۲۸۰ × ۷۲۰ پیکسل
نرخ فریم ویدیو ‫۱۲ فریم در ثانیه ۳۰ فریم در ثانیه ۳۰ فریم در ثانیه
نرخ بیت ویدیو ‫۵۶ کیلوبیت در ثانیه ‫۵۰۰ کیلوبیت در ثانیه ‫۲ مگابیت در ثانیه
کدک صوتی AAC-LC AAC-LC AAC-LC
کانال‌های شنیداری ‫۱ (مونو) ۲ (استریو) ۲ (استریو)
نرخ بیت صوتی ‫۲۴ کیلوبیت در ثانیه ‫۱۲۸ کیلوبیت در ثانیه ‫۱۹۲ کیلوبیت در ثانیه

جدول زیر فهرست نمایه‌ها و پارامترهای کدبندی ویدیو چارچوب رسانه‌ای Android را که برای بازپخش بااستفاده از کدک رسانه‌ای VP8 توصیه می‌شود ارائه می‌دهد.

  SD (کیفیت پایین) SD (کیفیت بالا) HD 720p (در همه دستگاه‌ها دردسترس نیست) HD 1080p (در همه دستگاه‌ها دردسترس نیست)
وضوح ویدیو ‫۳۲۰ × ۱۸۰ پیکسل ‫۶۴۰ x ۳۶۰ پیکسل ‫۱۲۸۰ × ۷۲۰ پیکسل ‫۱۹۲۰ × ۱۰۸۰ پیکسل
نرخ فریم ویدیو ۳۰ فریم در ثانیه ۳۰ فریم در ثانیه ۳۰ فریم در ثانیه ۳۰ فریم در ثانیه
نرخ بیت ویدیو ‫۸۰۰ کیلوبیت در ثانیه ‫۲ مگابیت در ثانیه 4 مگابیت در ثانیه 10 مگابیت در ثانیه

توصیه‌های رمزگشایی ویدیو

پیاده‌سازی‌های دستگاه باید ازطریق میاناهای برنامه‌سازی کاربردی استاندارد Android در همان جاری‌سازی برای همه کدک‌های VP8،‏ VP9،‏ H.264، و H.265 از تعویض پویای وضوح ویدیو و نرخ فریم در زمان واقعی و تا حداکثر وضوح پشتیبانی‌شده توسط هر کدک در دستگاه پشتیبانی کنند.

پیاده‌سازی‌هایی که از کدبند Dolby Vision پشتیبانی می‌کنند باید از این دستورالعمل‌ها پیروی کنند:

  • یک استخراج‌کننده با قابلیت Dolby Vision ارائه دهید.
  • محتوای Dolby Vision را به‌درستی در صفحه‌نمایش دستگاه یا درگاه خروجی ویدیو استاندارد (مثلاً HDMI) نمایش دهد.
  • شاخص قطعه لایه(های) پایه سازگار با نسخه قدیمی (درصورت وجود) را طوری تنظیم کنید که با شاخص قطعه لایه Dolby Vision ترکیبی یکسان باشد.

الزامات جاری‌سازی ویدیو

برای محتوای ویدیویی که ازطریق HTTP یا RTSP جاری‌سازی می‌شود، الزامات بیشتری وجود دارد:

  • برای محتوی‌های 3GPP و MPEG-4، اتم moov باید قبل‌از هر اتم mdat قرار گیرد، اما باید بعداز اتم ftyp قرار گیرد.
  • برای محتویات 3GPP،‏ MPEG-4، و WebM، نمونه‌های صوتی و تصویری مربوط به یک زمان جابه‌جایی یکسان نباید بیش‌از ۵۰۰ کیلوبایت با هم فاصله داشته باشند. برای به‌حداقل رساندن این انحراف صوتی/ویدیویی، درنظر بگیرید که صدا و ویدیو را در اندازه‌های کوچک‌تر درهم بیامیزید.

پشتیبانی از تصویر

قالب کدبند رمزگشا جزئیات انواع فایل
قالب‌های محتوا
BMP   بله   BMP ‏ (.bmp)
GIF   بله   گیف (‎.gif)
JPEG بله بله پایه+پیش‌رونده ‫JPEG‏ (‎.jpg)
PNG بله بله   PNG ‏ (.png)
WebP : قالب 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
    • نسخه پروتکل ۳ Android 4.0 و بالاتر
    • پروتکل نسخه ۲ Android 3.x
    • قبل‌از Android 3.0 پشتیبانی نمی‌شود

توجه: HTTPS در نسخه‌های قبل‌از Android 3.1 پشتیبانی نمی‌شود.

قالب‌های ویدیو HDR

تولیدکنندگان تجهیزات اصلی می‌توانند هر قالب HDR را که انتخاب می‌کنند با معماری HDR در Android فعال کنند، که نیازهای اصلی قالب‌های HDR را فراهم می‌کند: بافرهای ۱۰ بیتی، فراداده (ایستا، پویا، و بدون فراداده)، تابع انتقال، و مدیریت فضای رنگ.

برای اطمینان از یکپارچگی برای توسعه‌دهندگان و رسیدگی به موارد استفاده کلیدی HDR، از سازندگان تجهیزات اصلی می‌خواهیم که از چند قالب پایه در دستگاه‌هایی که از HDR پشتیبانی می‌کنند پشتیبانی کنند:

  • برای پخش محتوای حرفه‌ای، مانند جاری‌سازی فیلم، به HDR10 نیاز داریم.
  • برای ضبط و بازپخش محتوای تولیدشده توسط کاربر، ما HLG10 را برای ارائه یک تجربه یکپارچه در دستگاه‌های Android الزامی می‌دانیم.

تولیدکنندگان تجهیزات اصلی که پشتیبانی از 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