"कोई मान्य MP4 नहीं मिला" — फ़ाइल कैसे रिकवर करें
यह गड़बड़ी — कभी-कभी "कोई मान्य MP4 नहीं मिला," "मान्य MP4 फ़ाइल नहीं है," "फ़ाइल का फ़ॉर्मेट पहचाना नहीं जा सका," या "कोई एटम नहीं मिला" — एक पार्सर से आती है, जिसने आपकी फ़ाइल खोली, बाइट्स के पहले हिस्से को देखा और यह नतीजा निकाला कि यह MP4 बिल्कुल नहीं है।
यह "MP4 with a missing index" से ज़्यादा गंभीर स्थिति है। पार्सर को इस बात का भी यकीन नहीं है कि वह किसी MP4 को देख रहा है। तीन चीज़ें हो सकती हैं।
कारण 1: 'ftyp' एटम मौजूद नहीं है या डैमेज हो गया है
हर MP4 / MOV फ़ाइल एक 'ftyp' एटम से शुरू होती है — यह एक छोटा (आमतौर पर 32-बाइट) हेडर होता है, जो फ़ाइल की पहचान MP4 / MOV के रूप में करता है और फ़ॉर्मेट ब्रांड की घोषणा करता है। अगर वे पहले बाइट्स क्षतिग्रस्त हैं या गायब हैं — ओवरराइट किए गए हैं, कभी लिखे ही नहीं गए, फ़ाइल की आंशिक कॉपी में खो गए हैं — तो पार्सर "MP4" नहीं देख पाता और काम छोड़ देता है।
ऐसा अक्सर तब होता है जब:
- कॉपी पूरी होने से पहले किसी SD कार्ड से फ़ाइल आंशिक रूप से कॉपी की गई थी।
- फ़ाइल के पहले सेक्टर में फ़ाइलसिस्टम की कोई गड़बड़ी आ गई।
- एक अविश्वसनीय टूल के साथ पिछली रिकवरी की कोशिश ने हेडर को हटा दिया।
कारण 2: फ़ाइल वास्तव में MP4 नहीं है
यह हो सकता है:
- नाम बदलकर '.mkv' कर दिया गया हो (MKV फ़ाइलें '1A 45 DF A3' से शुरू होती हैं — पूरी तरह से अलग)।
- नाम बदलकर '.avi' कर दिया गया हो (RIFF-फ़ॉर्मेट हेडर)।
- रॉ '.h264' / '.h265' एलीमेंटरी स्ट्रीम, जिसे किसी ने '.mp4' एक्सटेंशन दे दिया हो।
- बिना कंटेनर वाला ProRes रॉ स्ट्रीम।
टेस्ट:
file your_file.mp4
अगर 'file' 'ISO Media, MP4 ...' के अलावा कुछ और रिपोर्ट करता है, तो यह वास्तव में MP4 नहीं है।
कारण 3: फ़ाइल सिर्फ़ 'mdat' है — इसमें कोई कंटेनर नहीं है
रिकवरी की कुछ कोशिशों (या कैमरे की विफलता के कुछ मोड) से एक ऐसी फ़ाइल बनती है, जिसमें सिर्फ़ रॉ 'mdat' पेलोड होता है और 'ftyp' या MOOV नहीं होता — सिर्फ़ कंप्रेस किए हुए वीडियो फ़्रेम होते हैं, जो फ़ाइल में मौजूद होते हैं। पार्सर को कोई भी एटम सिग्नेचर नज़र नहीं आता और वह काम करना बंद कर देता है।
इसे रिकवर किया जा सकता है, लेकिन इसके लिए सिर्फ़ इंडेक्स को फिर से बनाने की नहीं, बल्कि डेटा के इर्द-गिर्द एक पूरा कंटेनर बनाने की ज़रूरत होती है।
यह कैसे पता लगाएँ कि कौन-सा कारण है
file your_file.mp4
xxd your_file.mp4 | head -1
पहले 16 बाइट पढ़ें:
- बाइट 4–12 में कहीं '... ftyp ...' से शुरू होता है → आंशिक क्षति वाला कारण 1; 'ftyp' बाइट 4 पर होना चाहिए, लेकिन हो सकता है कि वह शिफ़्ट हो गया हो।
- '1A 45 DF A3' से शुरू होता है → यह दरअसल MKV है।
- '52 49 46 46' ('RIFF') से शुरू होता है → यह दरअसल AVI / WAV / WebP है।
- '00 00 00 01' या '00 00 01' से शुरू होता है → यह एक रॉ H.264 / H.265 स्ट्रीम है।
- 'icpf' से शुरू होता है (या पहले चंक में इसके करीब) → रॉ ProRes फ़्रेम।
- रैंडम दिखने वाले बाइट्स से शुरू होता है → कारण 3 (सिर्फ़ 'mdat') या गंभीर खराबी।
ffprobe -v error your_file.mp4
अगर 'ffprobe' गड़बड़ी के बावजूद स्ट्रीम के बारे में उपयोगी जानकारी देता है, तो फ़ाइल को उतनी आसानी से रिकवर नहीं किया जा सकता, जितना लगता है।
आप खुद क्या आज़मा सकते हैं
कारण 1 के लिए — हेडर में आंशिक नुकसान
ffmpeg -err_detect ignore_err -i broken.mp4 -c copy out.mp4
कभी-कभी यह काम करता है, अगर 'ftyp' आंशिक रूप से बरकरार हो और FFmpeg को नुकसान के बाद एटम मिल जाएँ।
कारण 2 के लिए — फ़ाइल का नाम बदल दिया गया
वास्तविक फ़ॉर्मेट के अनुसार नाम बदलें और सामान्य रूप से प्ले करें:
mv broken.mp4 broken.mkv
कारण 3 के लिए — सिर्फ़ 'mdat'
यह ज़्यादा मुश्किल मामला है और इसमें कोडेक की पहचान करने के लिए फ़्रेम-लेवल विश्लेषण की ज़रूरत होती है, फिर शुरू से कंटेनर का निर्माण करना पड़ता है। हमारा पाइपलाइन बिल्कुल यही काम करता है।
हमारी रिकवरी इसे कैसे संभालती है
- फ़ाइल के पहले MB का बाइट-लेवल स्कैन जिसमें 'ftyp', एटम सिग्नेचर और कोडेक-विशिष्ट फ़्रेम मार्कर खोजे जाते हैं।
- फ़्रेम डेटा से कोडेक की पहचान — यह तब भी काम करता है, जब कोई कंटेनर मेटाडेटा मौजूद न हो (कारण 3)।
- ज़रूरत पड़ने पर शुरू से कंटेनर सिंथेसिस: हम पहचाने गए फ़्रेमों के इर्द-गिर्द एक नया MP4 रैपर बनाते हैं।
- नाम बदले गए फ़ाइलों के मामलों में फ़ॉर्मेट की पहचान — डायग्नॉस्टिक वास्तविक फ़ॉर्मेट की पहचान करता है और या तो मूल फ़ाइल की मरम्मत करता है या आपको नाम बदलने के लिए कहता है।
खासतौर पर कारण 3 के लिए, यह रिकवरी के सबसे मुश्किल तरीकों में से एक है — हम दरअसल रॉ कोडेक डेटा के इर्द-गिर्द एक कंटेनर बना रहे हैं — लेकिन जब कोडेक ऐसा हो जिसे हम पहचानते हैं (ProRes, H.264, H.265, MJPEG), तो इसे संभाला जा सकता है।
आपको क्या करना है
- फ़ाइल अपलोड करें. अधिकतम 50 GB।
- डायग्नॉस्टिक यह पहचानता है कि कौन-सा कारण लागू होता है और क्या रिकवर किया जा सकता है।
- अगर रिकवरी संभव है, तो आप प्रीव्यू देखते हैं और सिर्फ़ तभी भुगतान करते हैं, जब वह काम करे।
FAQ
फ़ाइल का साइज़ ठीक वैसा ही है, जैसा मुझे रिकॉर्डिंग से उम्मीद है, तो यह MP4 क्यों नहीं है? फ़ाइल का आकार फ़ॉर्मेट से संबंधित नहीं है। किसी फ़ाइल का साइज़ सही हो सकता है, लेकिन उसके हेडर बाइट्स पूरी तरह से गलत हो सकते हैं (ओवरराइट किए गए, कभी लिखे ही नहीं गए, किसी खराब कनवर्ज़न की वजह से खराब हो गए)। 'file' और 'xxd' की मदद से वास्तविक सामग्री की जाँच करें।
पहले इस्तेमाल किए गए एक रिकवरी टूल ने एक "फ़िक्स की हुई" फ़ाइल लिखी, जिसकी वजह से यह गड़बड़ी आ रही है। आम बात है। कुछ टूल 'ftyp' को इस तरह से हटा देते हैं या उसमें बदलाव कर देते हैं, जिससे वह अन्य टूल के साथ काम नहीं करती। अगर आपके पास अभी भी मूल फ़ाइल मौजूद है (खराब रिकवरी से पहले की), तो उस पर काम करें। अगर नहीं, तो आपके पास जो है उसे अपलोड करें — हम आमतौर पर आंशिक रूप से खराब आउटपुट से भी फ़ाइल को फिर से बना सकते हैं।
मेरे कैमरे ने यह गड़बड़ी सीधे SD कार्ड से पैदा की। ऐसा तब हो सकता है, जब रिकॉर्डिंग की शुरुआत में ही कैमरा बंद हो गया हो, यानी 'ftyp' लिखे जाने से पहले। यह MOOV के गायब होने से कम आम है, लेकिन ऐसा होता है। इसे अपलोड करें।
क्या यह रॉ '.h264' / '.h265' एलीमेंटरी स्ट्रीम पर काम करेगा? हाँ — हम उन्हें एक मान्य MP4 / MOV कंटेनर में रैप कर देते हैं। फ़्रेम टाइमिंग का अनुमान लगाना पड़ता है (एलीमेंटरी स्ट्रीम में कोई टाइमस्टैम्प नहीं होता), इसलिए परिणाम डिफ़ॉल्ट फ़्रेम रेट पर चलता है; ज़रूरत पड़ने पर आप बाद में FFmpeg की मदद से इसमें फेरबदल कर सकते हैं।
क्या मेरी फ़ुटेज सुरक्षित है? सर्वर फ़्रांस में है, 48 घंटे बाद ऑटो-डिलीट हो जाता है, किसी भी चीज़ को ट्रेन करने के लिए इस्तेमाल नहीं किया जाता या शेयर नहीं किया जाता। निजता नीति।
संबंधित
मुफ़्त प्रीव्यू · कोई प्रतिबद्धता नहीं
क्या आप अपना वीडियो रिकवर करने के लिए तैयार हैं?
अपनी फ़ाइल अपलोड करें। लगभग एक मिनट में 5-सेकंड का मुफ़्त प्रीव्यू पाएँ। अगर प्रीव्यू सही लगता है, तो ही भुगतान करें।
अपना वीडियो अपलोड करें →