Ripara il file adesso
- Trascina il file
- La riparazione avviene in locale
- Scarica il risultato
Trascina l'MP4 qui sopra. Lo strumento lo legge in locale e indica se il moov è danneggiato o del tutto assente, il che determina la via di riparazione. Non si installa nulla e non si carica nulla.
A che punto è il motore, con onestà: la riparazione strutturale tramite remux (per i file il cui moov esiste ma è danneggiato, troncato o con offset errati) funziona già oggi. La ricostruzione completa dell'indice per i file che non hanno alcun moov è ancora in sviluppo.
Cosa significa l'errore
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x...] moov atom not found Invalid data found when processing inputUn MP4 conserva i tuoi fotogrammi compressi in un unico grande blocco (l'atomo mdat) e, separatamente, l'atomo moov: l'indice che registra dove inizia ogni fotogramma, quanto dura e come si intrecciano audio e video. Il moov viene scritto quando la registrazione viene finalizzata, perché la dimensione e il numero dei fotogrammi non si conoscono finché la codifica non termina. Un blocco, un'interruzione di corrente o una scheda piena prima di quel momento lasciano il blocco dei dati sul disco e l'indice da nessuna parte.
Ecco perché la seconda riga di ffmpeg dice invalid data: il demuxer non sta segnalando riprese distrutte, sta segnalando che non ha un indice con cui interpretarle. Un problema diverso, e molto più facile da risolvere.
Perché ffmpeg non può risolverlo
Se sei qui, probabilmente hai già provato ffmpeg -i broken.mp4 -c copy out.mp4 e magari -movflags faststart. Entrambi hanno fallito per lo stesso motivo: operano sull'output di una lettura riuscita. La copia del flusso ha bisogno che il demuxer le passi i pacchetti; faststart riposiziona un moov che deve già esistere. Quando l'input non ha il moov, la lettura fallisce prima che una di queste opzioni conti qualcosa. Non è un'opzione che non hai ancora trovato; è un limite reale di ciò che un convertitore può fare. Riparare il file significa ricostruzione, non conversione: scandire il blocco dei dati grezzi in cerca dei confini dei fotogrammi e ricostruire le tabelle dei campioni a partire da ciò che si trova.
Contro untrunc — e a che punto è il nostro motore
untrunc è lo strumento gratuito di riferimento proprio per questa ricostruzione, e funziona. La frizione, però, è reale: lo compili tu stesso (o ti fidi di una build di terze parti), lo esegui dalla riga di comando e richiede un file di riferimento: una registrazione integra dallo stesso dispositivo con le stesse impostazioni, usata per interpretare i fotogrammi grezzi nel file danneggiato.
La nostra posizione, detta con chiarezza: il motore nel browser di IntactFile esegue oggi la riparazione strutturale tramite remux: file il cui moov è sopravvissuto in forma danneggiata. La ricostruzione in stile untrunc di un file senza moov è in sviluppo, e non fingeremo che sia disponibile prima che lo sia davvero. Se il tuo moov manca del tutto e ti serve la soluzione in questo istante, untrunc è la raccomandazione onesta; se la diagnosi qui sopra mostra un indice danneggiato ma presente, la riparazione nel browser lo gestisce già ora — senza compilare, senza cercare un file di riferimento, senza caricare nulla.
Cosa può e cosa non può riparare
Ricostruire un indice, con qualsiasi strumento, funziona quando i dati multimediali sono sopravvissuti. E di solito lo sono: il mdat viene scritto in modo continuo durante la registrazione, quindi tutto ciò che precede l'interruzione è fisicamente nel file. Ciò che nessun software può fare è riparare un file i cui dati non sono mai stati scritti. L'indizio è la dimensione: una «registrazione di un'ora» che occupa 12 KB, o un file che risulta quasi tutto zeri perché la scheda SD è morta a metà scrittura, non ha nulla dentro da indicizzare. Confronta la dimensione con la durata della registrazione prima di perdere tempo con qualsiasi strumento — il nostro o quello di chiunque altro. E una riparazione fallita non viene mai addebitata.