Cosa fa davvero al file un'interruzione di corrente
Le action cam e i droni registrano in un contenitore MP4 o MOV, e quel contenitore ha una peculiarità precisa e implacabile. Mentre registri, la fotocamera riversa il video e l'audio compressi sulla scheda come un unico blocco che cresce. Non scrive ancora l'indice: la tabella che dice a un lettore dove inizia ogni fotogramma, quanto dura e come si allinea l'audio. La fotocamera può scrivere quell'indice solo una volta che la registrazione termina, perché fino ad allora non conosce le dimensioni finali. Così l'indice viene scritto per ultimo, nel momento in cui premi stop.
Togli la corrente prima di quel momento e ti resta un file con un inizio valido e tutto il tuo metraggio, ma senza indice. In termini MP4 il file ha la sua intestazione ftyp e il suo blocco mdat di dati multimediali, e gli manca l'atomo moov che li indicizza. Un lettore lo apre, non trova indice e lo rifiuta. Strumenti come ffmpeg lo segnalano senza giri di parole come moov atom not found. È il modo più comune in assoluto in cui si rompe il metraggio in volo e a metà registrazione, e, cosa importante, il più recuperabile, perché i dati sono sopravvissuti e se n'è andata solo la mappa.
Interruzione di corrente a metà registrazione, disegnata: il metraggio è arrivato sulla scheda, ma l'indice che la fotocamera scrive allo stop non è mai stato scritto.
Per un percorso a livello di byte attraverso quell'indice mancante e il motivo per cui vive alla fine del file, guarda cosa significa «moov atom not found».
Prova prima la riparazione della fotocamera stessa
Se riprendi con GoPro, la prima mossa è gratuita e ufficiale, e la maggior parte delle guide di riparazione la salta perché non vende nulla. Quando una GoPro trova un clip non finalizzato, di solito dopo una batteria scarica o una scheda estratta troppo presto, propone di riparare il file da sola alla successiva accensione. A seconda del modello vedrai un'icona di riparazione o le parole REPAIRING FILE sullo schermo. Premi un tasto qualsiasi per lasciarlo lavorare. Se funziona, ottieni un clip riproducibile direttamente dalla fotocamera, senza alcun software di mezzo.
Due limiti onesti della riparazione nella fotocamera, entrambi per scelta di progetto. Ripara solo i file troncati, esattamente il caso dell'interruzione di corrente descritto sopra; non può fare nulla contro una scheda che si sta guastando fisicamente. E funziona solo sui file registrati da quello stesso modello di fotocamera, perché si appoggia alla conoscenza che la fotocamera ha del proprio formato di registrazione. Se la riparazione entra in loop o si blocca, spegni la fotocamera, riposiziona la batteria e la scheda SD e concedile un ultimo tentativo prima di andare oltre. Gli aeromobili DJI, vale la pena dirlo chiaramente, non hanno una riparazione nella fotocamera equivalente, quindi il metraggio da drone va dritto all'approccio via software qui sotto.
Quando la riparazione nella fotocamera fallisce
La riparazione della fotocamera stessa è un buon primo passaggio, ma si arrende facilmente, e ci sono situazioni comuni che non tocca:
- Corrente persa a metà scrittura. Un taglio netto, una batteria strappata sotto carico o un drone che ha perso la corrente in aria possono lasciare il file in uno stato che la fotocamera si rifiuta di sistemare.
- La scheda è stata estratta troppo presto. Rimuovere la scheda prima che la fotocamera avesse finito di scaricare i dati lascia un file troncato che la fotocamera potrebbe non riconoscere al successivo avvio.
- La scheda si è riempita a metà registrazione. Restare senza spazio durante un clip è un altro modo di lasciare arenato un file non finalizzato.
- La riparazione entra semplicemente in loop. Dopo un riposizionamento, se ancora non si completa, la fotocamera ha fatto quello che poteva.
In ognuno di questi casi il file di fondo è lo stesso: metraggio presente, indice mancante. È un lavoro per una ricostruzione via software dell'indice, su una copia del file, così che l'originale sulla scheda resti intatto.
L'approccio del clip di riferimento
Ricostruire un indice mancante significa dedurre la struttura del metraggio dal metraggio stesso, e il modo più affidabile per farlo è con unclip di riferimento: una registrazione sana, finalizzata normalmente, della stessa fotocamera con le stesse impostazioni. Il clip sano porta con sé un indice completo e valido esattamente per la risoluzione, il frame rate, il codec e il bitrate che usava il tuo file rotto. Questo dà alla ricostruzione un modello che combacia, così può ricostruire l'indice mancante sopra il tuo metraggio sopravvissuto e scrivere un file riproducibile.
È la stessa classe di ricostruzione che eseguono strumenti a riga di comando come untrunc, ed è il motivo per cui il clip di riferimento conta così tanto: non è un ornamento, è la mappa che la ricostruzione legge per interpretare i tuoi dati. Procuratene uno riprendendo qualche secondo di metraggio da buttare sulla stessa fotocamera con le stesse impostazioni, poi fermando la registrazione normalmente così che si finalizzi.
I limiti onesti vanno detti fin da subito. Gli ultimi secondi prima dell'interruzione di corrente erano ancora nel buffer di memoria della fotocamera e non sono mai arrivati sulla scheda, quindi sono persi; la ricostruzione restituisce tutto fino a quel punto. Il metraggio registrato con un bitrate molto variabile può tornare con un leggero disallineamento di audio e video. E il riferimento deve corrispondere davvero: un clip a un'altra risoluzione o di un'altra fotocamera non si allineerà. Quello che recuperi è il tuo metraggio reale, ricostruito attorno a un indice valido, non fotogrammi inventati.
Quando è un file da 0 byte: recupero dati, non riparazione
C'è un caso in cui niente di quanto sopra si applica. Se il clip segna0 byte, o è una frazione minuscola della dimensione che dovrebbe avere, o si apre come una sequenza ininterrotta di zeri, allora il metraggio non è mai arrivato sulla scheda. Non è un indice rotto su dati buoni; è un'assenza di dati. Nessuno strumento di riparazione può ricostruire un file dal nulla, e qualsiasi strumento che affermi di farlo ti sta vendendo un risultato di scansione.
Un clip da 0 byte significa che la scheda si è guastata a metà scrittura, o che il file system ha perso traccia di dove sono andati i dati. Il primo passo giusto è il recupero dati: il software di recupero della scheda cerca nella memoria grezza il metraggio a cui il file system non punta più. Se trova qualcosa, allora hai un file da riparare. Recupero e riparazione sono due lavori diversi fatti in quell'ordine, e il modo più sicuro per non doverne avere bisogno di nessuno dei due sono alcune affidabili buone abitudini con la scheda, trattate in come evitare di corrompere i file sulle schede SD.
Domande frequenti
Posso recuperare metraggio GoPro dopo che la batteria è morta a metà clip?
Di solito sì, se il file ha una dimensione sana. Una action cam scrive il metraggio sulla scheda in modo continuo mentre registra e scrive l'indice che tiene insieme il tutto solo quando premi stop. Una batteria scarica salta lo stop, così il metraggio è sulla scheda ma non ha indice e non si riproduce. Ricostruire quell'indice rende il clip di nuovo riproducibile, meno gli ultimi secondi che erano ancora nel buffer di memoria della fotocamera quando è mancata la corrente. Un file che segna 0 byte è un problema diverso e più difficile.
Cosa significa l'icona SOS o di riparazione file della GoPro?
Significa che la fotocamera ha notato un clip non finalizzato, di solito dopo un'interruzione di corrente o una scheda estratta troppo presto, e propone di ripararlo. I modelli più recenti mostrano un'icona di riparazione o le parole «REPAIRING FILE»; premi un tasto qualsiasi per lasciarlo lavorare. Ripara solo i file troncati, e funziona solo sui file registrati da quello stesso modello di fotocamera. Se riesce ottieni un clip riproducibile. Se entra in loop o fallisce, spegni la fotocamera, riposiziona la batteria e la scheda SD e riprova ancora una volta prima di passare a una riparazione via software.
Perché il mio video DJI non si riproduce dopo che il drone si è schiantato?
Per lo stesso motivo per cui un clip GoPro non lo fa dopo una batteria scarica: lo schianto o l'atterraggio forzato ha tolto la corrente prima che la registrazione fosse finalizzata, così l'indice non è mai stato scritto sulla scheda. Il metraggio compresso è presente ma senza indice. Gli aeromobili DJI non hanno una riparazione nella fotocamera affidabile equivalente a quella di GoPro, quindi la via è una ricostruzione via software dell'indice, idealmente usando come riferimento un clip sano dello stesso drone con le stesse impostazioni.
Il mio file GoPro o DJI è da 0 byte: si può riparare?
No, perché non c'è nulla dentro da riparare. Un file da 0 byte significa che la scheda ha registrato una voce di directory ma non è mai arrivato alcun dato dietro di essa, cosa che di solito indica una scheda guasta a metà scrittura o un problema del file system. Quello è un lavoro di recupero dati, non di riparazione: il software di recupero della scheda deve prima cercare il metraggio nella memoria grezza, e solo se trova qualcosa c'è poi un file da ricostruire.
Il clip di riferimento deve avere le stesse impostazioni?
Sì, il più simili possibile. Il clip di riferimento fornisce il modello strutturale che manca al file danneggiato: risoluzione, frame rate, codec e profilo di bitrate. Un clip della stessa fotocamera con le stesse impostazioni dà un modello che combacia. Un clip a un'altra risoluzione o frame rate, o di un'altra fotocamera, dà un modello che non combacia, e forzarlo produce un file che si riproduce male o non si riproduce affatto.
Stessa storia dell'indice mancante, dispositivo diverso: riparare video di drone DJI corrotto.