"इनपुट प्रोसेस करते समय अमान्य डेटा मिला" — FFmpeg वीडियो में गड़बड़ी
यह FFmpeg के सबसे कम मददगार एरर मैसेज में से एक है। यह सबसे आम मैसेज में से एक है। मैसेज से ऐसा लगता है मानो FFmpeg ने तय कर लिया है कि आपकी फ़ाइल रिकवर नहीं की जा सकती, लेकिन इसका असली मतलब इससे ज़्यादा सटीक है: FFmpeg के पार्सर को बाइट्स का एक सिक्वेंस मिला, जिसे वह अपेक्षित फ़ाइल फ़ॉर्मेट से मिला नहीं पा रहा है।
इसके आधा दर्जन अलग-अलग मतलब हो सकते हैं। उनमें से ज़्यादातर समस्याओं का समाधान किया जा सकता है।
FFmpeg असल में आपको क्या बता रहा है
FFmpeg किसी फ़ाइल को चरणों में पार्स करता है। सबसे पहले यह कंटेनर (MP4, MOV, MKV, AVI, आदि) की पहचान करता है। फिर यह स्ट्रीम खोजने के लिए कंटेनर का इंडेक्स पढ़ता है। फिर यह अलग-अलग स्ट्रीम पैकेट को पार्स करता है। "इनपुट प्रोसेस करते समय अमान्य डेटा मिला" का मतलब है उस पाइपलाइन में कहीं पार्सिंग का कोई स्टेप विफल हो गया। गड़बड़ी से आपको यह पता नहीं चलता कि कौन-सा चरण।
आम अंतर्निहित कारण:
- कंटेनर हेडर ठीक है, कोडेक हेडर खराब है। FFmpeg जानता है कि यह एक MP4 है। यह MOOV को पढ़ता है। यह H.264 स्ट्रीम पैकेट पढ़ना शुरू करने की कोशिश करता है और ऐसे बाइट्स पाता है, जो H.264 NAL सिंटैक्स से मेल नहीं खाते। कोडेक पैरामीटर सेट खराब है।
- कंटेनर का प्रकार गलत है। एक '.mov' फ़ाइल जिसके अंदर दरअसल MKV है, या एक '.avi' जो दरअसल एक खराब MP4 है। FFmpeg एक्सटेंशन (या हेडर स्निफ़िंग) के आधार पर पार्सर चुनता है और गलत पार्सर चुन लेता है।
- फ़ाइल मिड-फ़्रेम में कटी हुई है। FFmpeg ट्रंकेशन पॉइंट तक ठीक से पढ़ता है, फिर फ़्रेम के बीच में EOF पर पहुँचता है और अगले नॉन-डिकोडेबल बाइट्स को अमान्य बताता है।
- MOOV एटम पूरी तरह से गायब है। कम आम — FFmpeg आमतौर पर खासतौर पर "moov atom not found" रिटर्न करता है। लेकिन कुछ खराब कंटेनरों पर, FFmpeg सामान्य अमान्य-डेटा मैसेज दिखाता है।
- कोडेक स्ट्रीम में बिट-फ़्लिप। 'mdat' के अंदर मौजूद कुछ बाइट्स बदल गए (फ़ाइलसिस्टम में गड़बड़ी, बैड सेक्टर)। FFmpeg का डिकोडर एक मालफॉर्म्ड पैकेट देखता है और काम करना बंद कर देता है।
यह कैसे पता लगाएँ कि आपको कौन-सी समस्या है
वर्बोज़ लॉगिंग के साथ FFmpeg चलाएँ:
ffmpeg -v debug -i broken.mp4 -f null -
वर्बोज़ आउटपुट में आमतौर पर सामान्य अमान्य-डेटा त्रुटि से पहले एक ज़्यादा विशिष्ट मैसेज होता है। इनकी तलाश करें:
- "moov atom not found" → हमारा MOOV पेज देखें।
- "invalid NAL unit size" → H.264 / H.265 में कोडेक हेडर क्षतिग्रस्त है।
- "Truncated stream" → फ़ाइल मिड-फ़्रेम में कटी हुई है।
- "no audio stream" → ऑडियो मेटाडेटा खराब है; वीडियो को अभी भी बचाया जा सकता है।
- 'stco' या 'stsz' जैसा कोई खास एटम नाम → MOOV मौजूद है, लेकिन उसका फ़ॉर्मेट सही नहीं है।
अगर वर्बोज़ मोड से मदद नहीं मिलती, तो 'ffprobe' आज़माएँ:
ffprobe -v error -show_format -show_streams broken.mp4
अगर 'ffprobe' स्ट्रीम के बारे में उपयोगी जानकारी देता है, तो फ़ाइल FFmpeg एरर के मुताबिक जितनी खराब होनी चाहिए, उससे बेहतर स्थिति में है।
आप खुद क्या आज़मा सकते हैं
री-एन्कोडिंग के बिना री-मक्स
ffmpeg -err_detect ignore_err -i broken.mp4 -c copy out.mp4
'-err_detect ignore_err' फ़्लैग FFmpeg को स्ट्रीम में मौजूद मामूली गड़बड़ियों को अनदेखा करने का निर्देश देता है, ताकि वह प्रक्रिया को रोककर बाहर न निकल जाए। अक्सर एक प्ले किया जा सकने वाला आउटपुट देता है, भले ही सख्त पार्स विफल हो जाए। संरचनात्मक समस्याओं को ठीक नहीं करता (गायब MOOV, गलत कंटेनर प्रकार), लेकिन कई "बिट-फ्लिप" मामलों को बचाता है।
कोई दूसरा कंटेनर आज़माएँ
ffmpeg -i broken.mp4 -c copy out.mkv
MKV, MP4 की तुलना में ज़्यादा सहनशील कंटेनर है। अगर कोडेक डेटा बरकरार है, तो MKV में फिर से मक्स करने पर अक्सर एक ऐसी फ़ाइल बनती है, जो हर जगह चलती है।
MOOV न मिलने के मामलों के लिए 'untrunc'
अगर वर्बोज़ लॉग में "moov atom not found" लिखा हुआ है, तो MOOV रिकवरी गाइड का पालन करें।
कोई दूसरा प्लेयर
VLC, IINA, mpv सभी अंदर से FFmpeg का इस्तेमाल करते हैं, लेकिन डिकोड सख्ती की सेटिंग अलग-अलग होती है। कभी-कभी कोई फ़ाइल जो 'ffmpeg -i' में नहीं चलती, वह VLC में ठीक से चलती है, जिसका मतलब है कि आप VLC के काम करने वाले प्लेबैक से ट्रांसकोड कर सकते हैं।
हमारी रिकवरी "अमान्य डेटा" वाले मामलों को कैसे संभालती है
अपलोड के समय की जाने वाली डायग्नोस्टिक इन फ़ाइलों के लिए सबसे ज़रूरी कदम है। हमारी पाइपलाइन निम्नलिखित रन करती है:
- सिक्स-पास डायग्नोस्टिक जो सिर्फ़ FFmpeg पर निर्भर नहीं है — यह FFmpeg, MediaInfo और हमारे अपने बाइट-लेवल हेडर प्रोब को एक साथ चलाता है और नतीजों का मिलान करता है।
- कंटेनर स्कैन जो घोषित फ़ाइल फ़ॉर्मेट से स्वतंत्र है। हम एटम को सिग्नेचर से ढूँढते हैं, एक्सटेंशन से नहीं।
- फ़्रेम-लेवल कोडेक डिटेक्शन जो कोडेक हेडर के डैमेज होने पर भी काम करता है — हम पहले पूर्ण फ़्रेम से पैरामीटर फिर से प्राप्त करते हैं।
- ट्रंकेशन हैंडलिंग जिसमें फ़ाइल के फ़्रेम के बीच में खत्म होने पर सुरक्षित तरीके से टेल-ट्रिम किया जाता है।
व्यवहार में, "इनपुट प्रोसेस करते समय अमान्य डेटा मिला" जैसी समस्या हमें मिलने वाली अधिकांश फ़ाइलों में रिकवर की जा सकने वाली समस्या में बदल जाती है। ऐसे मामले जिनमें हम मदद नहीं कर सकते: कोडेक-डेटा-आंतरिक खराबी (कम्प्रेस किए गए फ़्रेम के अंदर बिट-फ़्लिप्स) जहाँ प्रभावित हिस्सा बड़ा है।
आपको क्या करना है
- फ़ाइल अपलोड करें. अधिकतम 50 GB।
- ~1 मिनट बाद आपको एक डायग्नोस्टिक और जहाँ लागू हो, वहाँ 5 सेकंड का मुफ़्त प्रीव्यू मिलता है। डायग्नोस्टिक आपको बताता है कि कौन-सा मूल कारण ज़िम्मेदार है।
- अगर रिकवरी संभव है, तो आप प्रीव्यू देखें, सिर्फ़ तभी भुगतान करें, जब यह काम करे और फिर डाउनलोड करें। अगर नहीं, तो आपने कुछ मिनट और शून्य डॉलर खर्च किए हैं।
FAQ
FFmpeg ने मुझे [specific camera] से ली गई फ़ाइल पर यह गड़बड़ी दिखाई — क्या कैमरे से कोई फ़र्क पड़ता है? गड़बड़ी के पैटर्न से कम। वर्बोज़ लॉग आपको बताएगा कि समस्या क्या है; वहाँ से, रिकवरी का तरीका कैमरे से परे एक जैसा ही है। विशिष्ट कैमरे के पेज देखें: Sony A7S III, Canon R5, GoPro Hero 12, DJI Mavic 3, Atomos Ninja.
यह गड़बड़ी तब दिखाई दी, जब मैंने खुद FFmpeg की मदद से फ़ाइल को कनवर्ट करने की कोशिश की। ज़रूरी सवाल: क्या आपके पास अभी भी ओरिजिनल फ़ाइल मौजूद है? अगर है, तो उस पर काम करें। अगर आपके पास सिर्फ़ FFmpeg आउटपुट है (जो शायद असफल कनवर्ज़न की वजह से अधूरा लिखा गया हो), तो ओरिजिनल फ़ाइल ही रिकवर की जा सकने वाली फ़ाइल है।
यह गड़बड़ी उस फ़ाइल के बीच में दिखाई देती है, जिसे पहले 20 सेकंड तक तो चलाया जा सका। फ़ाइल के बीच में संरचनात्मक समस्या। कभी-कभी खराब हिस्से को काटकर इसे रिकवर किया जा सकता है; कभी-कभी सिर्फ़ अच्छे हिस्से को सेव करके। अपलोड के समय की जाने वाली जाँच से हमें पता चलता है।
मेरी फ़ाइल तकनीकी रूप से '.mp4' है, लेकिन मेरा कैमरा उसके अंदर MOV जैसा डेटा लिखता है। यह एक वास्तविक श्रेणी है। डायग्नोस्टिक कंटेनर की पहचान उसके कंटेंट से करता है, एक्सटेंशन से नहीं, इसलिए वह इस मिसमैच को समझ लेता है।
क्या रिकवरी के दौरान मेरी फ़ुटेज सुरक्षित रहती है? सर्वर फ़्रांस में है, 48 घंटों के बाद ऑटो-डिलीट हो जाता है, किसी भी चीज़ को ट्रेन करने के लिए कभी इस्तेमाल नहीं किया जाता या शेयर नहीं किया जाता। निजता नीति।
संबंधित
- "MOOV atom not found" का क्या मतलब है
- MP4 फ़ाइल ट्रंकेटेड — रिपेयर गाइड
- हमारा रिकवरी इंजन कैसे काम करता है
मुफ़्त प्रीव्यू · कोई प्रतिबद्धता नहीं
क्या आप अपना वीडियो रिकवर करने के लिए तैयार हैं?
अपनी फ़ाइल अपलोड करें। लगभग एक मिनट में 5-सेकंड का मुफ़्त प्रीव्यू पाएँ। अगर प्रीव्यू सही लगता है, तो ही भुगतान करें।
अपना वीडियो अपलोड करें →