Quando la registrazione di un video in formato MP4 viene bruscamente interrotta e il file non viene finalizzato, spesso il filmato diventa inutilizzabile. Nelle stesse condizioni ci si può ritrovare se si tenta di recuperare un filmato accidentalmente cancellato: la maggior parte dei dati è recuperata, ma mancando alcune informazioni fondamentali non è possibile riprodurre il video.
La prima cosa che si può tentare di fare è cercare di riprodurre il video con un programma un po’ più flessibile, come ad esempio VLC, per poi salvarlo in un nuovo file. La lista di programmi che è possibile utilizzare per provare a riprodurre il video è pressoché interminabile, ma dopo averne provati 4-5 le speranze calano e si perde fiducia.
Il metodo che intendo spiegare in questo articolo non è proprio semplicissimo, specie per chi non ha mai avuto a che fare con l’hex editing, ma cercherò di spiegare tutti i passaggi in modo quanto più dattagliato è possibile.
Premetto che non sono un esperto di editing video e la soluzione a cui sono giunto deriva da numerose ricerche su google e sui vari forum dedicati all’argomento. Inoltre in questa guida utilizzo software per Windows, ma il procedimento può essere seguito con software equivalenti su GNU/Linux.
Vediamo in breve quali sono le operazioni da effettuare per ripristinare un video:
- Recupero: qualora il video fosse stato cancellato, la prima cosa da fare è cercare di recuperarlo per poterlo riparare
- Riparazione: la riparazione che tenteremo di effettuare consisterà nel sostiture alcune righe del file danneggiato con quelle di un file funzionante dello stesso tipo
- Salvataggio: una volta riparato il file, ne salveremo una versione riproducibile in un nuovo file MP4
1. Recupero
Se il nostro problema deriva da una cancellazione accidentale (o non!) del video, la prima cosa da fare è tentare di recuperarlo. È importante notare che quando un file viene “cancellato” dal dispositivo, nella maggior parte dei casi non viene realmente eliminato dalla memoria, ma viene “nascosto” rendendo lo spazio da lui occupato disponibile per altri file. Se quindi dopo la cancellazione la memoria non è stata più utilizzata, le probabilità di ritrovare il file integro sono abbastanza elevate.
Il programma che ho utilizzato con Windows è WinHex, disponibile anche in versione free. Su GNU/Linux è disponibile una valida alternativa che è PhotoRec.
Da Strumenti -> Apri unità disco selezioniamo la nostra memoria nel gruppo Unità logiche. Se non dovesse aprirsi la finestra che permette di esplorare le cartelle, visualizziamola tramite Visualizza -> Mostra -> Esplora cartella. Tramite questa finestra possiamo accedere alla cartella contenente il file cancellato, che è possibile recuperare semplicemente tramite Click destro sul file -> Recupera/Copia. Se il file dovesse essere contrassegnato da un’icona con una X e dimensioni di pohi kB, il suo recupero potrebbe diventare molto più complicato. Lo stesso vale se questo non dovesse essere affatto presente nella lista di file. In questo caso WinHex mette a disposizione degli strumenti, accessibili tramite Strumenti -> Utilità disco sui quali però non mi soffermerò.
2. Riparazione
Veniamo ora alla parte più interessante di questa guida. In questa fase avremo bisogno di un editor esadecimale; potete utilizzare ancora WinHex se siete su Windows, oppure una qualsiasi alternativa come Shed per sistemi GNU/Linux.
Prima di dirvi come procedere è necessario capire innanzitutto come è strutturato un file MP4: una spiegazione dettagliata la potete trovare QUI; in breve esso è costituito da una serie di atom, che sono una specie di tag contenenti informazioni sui video. Ogni atom è costituito da 8 byte (caratteri): 4 byte per la sua dimensione (in giallo, nella foto) e altri 4 per il nome (in azzurro).
La riparazione che tenteremo di effettuare consiste nel copiare l’atom di nome esds da un filmato funzionante a quello danneggiato.
Apriamo con un editor esadecimale un filmato girato con lo stesso dispositivo del video danneggiato e cerchiamo la stringa esds. Dovrebbe essercene una sola, preceduta dall’atom mp4v e seguita dall’atom mdat.
Selezioniamo tutto l’atom esds, partendo da 4 byte prima del nome, fino a 4 byte prima di mdat, come indicato nella figura:
Questa stringa va copiata tra l’atom ftyp e l’atom esds, nella prima riga del file danneggiato. Ricordate sempre che l’atom inizia con i 4 byte sulle dimensioni, seguiti dai 4 byte del nome, quindi la stringa va incollata giusto 4 caratteri prima della stringa “esds”, come indicato in figura:
A questo punto siamo pronti per la fase finale, il salvataggio del video in una versione riproducibile.
3. Salvataggio
Per salvare il file in una versione riproducibile utilizzeremo MP4Creator, un software open source che permette di aprire il bytestream e salvarlo come filmato MP4 riproducibile.
Per prima cosa rinominiamo il file video danneggiato da .mp4 a .mp4v, altrimenti il software non riconosce l’estensione. Collochiamo MP4Creator e il video da riparare nella stessa directory, ed eseguiamo il seguente comando:
mp4creator --create=fdanneggiato.mp4v --rate=24 --verbose video.mp4
Sostituendo ovviamente fdanneggiato e rate con i parametri del nostro video. In realtà MP4Creator supporta l’opzione –variable-frame-rate, ma con me non ha funzionato, su nessuno dei due pc con cui ho provato.
Se tutto è andato a buon fine, il nuovo file video.mp4 dovrebbe essere visualizzabile correttamente da qualsiasi player video.
L’unico problema di questo sistema è che non riesce a recuperare l’audio dei filmati. Ripeto, non essendo un esperto di editing video non so di preciso a cosa sia dovuto il problema, ma sono quasi sicuro se si possa recuperare anche quello.
In conclusione, ho testato questo procedimento sia con un filmato la cui registrazione è stata bruscamente interrotta, sia con un filmato che era stato cancellato da un cellulare (Nokia N82) e in entrambi i casi sono riuscito a recuperare il video con successo.



Complimenti e grazie! ho seguito la tua guida e sono riuscito a recuperare il video del mio primo volo in deltaplano!
@Federico:
Mi fa davvero piacere
io ho trovato la voce “mp4v” e la voce “esds” ma non quella “mdat”…me la da solo sopra all inizio e staccata ovviamente dalle altre due che devo trovare..
@Luca:
È strano, prova a cercare qualche altro atom dopo esds, in modo da poterlo identificare e copiare nel file danneggiato.
Ciao Ale152,devo chiederti un favore enorme…
Ho un grossissimo problema.Praticamente ho fatto una registrazione Audio con l’iphone e il file è importantissimo.
Il fatto è che il file non viene letto ne dall’iphone ne da programmi del computer come vlc mediaplayer ecc..
Ho provato a convertirlo e niente…
Ho letto la tua guida ma non riesco a causa della mia spraticità….
Il fatto è che il file è danneggiato…ed è un m4a ed è di 74mb.
Ti chiedo per favore di aiutarmi…se potresti dirmi come devo fare di preciso??
@William:
Purtroppo non sono pratico del recupero file in generale. Per i file mp4 ho imparato facendo molti tentativi, ma se non ho il file sotto mano non saprei cosa fare.
Il tuo file è anche molto grande ed è difficile da passare, però posso provare a darti qualche consiglio.
Nel campo dell’audio, il software migliore che conosco per questo tipo di problemi è Audacity. È un software open source disponibile per diversi sistemi operativi, lo puoi trovare a questo indirizzo:
http://audacity.sourceforge.net/
Tramite Audacity puoi provare ad importare il file come Raw data (Project->Import Raw Data…), impostando le caratteristiche del tuo file.
Purtroppo non sono esperto in questo campo, quindi non posso aiutarti più di tanto
Ok grazie per adesso…proverò a usare audacity
Ho convertito il file in mp3. Adesso dovrei trovare un programma che ripara i file mp3 in autmatico…ne avevo scaricato uno ma non ricordo piu come si chiama…
Come non detto…il programma l’ho trovato ma il file m4a che ho convertito in mp3 con Audacity me lo ha fatto in mp3 ma da 74mb lo ha convertito in 43kb…
Cosa devo fare?
@William:
Sei sicuro di aver impostato correttamente i dati del tuo file audio, quando hai importato il tuo file?
Quando importi un file come raw data, Audacity non legge l’header del file, contente tutte le istruzioni per poterlo eseguire (che potrebbero essere danneggiate) e quindi devi dargliele tu.
Ciao, io oltre a non trovare gli atom “finali” mdat (nel file non corrotto) e esds (nel file corrotto), però ci sono altri atom quindi volevo provare con quelli, non riesco neanche a salvare il file, perchè mi dice che la versione di WinHex non salva file maggiori di 200k
@Cavo:
Hai scaricato la versione con licenza Personal e non una licenza a pagamento in versione trial?
Io nel sito di WinHex riesco a scaricare solo quella versione, sinceramente non trovo nessuna versione trial…
@Cavo:
Hai ragione, prova ad utilizzare Notepad++ con il plugin per visualizzare in hex. È freeware e funziona
Grazie mille per il supporto, ho eseguito il tuo procedimento ma purtroppo non sono riuscito a riparare il file, probabilmente era troppo corrotto (lo presuppongo dal fatto che i miei atom finali erano diversi rispetto al tuo esempio)…non era un video fondamentale quindi me ne farò una ragione. Grazie mille ancora
Ciao!
Ciao, complimenti. Potrei chiederti supporto per il recupero di un file MP4 ma di tipo AVC? vedo che al suo interno gli Atom sono molto differenti da quelli che indichi te. Hai qualche indicazione da darmi in merito “ftypavc1″ il file è stato generato da una camera samsung full-hd. grazie
@Max
In giro ho trovato l’analisi degli atom di un MP4 AVC (file type: avc1), e ho visto che gli atom esds e mdat ci sono. Ora, anche se la struttura del file è diversa, dovresti provare a indentificare l’atom esds (il fatto che segua mdat è sufficiente a indentificarlo) per copiarlo nel file danneggiato dopo ftyp.
Allora forse sbaglio qualche passaggio. Ho trovato
ESDS ho trovato MDAT pero mentre nel tuo esempio i due sono visivamente vicini uno all’altro nel mio file tra i due ci sono centinaia di righe.
Nel file danneggiato non ho affatto ESDS ne MDAT. Non sono riuscito a capire in questo caso dove devo incollare le righe del file corretto. Purtroppo non ho capito bene come viene individuato l’inizio e la fine degli atom.
@Max
Se nel file danneggiato manca mdat credo ci sia poco da fare, purtroppo. Questo atom contiene il vero e proprio filmato «grezzo», senza il quale non puoi identificarlo, estraendone il contenuto.
L’unico consiglio che posso darti è quello provare ad utilizzare un software di recupero professionale, come Treasured:
http://aeroquartet.com/movierepair/download.html
Purtroppo gira solo su Mac, ma se non hai intenzione di acquistare la versione completa puoi utilizzare la versione demo almeno per scoprire se nel tuo file c’è ancora qualcosa di recuperabile.
La differenza tra questo software e gli altri che girano su internet è che questo fa un’analisi dettagliata del file raw, cercando di estrarre immagini ed audio dal filmato, quindi non importa se manca qualche atom.
Buona fortuna
Grazie si ho provato con quel software ed infatti era lui quello che mi faceva ben sperare.
Usando Treasured dall’anteprima e dalla percentuale di recupero mi fa vedere tutto e segna 95% di possibilità di recupero. Per questo speravo di riuscirci con il tuo metodo.