הפורמטים הנתמכים של ExoPlayer להיכרות עם במדיה הכללית באופן כללי. אותן מגבלות על טעינה, חילוץ, למרות שטרנספורמר לא תומך בטרנספורמר, אפשר לפענח אותו. המודולים של מפענחי תוכנה בחבילה של ExoPlayer.
הטרנספורמר מסתמך גם על MediaCodec
לקידוד והוא צריך לבצע ריבוי עיבודים, או
mux, קובצי מדיה לפלט, שמגביל את הפורמטים הנתמכים של פלט. צפייה
קודקי וידאו של MediaCodec
לקבלת מידע נוסף על מגבלות קידוד
MediaMuxer
מגבלות שחלות על קונטיינר המדיה של הפלט. Transformer בלבד
יוצרת פלט של קובצי MP4.
כברירת מחדל, Transformer
משתמש ב-MediaMuxer
, אבל InAppMuxer
בשלבי עבודה
זמינה באופן אופציונלי כדי להימנע מחלק מהמגבלות של MediaMuxer
למבנים של מסגרות הפניה ולפורמטים נתמכים לדוגמה. ברירת המחדל תהיה
שיהפכו לכשירים בתוך האפליקציה במהדורה עתידית.
תמיכה בתמונות
הטרנספורמר משתמש ב-BitmapFactory
כדי לטעון ולפענח את כל נכסי התמונות, לכן
ה-Transformer תומך בכל הפורמטים הנתמכים ב-Bitmapworks. צפייה
תמיכה בתמונות
לקבלת סוגי תמונות נתמכים. בפורמטים של כמה תמונות (למשל קובצי GIF), צריך להוסיף תמונה אחת
מוצגת מסגרת מהמאגר אם DefaultAssetLoaderFactory
בשימוש.
פורמטים מיוחדים
הטרנספורמר תומך בטיפול בקלט בפורמטים חדשים יותר של מדיה שמספקים בהשוואה לפורמטים קונבנציונליים.
טיפול בסרטוני HDR
יותר ויותר מכשירים תומכים עכשיו בוידאו HDR תיעוד דיגיטלי, שמספק תמונות ססגוניות ומדויקות יותר צבעים וטווח בהירות גדול יותר.
ב-Transformer יש תמיכה בעריכה של סרטוני HDR מ-Android 13 (רמת API 33) ואילך
במכשירים עם תמיכה בקידוד הנדרשת. בזמן עריכת סרטוני HDR, כל נתוני GL
האפקטים של הווידאו צריכים לטפל ברכיבי צבע של נקודה צפה (floating-point) של 16 ביט וב-BT.2020
מרחב צבעים. HDR_MODE_KEEP_HDR
הוא מצב ברירת המחדל בתהליך הפיתוח של
Composition
. אם אין תמיכה בעריכת HDR, הטרנספורמר
חוזרים להשתמש ב-HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL
.
ב-Android יש תמיכה בהמרת HDR ל-SDR, שנקרא גם מיפוי גוונים.
10 (רמת API 29) ואילך במכשירים עם הפענוח הנדרש ו-OpenGL
תמיכה. האפשרות הזו שימושית כשמשתפים מדיה באיכות HDR עם אפליקציות או שירותים אחרים
לא תומכים בהטמעת נתונים של תוכן HDR. כדי להפעיל מיפוי טונים באמצעות שיחת OpenGL
setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
בזמן היצירה של
Composition
. החל מ-Android 12 (רמת API 31) ואילך, MediaCodec
יש תמיכה גם במיפוי טונים במכשירים מסוימים, כולל כל המכשירים שפועלים
מכשירי Android מגרסה 13 ואילך שיכולים לצלם סרטוני HDR. כדי להפעיל מיפוי טונים באמצעות
MediaCodec
שיחה אל setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC)
.
טיפול במדיה בהילוך איטי
סרטונים בהילוך איטי כוללים מטא-נתונים שמציינים את המהירות שבה כל קטע של השידור. החלקה היא התהליך של יצירת וידאו בסטרימינג שמבוסס על הסרטון בהילוך איטי, אבל שבו הקטעים מואצים. או מואט בהתאם למטא-נתונים, כך שיפעלו בצורה תקינה גם בנגנים שלא מחילים מטא-נתונים של הילוך איטי.
כדי להשרות על סטרימינג בהילוך איטי, צריך להשתמש ב-builder setFlattenForSlowMotion
ב-EditedMediaItem
.
Kotlin
val editedMediaItem = EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build() val transformer = Transformer.Builder(context).addListener(transformerListener).build() transformer.start(editedMediaItem, outputPath)
Java
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build(); Transformer transformer = new Transformer.Builder(context).addListener(transformerListener).build(); transformer.start(editedMediaItem, outputPath);
כך ניתן לתמוך בסרטונים בהילוך איטי בלי לדאוג ומטפלים בפורמטים המיוחדים האלה. כל מה שצריך לעשות הוא לאחסן ולשחק את הסרטון המקורי במקום את הסרטון המקורי.