Ripara ora
- Trascina il file
- La riparazione avviene in locale
- Scarica il risultato
Quasi tutti i lettori e i convertitori video si basano su ffmpeg, quindi i suoi errori spuntano ovunque, spesso come "[mov,mp4,m4a,3gp,3g2,mj2 @ ...] moov atom not found" seguito da "Invalid data found when processing input". Il messaggio è generico di proposito: internamente è AVERROR_INVALIDDATA, cioè il demuxer ha incontrato byte che non corrispondono al formato che si aspettava. Trascina il file qui sopra e lo strumento legge la struttura del contenitore nel tuo browser, stabilisce se il flusso video è sopravvissuto e ricostruisce un file pulito che il lettore può aprire, senza che il clip lasci mai il tuo dispositivo.
Perché il parser rifiuta un file il cui filmato è integro
Un file MP4 o MOV è un albero di box (chiamati anche atomi). Ogni box inizia con una dimensione di 4 byte e un tipo di 4 byte: ftyp dichiara il brand, mdat contiene i campioni audio e video grezzi, e moov è l'indice: le tabelle dei campioni che indicano dove si trova ogni fotogramma, quale codec lo decodifica e con quale marca temporale. Quando ffmpeg apre il file percorre questo albero. Se non trova un moov coerente, o un box dichiara una dimensione che sfora la fine del file, o i byte dove dovrebbe esserci l'intestazione di un box sono spazzatura, si ferma e segnala "Invalid data found when processing input".
E il punto fondamentale: i dati pesanti (l'mdat con il tuo filmato vero) possono essere completamente intatti mentre tutto questo accade. Il parser fallisce sull'indice, non sulle immagini. Ecco perché lo stesso file che "non ha dati validi" può essere pieno di fotogrammi in perfetto stato in attesa di un contenitore che li descriva correttamente. Questo si sovrappone molto al classico caso di "moov atom not found": una registrazione interrotta prima che la fotocamera scrivesse il suo moov lascia esattamente questa firma.
Ricostruire il contenitore perché torni a riprodursi
Quando i campioni sono sopravvissuti ma la mappa è rotta, la soluzione è rimultiplexare (remux): analizzare i dati del flusso sopravvissuti, ricostruire le tabelle dei campioni di cui il contenitore ha bisogno e scrivere un MP4 nuovo e ben formato attorno allo stesso filmato. Non c'è di mezzo alcuna ricodifica, quindi non c'è perdita di qualità: i fotogrammi sono gli originali, solo indicizzati di nuovo correttamente. Quando il moov manca del tutto, lo strumento lo ricostruisce a partire dalla struttura del flusso multimediale, così che il lettore abbia la mappa dei fotogrammi che cercava.
L'altro innesco frequente è un'estensione che non corrisponde o un trasferimento interrotto. Un file chiamato .mp4 che in realtà è stato salvato come un altro contenitore, o un clip il cui download si è fermato a metà, fanno entrambi soffocare ffmpeg con byte inattesi. Lo strumento verifica che cosa sia davvero il file dalle firme dei suoi box e non dal nome, e recupera la parte che è arrivata. Tutto questo gira nel tuo browser: senza installare ffmpeg, senza riga di comando e senza che alcun server riceva mai il video.
Quando davvero non si può riparare
Ricostruire il contenitore funziona solo quando il problema è il contenitore. Se i dati multimediali sottostanti sono essi stessi distrutti o sovrascritti (una scheda che ha restituito zeri, un file rovinato da un'unità che si sta guastando, una registrazione su cui la fotocamera ha registrato di nuovo in loop), non ci sono fotogrammi buoni da reindicizzare, e nessuno strumento può ricostruire un filmato che non è sul disco. Recupera prima i byte grezzi dall'archivio e poi ripara.
L'altro caso senza speranza, a essere onesti, è un file che in realtà non è un video: un documento, un'immagine o un frammento troncato che per caso porta un'estensione .mp4. Lì l'"Invalid data" è letteralmente vero, e nessun remux può trasformare un file non multimediale in un clip riproducibile. Quando invece il filmato è presente, l'approccio solo-browser significa che le registrazioni sensibili (prove giudiziarie, video personali, lavori non ancora pubblicati) vengono riparate senza essere copiate da nessuna parte. Apri la scheda Rete (Network) e potrai verificare che vengono inviati 0 byte del clip.
Cosa può e cosa non può riparare
Può riparare
- File MP4/MOV il cui indice moov manca o è danneggiato mentre il filmato dell'mdat è sopravvissuto
- Registrazioni interrotte prima che la fotocamera finalizzasse il contenitore (si sovrappone a 'moov atom not found')
- Tabelle dei campioni rotte, offset errati e marche temporali sbagliate che bloccano il demuxer
- Clip con un'estensione che non corrisponde, il cui contenitore reale lo strumento rileva dalla firma
- La parte di un download o trasferimento interrotto che è effettivamente arrivata
Non può riparare
- File in cui i dati multimediali stessi sono stati sovrascritti o restituiti come zeri: non ci sono fotogrammi da reindicizzare
- File che non sono multimediali (documenti, immagini, frammenti) mascherati da un'estensione video
- Filmato perso fisicamente a causa di un'unità o scheda che si guasta (recupera prima i byte grezzi e poi ripara)
- Flussi cifrati o protetti da DRM senza le loro chiavi
Se una riparazione fallisce, ti diciamo perché (dati mancanti rispetto a struttura danneggiata), e non ti viene mai addebitato nulla per una riparazione fallita.