במסמך הזה מתוארת התמיכה בקודק, בקונטיינר ובפרוטוקול הרשת של המדיה בפלטפורמת Android.
בטבלאות הבאות מפורטת התמיכה בפורמטים של מדיה שמובנית בפלטפורמת Android. 'כן': הפורמט זמין במכשירים ניידים ובטאבלטים עם כל הגרסאות של Android. אם מצוין פלטפורמת Android ספציפית, הפורמט זמין בטלפונים ניידים ובטאבלטים עם הגרסה הזו וכל הגרסאות הבאות. יכול להיות שהפורמט יהיה זמין גם בגרסאות קודמות, אבל אין ערובה לכך. בגורמי צורה שונים מטלפונים ניידים וטאבלטים, התמיכה בפורמטים של מדיה עשויה להשתנות.
חשוב לזכור שמכשיר נייד מסוים עשוי לתמוך בפורמטים או בסוגי קבצים נוספים שלא מפורטים בטבלאות האלה. בנוסף, אם משתמשים ב-MediaCodec ישירות, אפשר לגשת לכל פורמט המדיה הזמין, ללא קשר לסוגי הקבצים ולפורמטים של הקונטיינרים הנתמכים.
תמיכה באודיו
פורמט | במקודד | מפענח | פורמטים של קובצי מאגר | פרטים | |
---|---|---|---|---|---|
Extractor | Muxer | ||||
AAC LC | כן | כן |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF לא נתמך) • MPEG-TS (.ts, לא ניתן לדלג, Android 3.0 ואילך) |
• 3GPP (.3gp) • 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 |