פורמט הקובץ MP4-AT תומך באחסון טראקים משניים שיעזרו לכם לערוך ולבנות את הסרטון לאחר הצילום (לדוגמה, טראק וידאו של מפת עומק) לצד נתוני מדיה שניתן להפעיל, במבנה ISOBMFF/MP4.
המטרה של הפורמט היא לאחסן טראקים משניים כך שהטראקים יהיו מוסתרים מלקוחות שלא מטמיעים את המפרט הזה. כך הלקוחות לא יוכלו לפרש טראקים משניים כנתונים שניתן להפעיל.
יחסי תלות
אלה ההפניות התקניות למפרט הזה:
- מילות מפתח לשימוש ב-RFC כדי לציין רמות דרישות
- פורמט קובץ מדיה מסוג ISO Box בתקן ISO/IEC 14496-12:2022 (ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 Coding of audio-visual objects Part 10: Advanced video coding (AVC)
- ISO/IEC 23008-2:2023 High efficiency coding and media delivery in heterogeneous environments Part 2: High efficiency video coding (HEVC)
- קודקי וידאו VP9 (VP9)
- מפרט של תהליך הפענוח והנתונים הבינאריים של AV1 (AV1)
- מפרט של עומק דינמי 1.0
מבוא
השימוש במילים 'חובה', 'אסור', 'נדרש', 'מומלץ', 'לא מומלץ', 'אופציונלי' ו'יכול להיות' הוא בהתאם לתקן IETF שמוגדר ב-RFC2119.
פורמט קובץ MP4-AT
פורמט הקובץ MP4-AT מורכב מטרקים ראשיים ומטרקים משניים, שמאפשרים לבצע פעולות עריכה שונות. הטראקים הראשיים (לדוגמה, טראק וידאו שהוחל עליו אפקט בוקה) נכתבים בקובץ ה-MP4 כרגיל, ואילו הטראקים המשניים נכתבים בקובץ MP4 של טראקים משניים.
Auxiliary Tracks MP4 הוא מאגר נוסף תואם MP4, והוא ממוקם בתוך התיבה axte
(Auxiliary Tracks Extension). מומלץ שהתיבה axte
תהיה התיבה האחרונה בקובץ, כדי שיהיה קל להסיר נתונים משניים על ידי חיתוך הקובץ.
הפורמט הזה תואם לאחור: נגנים שלא תומכים בשאר הפורמט הזה יקריאו ויפעילו את הטראקים הראשיים של הסרטון בזמן טעינת הקובץ.
הקובץ מכיל את התיבה moov.meta
עם הטיפולן mdta
שמכיל את המטא-נתונים הבאים. המטא-נתונים יכולים להופיע בכל סדר.
מפתח מטא-נתונים |
אינדיקטור הסוג |
הערך |
|
78 (מספר שלם ללא סימן באורך 64 ביט ב-big endian) |
ההיסט בקובץ (בבייטים) של התיבה |
|
78 (מספר שלם ללא סימן באורך 64 ביט ב-big endian) |
האורך (בבייטים) של התיבה |
התיבה Auxiliary tracks extension (axte)
תחביר
התיבה axte
מתוארת באמצעות הסמנטיקה של התיבה שמוגדרת ב-ISO/IEC 14496-12:2022: 4.2
aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
bit(8) data[];
}
כאשר שדה הנתונים מכיל את קובץ ה-MP4 של הטראקים המשניים.
מטען ייעודי (payload)
תוכן העל של התיבה axte
הוא קובץ MP4 של טראקים משניים.
קובץ ה-MP4 של הטראקים המשניים כולל את המבנה הרגיל של קובץ MP4.
קובץ ה-MP4 של הטראקים המשניים מכיל מטא-נתונים לדוגמה של כל הטראקים המשניים.
כל נתוני העומס של טעימות הטראקים המשניים חייבים להיות מאוחסנים בתיבה mdat
של קובץ ה-MP4 של הטראקים המשניים, או בתיבה mdat
של קובץ ה-MP4 החיצוני (אבל לא בשתיהן).
במקרה הראשון, צריך להגדיר את auxiliary.tracks.interleaved
לערך 0 (ראו 'מטא-נתונים סטטיים' בהמשך), וההיסטים של הדגימות בתיבה axte.moov
הם ביחס להתחלה של קובץ ה-MP4 של הטראקים המשניים. כך קובץ ה-Auxiliary Tracks MP4 הוא עצמאי, כלומר אפשר לקרוא את קובץ ה-Auxiliary Tracks MP4 בנפרד, בלי הפניות לקובץ ה-MP4 החיצוני.
במקרה השני, צריך להגדיר את auxiliary.tracks.interleaved
לערך 1 (ראו 'מטא-נתונים סטטיים' בהמשך), וההיסטים של הדגימות בתיבה axte.moov
הם ביחס לתחילת הקובץ, ויכול להיות שנתוני העומס של הדגימות בטראקים הראשי והמשני יהיו משולבים.
תיבת axte.mdat
עשויה להיות לא קיימת במקרה כזה.
מטא-נתונים סטטיים
קובץ ה-Auxiliary Tracks MP4 מכיל את התיבה moov.meta
עם הטיפולן mdta
שמכיל את המטא-נתונים הבאים. המטא-נתונים יכולים להופיע בכל סדר.
מפתח מטא-נתונים |
אינדיקטור הסוג |
הערך |
(אופציונלי) |
75 (מספר שלם ללא סימן באורך 8 ביט) |
0: מציין שהטעימות לא משובצות ונמצאות בתיבה 1: מציין שהטעימות משובצות בתיבה כל שאר הערכים שמורים ואי אפשר להשתמש בהם. אם המטא-נתונים האלה לא מופיעים, הערך שמוגדר כברירת מחדל הוא 0. |
|
0 (שמור) |
פורמט בינארי:
|
הסדר של סוגי הטראקים ב-auxiliary.tracks.map
מציין את הסדר שלהם בעומס העבודה של Auxiliary Tracks MP4.
סוגי טראקים משניים
קובץ ה-Auxiliary Tracks MP4 עשוי להכיל את הטראקים הבאים של הסרטון והמטא-נתונים, שיעזרו לכם לערוך את הסרטון.
טראק וידאו חד
סרטון ברזולוציה מלאה ללא אפקטים שניתן לערוך. יכול להיות שטראק הווידאו יישמר ברזולוציה שונה מטראק הווידאו הראשי. בטראק הווידאו החד יכולים להשתמש בכל קודק וידאו נפוץ, והוא יכול להיות בטווח דינמי רגיל או גבוה.
טראק של סרטון עומק
טראק הווידאו של עומק התמונה מספק את נתוני העומק שמקודדים כווידאו רגיל בשחור-לבן. המטרה היא לאפשר פענוח וקידוד של טראקים של עומק במכשירים שאין להם תמיכה מיוחדת בפענוח או בקידוד של עומק. טראק הווידאו של העומק יכול להשתמש בקודק H.264/AVC, H.265/HEVC, VP9, AV1 או בכל קודק וידאו נפוץ אחר. טראק הווידאו של העומק יכול להיות 8 ביט או 10 ביט, עם קידוד לינארי או הפוך (ראו מפרט Dynamic depth 1.0).
טראק של מטא-נתונים של עומק מתוזמן
טראק המטא-נתונים של עומק הזמן מכיל ערכים רגולריים לחישוב העומק, וטבלת מוקד שאפשר להשתמש בה כדי לחשב את רדיוס הטשטוש של אפקט הבוקה.
סוג MIME לדוגמה |
|
תחביר לדוגמה |
פורמט בינארי (כל המספרים השלמים הם little endian):
|
טראק וידאו שקוף
טראק וידאו שמאחסן את ערך האלפא (השקיפות) של כל פיקסל בפריים התואם. ערך מינימלי מציין שקיפות מלאה, ואילו הערך המקסימלי מציין אטימות מלאה. ערכים באמצע מייצגים רמות שונות של שקיפות בסולם לינארי, והשילוב משתמש במצב המיזוג הרגיל עם ערכי צבע שלא הומרו מראש. בדומה לטראק של וידאו עומק, גם הטראק הזה צריך להיות מקודד כווידאו רגיל בגווני אפור.
תרחישים לדוגמה
שמירת סרטון בוקע (bokeh) שעבר עיבוד ואפשר להפעיל אותו בטראק ראשי, עם טראקי וידאו משניים לנתוני הצבע החדים המקוריים (לפני הטשטוש) ולמפת עומק, וטראק משני של מטא-נתונים מתוזמנים עם מטא-נתונים של עומק שמשקפים את נקודת המיקוד בכל פריים. לאחר מכן אפשר להשתמש בטראקים המשניים בעורך וידאו כדי לשנות את נושא המיקוד ולייצר מחדש טראק וידאו באיכות גבוהה עם אפקט בוקה.
אחסון של סרטון 'סטיקר' שקוף שעבר עיבוד מראש, למשל סרטון אמוג'י מונפש על רקע לבן, בטראק וידאו ראשי, עם טראק וידאו משני שמכיל מפת אלפא. לאחר מכן, מעבד הווידאו יכול להשתמש בטראק המשני כדי למזג את התג עם הרקע באמצעות נתוני השקיפות מהטראק המשני.