मूल वीडियो फ़ाइल हेडर को FFmpeg में कैसे रखें [बंद]


1

मैं अपने इनपुट वीडियो फ़ाइलों पर कुछ प्रसंस्करण करने के लिए FFMpeg का उपयोग करने की कोशिश कर रहा हूं जो बाद में आगे के प्रसंस्करण के लिए एक एमुलेटर सॉफ्टवेयर (एक पैकेट सॉफ्टवेयर) को दिया जाता है। एमुलेटर मूलतः एक पैकेट सॉफ्टवेयर है। लेकिन कोई फर्क नहीं पड़ता कि यह क्या है, मूल वीडियो फ़ाइल जो काम करती है संलग्न है। फ़ाइल के निर्माता ने कहा कि उसने फ़ाइल bento4के निर्माण के लिए उपकरण का उपयोग किया है । FFmpeg से उस टूल से अलग क्या है?

समस्या यह है कि एमुलेटर मूल वीडियो फ़ाइल को पढ़ सकता है, लेकिन जब मैं बस कमांड का उपयोग करता हूं ffmpeg -i input.video -c copy output.mp4, जबकि इसे अनिवार्य रूप से सभी कॉन्फ़िगरेशन की प्रतिलिपि बनाना चाहिए, एमुलेटर नई फ़ाइल को पढ़ और संसाधित नहीं कर सकता है।

यहाँ मूल.mp4 फ़ाइल की एक प्रति है जो एमुलेटर में ठीक काम करती है।

मैंने mediainfoदो फ़ाइलों के विवरणों की तुलना करने के लिए टूल का उपयोग किया और ध्यान दिया, जबकि सभी वीडियो कोडेक संबंधित कॉन्फ़िगरेशन समान हैं, हेडर के आकार में कुछ अंतर हैं जो संभवतः समस्याओं का कारण बन रहे हैं। क्या FFmpeg को हेडर की जानकारी (कोडेक्स से अलग) रखने के लिए बाध्य करने का कोई तरीका है? या शायद अन्य समस्याएं हैं? किसी भी मामले में, आउटपुट वीडियो पूरी तरह से समान नहीं है।

अद्यतन: मैं अभी भी इस मुद्दे से जूझ रहा हूं। मैंने एमुलेटर कोड में देखा, और यह MOOVजानकारी के लिए और टुकड़े हेडर को पार्स करता है । MP4 एक्सप्लोरर सॉफ्टवेयर का उपयोग करते हुए, मैं अपनी उत्पन्न .mp4फ़ाइल में देखता हूं , सभी के लिए moof.traf.trun, नमूना अवधि 0 है, लेकिन ट्रैक फ़्रेग्मेंट हैडर बॉक्स में, यह default_sample_duration512 पर सेट होता है। जबकि कार्य फ़ाइल में, कोई भी नहीं है default_sample_duration, और प्रत्येक व्यक्ति का नमूना है आकार 512 की अवधि। मुझे लगता है कि यह समस्या हो सकती है। अब किसी भी तरह से इसे मूल बनाने के लिए?

यहां छवि विवरण दर्ज करें


आप क्या बिल्ली मतलब है "एमुलेटर?"
JakeGould

एमुलेटर मूलतः एक पैकेट सॉफ्टवेयर है। लेकिन कोई फर्क नहीं पड़ता कि यह क्या है, मूल वीडियो फ़ाइल जो काम करती है संलग्न है।
एरियाना

मुझे यकीन नहीं है कि इसे हल किया जा सकता है ... कम से कम उस "एमुलेटर" सॉफ़्टवेयर तक पहुंच के बिना और इसे डीबग करना नहीं है। क्या आपको कोई लॉग आउटपुट मिलता है क्या गलत है? क्या यह कहता है कि यह फ़ाइल को संसाधित क्यों नहीं कर सकता है? क्या आप किसी डेवलपर के साथ जांच कर सकते हैं?
33

विशिष्ट त्रुटि नहीं। यह इसके लिए NULL दिखता है:loading binary file\ pthread_join(thread[1], NULL);
एरियाना

2
हम्म, यह सवाल तब अनुमान लगाने के लिए नीचे आता है। यह अंततः मालिकाना सॉफ्टवेयर में बग / समस्या है, जिसे हम बहुत आसानी से हल नहीं कर सकते हैं।
slhck

जवाबों:


2

अगर हेडर के द्वारा, आप MOOV बॉक्स / परमाणु का मतलब है, तो ffmpeg हमेशा एक नया बॉक्स का निर्माण करेगा। यह बक्से या उनकी सामग्री की नकल नहीं कर सकता। आपकी कमांड क्या करती है FFmpeg को मूल फाइल से सभी स्ट्रीमों को हटाने और उन्हें एक नए कंटेनर में रिमूव करने के लिए कहा गया है।

क्या आप अपने एमुलेटर की तलाश में विशिष्ट हो सकते हैं?


एमुलेटर मूलतः एक पैकेट सॉफ्टवेयर है। लेकिन कोई फर्क नहीं पड़ता कि यह क्या है, मूल वीडियो फ़ाइल जो काम करती है संलग्न है।
एरियाना

2
आपकी संलग्न फ़ाइल में MOOV अपफ्रंट है, जो ffmpeg डिफ़ॉल्ट रूप से नहीं करता है। कोशिशffmpeg -i input.video -c copy -movflags +faststart output.mp4
ज्ञान

@Mulvya मैं उन विवरणों को जोड़ने के लिए आपके उत्तर को समायोजित करने की सिफारिश करूंगा।
जेकेगॉल्ड

1
ठीक है, mp4box इंगित करता है कि आपका स्रोत खंडित mp4 है। तो, कोशिश करेंffmpeg -i input.video -c copy -movflags +dash output.mp4
ज्ञान

1
@Mulvya हाँ यह स्ट्रीमिंग प्रयोजनों के लिए है। कि एक विभाजन गलती फेंकता है! segmentation fault (core dumped)लगता है जैसे हम करीब हो रहे हैं!
एरियाना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.