פורמטים נתמכים של מדיה

במסמך הזה מתוארת התמיכה בקודק, בקונטיינר ובפרוטוקול הרשת של המדיה בפלטפורמת Android.

בטבלאות הבאות מפורטת התמיכה בפורמטים של מדיה שמובנית בפלטפורמת Android. 'כן': הפורמט זמין במכשירים ניידים ובטאבלטים עם כל הגרסאות של Android. אם מצוין פלטפורמת Android ספציפית, הפורמט זמין בטלפונים ניידים ובטאבלטים עם הגרסה הזו וכל הגרסאות הבאות. יכול להיות שהפורמט יהיה זמין גם בגרסאות קודמות, אבל אין ערובה לכך. בגורמי צורה שונים מטלפונים ניידים וטאבלטים, התמיכה בפורמטים של מדיה עשויה להשתנות.

חשוב לזכור שמכשיר נייד מסוים עשוי לתמוך בפורמטים או בסוגי קבצים נוספים שלא מפורטים בטבלאות האלה. בנוסף, אם משתמשים ב-MediaCodec ישירות, אפשר לגשת לכל פורמט המדיה הזמין, ללא קשר לסוגי הקבצים ולפורמטים של הקונטיינרים הנתמכים.

תמיכה באודיו

פורמט במקודד מפענח פורמטים של קובצי מאגר פרטים
Extractor 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 ואילך)
תמיכה בתוכן מונו/סטריאו/5.0/5.1 עם תדירויות דגימה רגילות של 8 עד 48kHz.
HE-AACv1‏ (AAC+) Android 4.1 ואילך כן
HE-AACv2‏ (enhanced AAC+)   כן תמיכה בתוכן סטריאו/5.0/5.1 עם תדירויות דגימה סטנדרטיות מ-8 עד 48kHz.
xHE-AAC   Android מגרסה 9 ואילך תמיכה בתוכן של עד 8 ערוצים עם תדירויות דגימה רגילות של 8 עד 48kHz
AAC ELD (AAC משופר עם זמן אחזור נמוך) Android 4.1 ואילך Android 4.1 ואילך תמיכה בתוכן מונו/סטריאו עם תדירויות דגימה רגילות של 16 עד 48kHz
AMR-NB כן כן • 3GPP‏ (‎.3gp)
• AMR‏ (‎.amr)
• 3GPP‏ (‎.3gp)
• AMR‏ (‎.amr)
4.75 עד 12.2kbps דגימה ב-8kHz
AMR-WB כן כן 9 שיעורי דגימה מ-6.60kbit/s עד 23.85kbit/s, בתדירות דגימה של 16kHz
FLAC Android 4.1 ואילך Android 3.1 ומעלה • FLAC‏ (‎.flac)
• MPEG-4‏ (‎.mp4,‏ ‎.m4a, ‏ Android מגרסה 10 ואילך)
• Matroska‏ (‎.mkv)
מונו/סטריאו (ללא ערוצים מרובים). תדירויות דגימה של עד 48kHz (אבל מומלץ להשתמש בתדירויות של עד 44.1kHz במכשירים עם פלט של 44.1kHz, כי המכשיר להקטנת תדירות הדגימה מ-48kHz ל-44.1kHz לא כולל מסנן מסוג 'מסנן מסנן נמוך'). מומלץ 16 ביט, לא מוחל רעש למודל 24 ביט.
MIDI   כן • סוג 0 ו-1 (‎.mid,‏ ‎.xmf,‏ ‎.mxmf)
• RTTTL/RTX (‎.rtttl,‏ ‎.rtx)
• OTA (‎.ota)
• iMelody (‎.imy)
MIDI מסוג 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-320Kbps קבוע (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 לינארי של 8 ו-16 ביט (שיעורים עד למגבלה של החומרה). תדירויות דגימה להקלטות PCM גולמיות של 8000, ‏ 16000 ו-44100Hz.
Vorbis   כן • Ogg‏ (‎.ogg)
• Matroska‏ (‎.mkv, Android 4.0 ואילך)
• MPEG-4‏ (‎.mp4, ‎.m4a, Android 10 ואילך)
WebM‏ (‎.webm)  

תמיכה בנכסי וידאו

פורמטים של סרטונים

פורמט במקודד מפענח פורמטים של קובצי מאגר פרטים
Extractor Muxer
H.263 כן כן • 3GPP‏ (‎.3gp)
• MPEG-4‏ (‎.mp4)
• Matroska‏ (‎.mkv)
• 3GPP‏ (‎.3gp)
‎• MPEG-4‏ (‎.mp4)
תמיכה ב-H.263 היא אופציונלית ב-Android 7.0 ואילך
H.264 AVC
פרופיל Baseline (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) פרופיל ראשי ברמה 3 למכשירים ניידים ופרופיל ראשי ברמה 4.1 ל-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) המקודד והמפענח הם חובה החל מגרסה 16 של Android.

המלצות לקידוד סרטונים

בטבלה הבאה מפורטים הפרופילים והפרמטרים של קידוד הווידאו של Android Media Framework, המומלצים להפעלה באמצעות קודק Baseline Profile של H.264. אותן המלצות חלות גם על קודק Main Profile, שזמין רק ב-Android מגרסה 6.0 ואילך.

  SD (איכות נמוכה) SD (איכות גבוהה) HD 720p (לא רלוונטי לכל המכשירים)
רזולוציית וידאו 176 x 144 פיקסלים 480 x 360 פיקסלים ‎1280 x 720 פיקסלים
קצב מסגרות של סרטון 12 fps 30 פריימים לשנייה (FPS) 30 פריימים לשנייה (FPS)
קצב העברת נתונים של וידאו 56 Kbps 500 Kbps 2 Mbps
קודק אודיו AAC-LC AAC-LC AAC-LC
ערוצי אודיו 1 (מונו) 2 (סטריאו) 2 (סטריאו)
קצב העברת נתוני אודיו 24 Kbps 128 Kbps 192 Kbps

בטבלה הבאה מפורטים הפרמטרים והפרופילים של קידוד הווידאו של Android Media Framework, המומלצים להפעלה באמצעות הקודק של המדיה VP8.

  SD (איכות נמוכה) SD (איכות גבוהה) HD 720p (לא רלוונטי לכל המכשירים) HD 1080p (לא רלוונטי בכל המכשירים)
רזולוציית וידאו 320 x 180 פיקסלים 640 x 360 פיקסלים ‎1280 x 720 פיקסלים ‎1,920 x 1,080 פיקסלים
קצב מסגרות של סרטון 30 פריימים לשנייה (FPS) 30 פריימים לשנייה (FPS) 30 פריימים לשנייה (FPS) 30 פריימים לשנייה (FPS)
קצב העברת נתונים של וידאו 800 Kbps 2 Mbps 4Mbps 10Mbps

המלצות לפענוח וידאו

הטמעות במכשירים חייבות לתמוך ברזולוציית וידאו דינמית ובמעבר בין שיעורי פריימים באמצעות ממשקי ה-API הרגילים של 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, המרחק בין דגימות האודיו והווידאו שתואמות לאותו עיכוב זמן לא יכול להיות יותר מ-500KB. כדי למזער את ההפרעה הזו באודיו או בווידאו, מומלץ להשתמש בשיטת interleaving (הפרדה) של אודיו וווידאו בקטעים קטנים יותר.

תמיכה בתמונות

פורמט במקודד מפענח פרטים סוגי קבצים
פורמטים של מאגרים
BMP   כן   BMP ‏(‎.bmp)
GIF   כן   GIF ‏(‎.gif)
JPEG כן כן Base+progressive 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 מגרסה 8.0 ואילך   HEIF‏ (‎.heic,‏ ‎.heif)
AVIF (פרופיל Baseline) Android מגרסה 14 ואילך Android מגרסה 14 ואילך המקודד והמפענח הם חובה החל מ-Android 14. AVIF ‏(‎.avif)

פרוטוקולי רשת

הפרוטוקולים הבאים נתמכים להפעלת אודיו וסרטונים:

  • RTSP‏ (RTP, ‏ SDP)
  • HTTP/HTTPS progressive streaming
  • טיוטת פרוטוקול לשידור חי ב-HTTP/HTTPS:
    • קובצי מדיה מסוג MPEG-2 TS בלבד
    • גרסת פרוטוקול 3, Android מגרסה 4.0 ואילך
    • פרוטוקול גרסה 2 Android 3.x
    • אין תמיכה בגרסאות Android ישנות מ-3.0

הערה: אין תמיכה ב-HTTPS בגרסאות Android ישנות מ-3.1.

פורמטים של סרטוני HDR

יצרני ציוד מקורי יכולים להפעיל כל פורמט HDR שהם בוחרים באמצעות הארכיטקטורה של Android HDR, שמספקת את הצרכים המרכזיים של פורמטים של HDR: מאגרי נתונים (buffers) של 10 ביט, מטא-נתונים (סטטיים, דינמיים ואף אחד), פונקציית העברה וטיפול במרחב צבע.

כדי להבטיח עקביות למפתחים ולטפל בתרחישי שימוש עיקריים של HDR, אנחנו דורשים מיצרני ציוד מקורי לתמוך בכמה פורמטים בסיסיים במכשירים שתומכים ב-HDR:

  • להפעלת תוכן מקצועי, כמו סטרימינג של סרטים, נדרשת תמיכה ב-HDR10.
  • כדי לצלם תוכן שנוצר על ידי משתמשים ולהפעיל אותו, אנחנו דורשים שימוש ב-HLG10 כדי לספק חוויה עקבית במכשירי Android.

יצרני ציוד מקורי שמוסיפים תמיכה ב-HDR חייבים לתמוך בפורמטים האלה, אבל הם יכולים לתמוך גם בפורמטים נוספים כמו HDR10+‎ או Dolby Vision.

פורמט פונקציית העברה Metadata קודק עומק ביט
HLG10 HLG לא HEVC 10 ביט
HDR10 PQ סטטי HEVC 10 ביט
HDR10+‎ PQ סטטי HEVC 10 ביט
Dolby Vision 8.4 HLG דינמי HEVC 10 ביט

המלצות לטיפול בפורמטים

פורמט הצילום פורמט ההעלאה פורמט העברה
HLG תמיכה ב-HDR HLG בקצה העורפי של האפליקציה מכשירים שתומכים ב-HDR (HLG):

HLG

מכשירים שתומכים ב-HDR (ללא תמיכה ב-HLG, רק PQ):

SDR (מיפוי גוונים מ-HLG ל-SDR בקצה העורפי)

מכשירים שלא תומכים ב-HDR: SDR (מיפוי גוונים מ-HLG ל-SDR בקצה העורפי)

תרחיש לדוגמה 2: צילום במצלמה המקורית או ייבוא מהגלריה של המשתמש (קצה העורפי של האפליקציה תומך ב-HDR)

פורמט הצילום פורמט ההעלאה פורמט העברה
HLG HLG זהה לתרחיש השימוש של צילום בתוך האפליקציה
HDR10+‎ HLG

מיפוי גוונים מ-HDR10+‏ (PQ) ל-HLG לפני ההעלאה באמצעות ממשקי API של טרנספורמרים

זהה לתרחיש השימוש של צילום בתוך האפליקציה
DV8.4 HLG

(ב-DV8.4 נעשה שימוש ב-HLG והזרם הספרתי יפעל כ-HLG, לכן לא נדרש מיפוי גוונים)

זהה לתרחיש השימוש של צילום בתוך האפליקציה

תרחיש לדוגמה 3: הקצה העורפי של האפליקציה לא תומך ב-HDR

פורמט הצילום פורמט ההעלאה פורמט העברה
כל פורמט שהוא SDR

מיפוי גוונים מ-HLG ל-SDR לפני ההעלאה באמצעות ממשקי API של טרנספורמרים

SDR