2013-03-27 4 views
15

मुझे वीडियो "वेब अनुकूलित" या स्ट्रीम करने में आसान बनाने के लिए, एमपी 4 वीडियो कंटेनर के अंत से moov परमाणु को स्थानांतरित करने के बारे में बहुत सारे प्रश्न दिखाई देते हैं। ऐसा लगता है कि वीडियो को पहले एन्कोड करते समय अधिकांश टूल को ऐसा करने के लिए एक स्पष्ट विकल्प की आवश्यकता होती है, अगर यह बिल्कुल उपलब्ध है।क्या MP4 फ़ाइल की शुरुआत में MOOV परमाणु डालने का कोई नकारात्मक पक्ष है?

यदि शुरुआत में परमाणु रखने से स्ट्रीमिंग बेहतर हो जाती है, और यह वास्तव में ऐसा करने के लिए महंगा है, तो मैं कभी अंत में परमाणु के साथ वीडियो क्यों एन्कोड करना चाहता हूं? क्या फायदा है?

उत्तर

13

फ़ाइल के अंत में एमओवीवी एन्कोडिंग आमतौर पर वीडियो एन्कोडर्स के लिए एक डिफ़ॉल्ट ऑपरेशन होता है क्योंकि वे आउटपुट फ़ाइल को एक-पास में लिखकर संचालित करते हैं, और एमओवीवी परमाणु की सटीक सामग्री और आकार केवल ज्ञात हो सकता है ऑडियो और वीडियो डेटा पूरी तरह से लिखने के बाद, क्योंकि इसमें पूर्ण फ़ाइल आकार होते हैं।

मुख्य उदाहरण इस बात के लिए, ffmpeg है एक व्याख्या यह उत्तर में पाया साथ: https://stackoverflow.com/a/8066089/393701

ffmpeg इस परमाणु के लिए स्थान आरक्षित करने का विकल्प है, लेकिन यह गारंटी नहीं है कि डेटा पूरी तरह से फिट होगा।

अंत में एमओवीवी परमाणु को कोई विशेष लाभ नहीं है, यह स्थानीय प्लेबैक परिस्थितियों में असुविधाजनक नहीं है, जहां प्लेबैक से पहले अंत में फ़ाइल की मांग करना प्रगतिशील डाउनलोड डिलीवरी के रूप में महंगा नहीं है।

+2

यह कल्पना करना मुश्किल है कि, एन्कोडेड फिल्म बनाने के लिए 30 मिनट, या एक घंटे या दस लेने के दायरे में, कोई भी अतिरिक्त मिनट या दो को ध्यान में रखेगा जो एमओवीवी परमाणु लिखने के लिए लेता है, फिर कॉपी करें शेष डेटा खंडों के बाकी हिस्सों। निश्चित रूप से I/O लागत को पहले स्थान पर एन्कोडिंग करने के लिए आवश्यक गणना द्वारा बौना किया जाता है? – Coderer

+2

मुझे लगता है कि यह एन्कोडिंग सॉफ़्टवेयर पर निर्भर करता है, लेकिन ffmpeg पर्याप्त सामान्य है कि "तथ्य के बाद फ़ाइल को फिर से लिखना" को वर्तमान स्थिति में प्रमुख रिफैक्टरिंग की आवश्यकता है। एफएलवी फाइलों और मेटाडाटा के साथ एक ही समस्या है, ताकि ऐसे सॉफ़्टवेयर हों जैसे फ्लॉल्टोल या फ्ल्वामेटा जो एन्कोडिंग के बाद उन्हें ठीक से इंजेक्ट करने के लिए आवश्यक हैं। किसी को भी यह एहसास होना चाहिए कि वीडियो एन्कोडर्स हमेशा तलाशने योग्य धाराओं (उदाहरण के लिए नेटवर्क स्ट्रीम) पर डेटा नहीं लिखते हैं, जहां वापस जाना संभव नहीं है। – SirDarius

+0

मुझे पता है कि यह ऑफटॉप है लेकिन मैं अभी भी पूछने जा रहा हूं; एंड्रॉइड का वीडियो तत्व केवल एमपी 4 फाइलों को चला सकता है, इसलिए यदि मूव तत्व अंत में है तो भी यह किसी भी मुद्दे के बिना http स्ट्रीम के माध्यम से वीडियो चलाता है। यह कैसे संभव है? एंड्रॉइड हैंडल मूव परमाणु के बिना वीडियो कैसे करता है? –

4

आप हमेशा फ़ाइल की शुरुआत में इंडेक्स की जानकारी रखना चाहते हैं, केवल इस को छोड़कर इस लेआउट के लिए कोई छुपी लागत नहीं है: कैप्चरिंग/ट्रांसकोडिंग करते समय आप पहले से ही यह बताने में असमर्थ हो सकते हैं कि आप कितनी जगह शुरुआत में उस एमओवीवी परमाणु की आवश्यकता है, और इसका डेटा अभी तक अच्छी तरह से उपलब्ध नहीं है। तो आप आमतौर पर सीधे पेलोड को फ़ाइल में लिखते हैं और वे एमओवीवी जोड़कर और बाकी फाइल को अपडेट करके लिखते हैं।

संबंधित मुद्दे