Recuperare e riparare video MP4 interrotti o cancellati

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:

  1. Recupero: qualora il video fosse stato cancellato, la prima cosa da fare è cercare di recuperarlo per poterlo riparare
  2. Riparazione: la riparazione che tenteremo di effettuare consisterà nel sostiture alcune righe del file danneggiato con quelle di un file funzionante dello stesso tipo
  3. 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.

41 commenti

  1. Federico scrive:

    Complimenti e grazie! ho seguito la tua guida e sono riuscito a recuperare il video del mio primo volo in deltaplano! :D

  2. Ale152 scrive:

    @Federico:
    Mi fa davvero piacere :D

  3. Luca scrive:

    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..

  4. Ale152 scrive:

    @Luca:
    È strano, prova a cercare qualche altro atom dopo esds, in modo da poterlo identificare e copiare nel file danneggiato.

  5. William scrive:

    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??

  6. Ale152 scrive:

    @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 :(

  7. William scrive:

    Ok grazie per adesso…proverò a usare audacity

  8. William scrive:

    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…

  9. William scrive:

    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?

  10. Ale152 scrive:

    @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.

  11. Cavo scrive:

    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

  12. Ale152 scrive:

    @Cavo:
    Hai scaricato la versione con licenza Personal e non una licenza a pagamento in versione trial?

  13. Cavo scrive:

    Io nel sito di WinHex riesco a scaricare solo quella versione, sinceramente non trovo nessuna versione trial…

  14. Ale152 scrive:

    @Cavo:
    Hai ragione, prova ad utilizzare Notepad++ con il plugin per visualizzare in hex. È freeware e funziona ;)

  15. Cavo scrive:

    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!

  16. Max scrive:

    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

  17. Ale152 scrive:

    @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.

  18. Max scrive:

    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.

  19. Ale152 scrive:

    @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 ;)

  20. Max scrive:

    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.

  21. Andrea scrive:

    Ciao Ale152,
    anch’io come Max ho un file danneggiato mp4 type avc1, nel file funzionate ho trovato MDAT e in seguito separato da molte righe ESDS. In quello danneggiato trovo solo MDAT. Tu sai dirmi cosa e dove devo copiare per salvare il file???

  22. Gigi scrive:

    anche io ho l’identico problema di Ale152 e di Max ma ho nel file corrotto e in quello buono sia mdat che esds. Tuttavia nel file corrotto il mdat e quasi all’inizio e esds particamente a metà file e nel file buono il mdat é all’inizio e esds praticamente a fine file. cominciano a storcermisi gli occhi ….che fare?

  23. JERRY scrive:

    CIAO, HO BISOGNO DI UN AIUTO…HO FATTO UN VIDEO CON UNA TELECAMERINA NASCOSTE…E L’HO REGISTRATO DIRETTAMENTE SUL PC TRAMITE UNA SCHEDA ACQISIZIONE VIDEO ESTERNA DI TIPO PEN-DRIVE…ED IL PROGRAMMA USATO è VIDEO STUDIO 10…SOLO ALLA FINE MI SONO ACCORTO CHE NON HO L’AUDIO C’è UNA POSSIBILITà DI RECUPERARLO?MI Sà CHE LA PEN-DRIVE IN QUESTIONE NON L’HO INSTALLATA BENE…COSA POSSO FARE? GRAZIE MILLE ALE

  24. Ale152 scrive:

    @JERRY:
    La telecamerina è predisposta per l’acquisizione audio?
    Quando l’hai collegata alla scheda di acquisizione, hai collegato sia il cavo video che il cavo audio?

  25. Albe77 scrive:

    Come si usa di preciso mp4creator??? Mi dite di inserire il comando sopra però non ho capito dove e poi che rate devo inserire…Grazie!

  26. giò scrive:

    Ciao, ho un enorme problema. dei video girato con una videocamera sono stati danneggiati. Ho provato a seguire le istruzioni ma non riesco a salvare il file per via della versione limitata di Winhex.Non trovo quella con la versione licenza temporanea.Cosa posso fare in merito? Te ne sarei grato!!!

  27. Ale152 scrive:

    #giò:
    È strano, io con la versione free riesco a salvare i file!
    Comunque puoi trovare a questo indirizzo una serie di hex editor freeware.

  28. giò scrive:

    grazie ale152. provo a vedere cosa riesco a fare…speriamo bene!!!

  29. giò scrive:

    x ale 152
    Ciao, la prima parte relativa all’hex sono riuscito a farla. ora ho scaricato l’mp4 creator ma non riesco ad installarlo. Esce per un secondo una finestra nera con delle scritte che però non faccio in tempo a leggere. che casino….help

  30. Ale152 scrive:

    @giò:
    MP4Creator funziona da riga di comando, non ha un’interfaccia grafica.
    Per utilizzarlo devi aprire il prompt dei comandi di Windows (Start -> Esegui -> cmd, oppure WinKey+R -> cmd), il resto è scritto nella guida ;) .

  31. jerry scrive:

    ciao ale certo che la telecamerina ha l’audio e l’ho collegata correttamente…grazie

  32. alessandro scrive:

    Ciao ragazzi ho un problema dovrei recuperare dei video che ho fatto con la mia fotocamera, in formato mpg mi consigliate un programma per il recupero grazie

  33. antonella scrive:

    indirizzato ad ale152: ho iniziato a sguire la procedura ma non ci sono riuscita! come posso fare?
    precisamente, ho recuperato il video mp4 erroneamente cancellato dal mio cellulare, ma non riesco a riprodurlo, perchè danneggiato.

    se ti inviassi il file,potresti fornirmi qualche ulteriore aiuto?
    grazie

  34. Carlo scrive:

    Ciao, ho un file in formato mp4 che non è stato chiuso in quanto la scheda a causa di un colpo è uscita fuori dalla videocamera mentre registrava. Nel file è presente il record mdat – ftyp ma non esds. Quindi non riesco ad applicare la guida che avete pubblicato. Ho ovviamente provato anche con programmi reperibili su internet ma niente da fare. potete aiutarmi??

  35. Max scrive:

    Dalla mia esperienza con situazione analoga alla tua, ma per motivi diversi. Sono riuscito a risolvere solamente con il software commerciale di Aeroquartet.com

  36. Ale152 scrive:

    @Carlo
    La guida che ho scritto è relativa ad un caso abbastanza specifico: il recupero di un file cancellato.
    Non essendo esperto nel campo dei video, non so come potresti adattare la guida alla tua soluzione, l’unica cosa che posso consigliarti è andare a tentativi…

    Se il video che hai perso è davvero importante, puoi fare come consiglia Max e utilizzare un software commerciale di recupero video. Questi software analizzano il file in maniera estremamente accurata cercando di riconoscervi tutti i fotogrammi, per poi ricostruire il video in base ai dati recuperati.

  37. yellows scrive:

    Io ho un problema, ho realizzato 4 video mp4 con il mio cellulare samsung galaxy s1 ma due di questi si sentono solamente e non si vedono da cosa può dipendere??

  38. Carlo scrive:

    Grazie @Ale152

  39. Carlo scrive:

    Il programma indicato da Max funziona (Aeroquartet.com) il problema è solo che gira sotto MAC ed è a pagamento ma scaricando la versione di prova (ovviamente sul MAC di un mio amico) a facendogli leggere il file riesco a vedere il filmato.

  40. dom scrive:

    Ciao ci sono quasi ma mi blocco qui Per prima cosa rinominiamo il file video danneggiato da .mp4 a .mp4v, altrimenti il software non riconosce l’estensione. dopo nn so che fare potresti spiegare passo passo grazieee

  41. dom scrive:

    scusami ci sono arrivato con calma ma che parametri devo mettere al posto ri rate??? e dove devo prenderlii???

1 Trackbacks

Lascia un commento