MP4-AT फ़ाइल फ़ॉर्मैट में, ऐसे सहायक ट्रैक स्टोर किए जा सकते हैं जो ISOBMFF/MP4 स्ट्रक्चर में चलने वाले मीडिया डेटा के साथ-साथ, रिकॉर्डिंग के बाद होने वाली एडिटिंग और कॉम्पोज़िशन (उदाहरण के लिए, डेप्थ मैप वीडियो ट्रैक) के लिए काम के होते हैं.
इस फ़ॉर्मैट का मकसद, सहायक ट्रैक को इस तरह से सेव करना है कि वे इस स्पेसिफ़िकेशन को लागू न करने वाले क्लाइंट से छिपे रहें. इससे क्लाइंट, सहायक ट्रैक को चलाए जा सकने वाले डेटा के तौर पर नहीं समझ पाते.
डिपेंडेंसी
इस स्पेसिफ़िकेशन के लिए, यहां दिए गए रेफ़रंस मान्य हैं:
- ज़रूरी शर्तों के लेवल के बारे में बताने के लिए, आरएफ़सी में इस्तेमाल किए जाने वाले कीवर्ड
- ISO/IEC 14496-12:2022 ISO Box मीडिया फ़ाइल फ़ॉर्मैट (ISOBMFF/MP4)
- ISO/IEC 14496-10:2022 Coding of audio-visual objects Part 10: Advanced video coding (AVC)
- ISO/IEC 23008-2:2023 अलग-अलग तरह के एनवायरमेंट में हाई एफ़िशिएन्सी कोडिंग और मीडिया डिलीवरी पार्ट 2: हाई एफ़िशिएन्सी वीडियो कोडिंग (एचईवीसी)
- VP9 वीडियो कोडेक (VP9)
- AV1 बिटरस्ट्रीम और डिकोडिंग प्रोसेस स्पेसिफ़िकेशन (AV1)
- डाइनैमिक डेप्थ 1.0 का स्पेसिफ़िकेशन
परिचय
RFC2119 में बताए गए IETF स्टैंडर्ड के मुताबिक, "ज़रूरी है", "ज़रूरी नहीं है", "ज़रूरी है", "चाहिए", "चाहिए नहीं", "सुझाया गया", "हो सकता है", और "ज़रूरी नहीं है" का इस्तेमाल किया जाता है.
MP4-AT फ़ाइल फ़ॉर्मैट
MP4-AT फ़ाइल फ़ॉर्मैट में प्राइमरी ट्रैक और सहायक ट्रैक होते हैं, ताकि वीडियो में बदलाव करने की अलग-अलग कार्रवाइयां की जा सकें. मुख्य ट्रैक (उदाहरण के लिए, ऐसा वीडियो ट्रैक जिस पर बोकेह इफ़ेक्ट लागू किया गया है) को आम तौर पर MP4 फ़ाइल में लिखा जाता है. वहीं, सहायक ट्रैक को सहायक ट्रैक MP4 में लिखा जाता है.
अतिरिक्त ट्रैक का MP4, MP4 फ़ॉर्मैट का पालन करने वाला एक और कंटेनर है. इसे axte
(अतिरिक्त ट्रैक एक्सटेंशन) बॉक्स में रखा जाता है. हमारा सुझाव है कि axte
बॉक्स, फ़ाइल का आखिरी बॉक्स हो. इससे फ़ाइल को छोटा करके, सहायक डेटा को आसानी से हटाया जा सकता है.
यह फ़ॉर्मैट, पुराने वर्शन के साथ काम करता है: ऐसे प्लेयर जो इस फ़ॉर्मैट के बाकी हिस्सों के साथ काम नहीं करते वे फ़ाइल लोड करते समय मुख्य वीडियो ट्रैक को पढ़ेंगे और चलाएंगे.
फ़ाइल में mdta
हैंडलर वाला moov.meta
बॉक्स है, जिसमें यह मेटाडेटा शामिल है. मेटाडेटा किसी भी क्रम में दिख सकता है.
मेटाडेटा कुंजी |
टाइप इंडिकेटर |
वैल्यू |
|
78 (बिग इंडियन 64-बिट बिना साइन वाला इंटिजर) |
|
|
78 (बिग इंडियन 64-बिट बिना साइन वाला इंटिजर) |
|
सहायक ट्रैक एक्सटेंशन (axte) बॉक्स
वाक्य-विन्यास
axte
बॉक्स के बारे में, ISO/IEC 14496-12:2022: 4.2 में बताए गए बॉक्स के सेमेटिक्स का इस्तेमाल करके बताया गया है
aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
bit(8) data[];
}
जहां डेटा फ़ील्ड में अतिरिक्त ट्रैक MP4 शामिल हैं.
पेलोड
axte
बॉक्स का पेलोड, ऑक्ज़िलरी ट्रैक MP4 है.
अतिरिक्त ट्रैक MP4 में, MP4 का सामान्य स्ट्रक्चर होता है.
अतिरिक्त ट्रैक के तौर पर इस्तेमाल होने वाले MP4 में, सभी अतिरिक्त ट्रैक का सैंपल मेटाडेटा होता है.
सभी सहायक ट्रैक के सैंपल पेलोड को सहायक ट्रैक के एमपी4 के mdat
बॉक्स या बाहरी एमपी4 के mdat
बॉक्स में से किसी एक में सेव किया जाना चाहिए.
पहले मामले में, auxiliary.tracks.interleaved
को 0 पर सेट करना होगा (यहां "स्टैटिक मेटाडेटा" देखें) और axte.moov
बॉक्स में सैंपल ऑफ़सेट, अतिरिक्त ट्रैक MP4 की शुरुआत के हिसाब से होते हैं. इससे अतिरिक्त ट्रैक का MP4, अपने-आप काम करता है. इसका मतलब है कि अतिरिक्त ट्रैक का MP4, बाहरी MP4 के रेफ़रंस के बिना, स्टैंडअलोन तौर पर पढ़ा जा सकता है.
बाद वाले मामले में, auxiliary.tracks.interleaved
को 1 पर सेट किया जाना चाहिए (यहां "स्टैटिक मेटाडेटा" देखें). साथ ही, axte.moov
बॉक्स में सैंपल ऑफ़सेट, फ़ाइल की शुरुआत के हिसाब से होते हैं. साथ ही, प्राइमरी और सहायक ट्रैक के सैंपल पेलोड को इंटरलीव किया जा सकता है.
इस मामले में, axte.mdat
बॉक्स मौजूद नहीं हो सकता.
स्टैटिक मेटाडेटा
अतिरिक्त ट्रैक MP4 में, mdta
हैंडलर वाला एक moov.meta
बॉक्स होता है. इसमें यह मेटाडेटा होता है. मेटाडेटा किसी भी क्रम में दिख सकता है.
मेटाडेटा कुंजी |
टाइप इंडिकेटर |
वैल्यू |
(ज़रूरी नहीं) |
75 (8-बिट का बिना हस्ताक्षर वाला इंटिजर) |
0: इससे पता चलता है कि सैंपल इंटरलीव नहीं किए गए हैं और वे 1: इससे पता चलता है कि सैंपल, प्राइमरी वीडियो ट्रैक के अन्य सभी वैल्यू रिज़र्व हैं और इनका इस्तेमाल नहीं किया जाना चाहिए. इस मेटाडेटा के मौजूद न होने का मतलब है कि डिफ़ॉल्ट वैल्यू 0 है. |
|
0 (रिज़र्व किया गया) |
बाइनरी फ़ॉर्मैट:
|
auxiliary.tracks.map
में ट्रैक टाइप का क्रम, अतिरिक्त ट्रैक MP4 के पेलोड में उनके क्रम को दिखाता है.
सहायक ट्रैक के टाइप
अतिरिक्त ट्रैक MP4 में, वीडियो और मेटाडेटा के ये ट्रैक शामिल हो सकते हैं. ये ट्रैक, वीडियो में बदलाव करने के लिए काम के होते हैं.
शार्प वीडियो ट्रैक
पूरा रिज़ॉल्यूशन वाला ऐसा वीडियो जिसमें बदलाव किए जा सकने वाले इफ़ेक्ट न हों. वीडियो ट्रैक को मुख्य वीडियो ट्रैक से अलग रिज़ॉल्यूशन में सेव किया जा सकता है. शार्प वीडियो ट्रैक में किसी भी सामान्य वीडियो कोडेक का इस्तेमाल किया जा सकता है. साथ ही, यह स्टैंडर्ड या हाई डाइनैमिक रेंज में हो सकता है.
डेप्थ वीडियो ट्रैक
डेप्थ वीडियो ट्रैक, स्टैंडर्ड ग्रेस्केल वीडियो के तौर पर एन्कोड की गई डेप्थ की जानकारी देता है. ऐसा इसलिए किया गया है, ताकि उन डिवाइसों पर डीपथ ट्रैक को डिकोड और एन्कोड किया जा सके जिनमें डीपथ के लिए, डिकोड या एन्कोड करने की कोई खास सुविधा नहीं है. डेप्थ वीडियो ट्रैक में H.264/एवीसी, H.265/एचईवीसी, VP9, AV1 या कोई अन्य सामान्य वीडियो कोडेक इस्तेमाल किया जा सकता है. डेप्थ वीडियो ट्रैक 8-बिट या 10-बिट और लीनियर या इनवर्स-कोड किया जा सकता है (डाइनैमिक डेप्थ 1.0 स्पेसिफ़िकेशन देखें).
टाइमेड डेप्थ मेटाडेटा ट्रैक
समय के साथ डीपथ मेटाडेटा ट्रैक में, डीपथ का हिसाब लगाने के लिए सामान्य वैल्यू होती हैं. साथ ही, इसमें फ़ोकल टेबल होती है, जिसका इस्तेमाल बोकेह इफ़ेक्ट के लिए, ब्लर रेडियस का हिसाब लगाने के लिए किया जा सकता है.
MIME टाइप का सैंपल |
|
सिंटैक्स का सैंपल |
बाइनरी फ़ॉर्मैट (सभी ints little endian):
|
पारभासी वीडियो ट्रैक
यह एक वीडियो ट्रैक है, जिसमें उससे जुड़े फ़्रेम के हर पिक्सल के लिए, अल्फा वैल्यू (ट्रांसपेरेंसी) सेव की जाती है. कम से कम वैल्यू का मतलब है कि पूरी तरह से पारदर्शी है, जबकि ज़्यादा से ज़्यादा वैल्यू का मतलब है कि पूरी तरह से अपारदर्शी है. इन वैल्यू के बीच की वैल्यू, लीनियर स्केल पर अलग-अलग लेवल की पारदर्शिता दिखाती हैं. साथ ही, कॉम्पोज़िटिंग में, पहले से मल्टीप्लाई नहीं की गई कलर वैल्यू के साथ सामान्य ब्लेंडिंग मोड का इस्तेमाल किया जाता है. डेप्थ वीडियो ट्रैक की तरह ही, इस ट्रैक को भी स्टैंडर्ड ग्रेस्केल वीडियो के तौर पर एन्कोड किया जाना चाहिए.
इस्तेमाल के उदाहरण
प्राइमरी ट्रैक में, रेंडर किया गया बोकेह वीडियो सेव किया जा रहा है. इसमें ओरिजनल (धुंधला होने से पहले) शार्प कलर डेटा और डेप्थ मैप के लिए सहायक वीडियो ट्रैक और हर फ़्रेम में फ़ोकस पॉइंट दिखाने वाले डेप्थ मेटाडेटा के साथ, टाइम मेटाडेटा वाला सहायक ट्रैक भी शामिल है. इसके बाद, वीडियो एडिटर में सहायक ट्रैक का इस्तेमाल करके, फ़ोकस किए गए ऑब्जेक्ट में बदलाव किया जा सकता है. साथ ही, अच्छी क्वालिटी का बोकेह वीडियो ट्रैक फिर से रेंडर किया जा सकता है.
पहले से रेंडर किया गया पारदर्शी 'स्टिकर' वीडियो सेव करना. उदाहरण के लिए, मुख्य वीडियो ट्रैक में सफ़ेद बैकग्राउंड पर ऐनिमेशन वाला इमोजी वीडियो. साथ ही, सहायक वीडियो ट्रैक में अल्फा मैप. इसके बाद, कंपोजिटर, सहायक ट्रैक का इस्तेमाल करके स्टिकर को बैकग्राउंड के साथ ब्लेंड कर सकता है. इसके लिए, वह सहायक ट्रैक में मौजूद ट्रांसलूसिंसी की जानकारी का इस्तेमाल करता है.