मैं अपने इनपुट वीडियो फ़ाइलों पर कुछ प्रसंस्करण करने के लिए FFMpeg का उपयोग करने की कोशिश कर रहा हूं जो बाद में आगे के प्रसंस्करण के लिए एक एमुलेटर सॉफ्टवेयर (एक पैकेट सॉफ्टवेयर) को दिया जाता है। एमुलेटर मूलतः एक पैकेट सॉफ्टवेयर है। लेकिन कोई फर्क नहीं पड़ता कि यह क्या है, मूल वीडियो फ़ाइल जो काम करती है संलग्न है। फ़ाइल के निर्माता ने कहा कि उसने फ़ाइल bento4
के निर्माण के लिए उपकरण का उपयोग किया है । FFmpeg से उस टूल से अलग क्या है?
समस्या यह है कि एमुलेटर मूल वीडियो फ़ाइल को पढ़ सकता है, लेकिन जब मैं बस कमांड का उपयोग करता हूं ffmpeg -i input.video -c copy output.mp4
, जबकि इसे अनिवार्य रूप से सभी कॉन्फ़िगरेशन की प्रतिलिपि बनाना चाहिए, एमुलेटर नई फ़ाइल को पढ़ और संसाधित नहीं कर सकता है।
यहाँ मूल.mp4
फ़ाइल की एक प्रति है जो एमुलेटर में ठीक काम करती है।
मैंने mediainfo
दो फ़ाइलों के विवरणों की तुलना करने के लिए टूल का उपयोग किया और ध्यान दिया, जबकि सभी वीडियो कोडेक संबंधित कॉन्फ़िगरेशन समान हैं, हेडर के आकार में कुछ अंतर हैं जो संभवतः समस्याओं का कारण बन रहे हैं। क्या FFmpeg को हेडर की जानकारी (कोडेक्स से अलग) रखने के लिए बाध्य करने का कोई तरीका है? या शायद अन्य समस्याएं हैं? किसी भी मामले में, आउटपुट वीडियो पूरी तरह से समान नहीं है।
अद्यतन:
मैं अभी भी इस मुद्दे से जूझ रहा हूं। मैंने एमुलेटर कोड में देखा, और यह MOOV
जानकारी के लिए और टुकड़े हेडर को पार्स करता है । MP4 एक्सप्लोरर सॉफ्टवेयर का उपयोग करते हुए, मैं अपनी उत्पन्न .mp4
फ़ाइल में देखता हूं , सभी के लिए moof.traf.trun
, नमूना अवधि 0 है, लेकिन ट्रैक फ़्रेग्मेंट हैडर बॉक्स में, यह default_sample_duration
512 पर सेट होता है। जबकि कार्य फ़ाइल में, कोई भी नहीं है default_sample_duration
, और प्रत्येक व्यक्ति का नमूना है आकार 512 की अवधि। मुझे लगता है कि यह समस्या हो सकती है। अब किसी भी तरह से इसे मूल बनाने के लिए?
loading binary file\ pthread_join(thread[1], NULL);