Recuperare video troncati – La morte di un drone :)

Mi ero comprato un drone…
Un bel drone cinese, clone dei più famosi DJI e similari.
Ha sempre funzionato bene….fino a quando un bel giorno (ieri) non ha deciso di volare per fatti suoi….e schiantarsi contro un palazzo!
Rabbia a parte in questo articolo parliamo dell’odissea per recuperare il video da inviare a chi di dovere per far valere la garanzia e dimostrare che il danno non e’ stato causato da un incauto utilizzo.

Notavo una strana vibrazione in fase di avvio del drone…ma non mi sono soffermato più di tanto. Come se me lo sentissi ho avviato la registrazione del video…e decollo!
La giornata era perfetta…zero vento e soleggiato…ma qualcosa e’ andato storto!
Dopo qualche metro il drone inizia ad andare nella direzione sbagliata (verso un palazzo). Io non lo vedo più e non ho nemmeno la visione sul display del cellulare ormai freezzato.
Tento il tutto per tutto….premo il tasto di RTH (Return to Home) ma nulla….dopo un secondo sento il sibilo dei motori da tutt’altra parte rispetto a dove mi aspettassi che fosse il drone e poi BANG…scontro contro un palazzo.

Corro in quella direzione e fortunatamente (si fa per dire) lo trovo schiantato a terra in pessime condizioni.

Inutile dire che non c’e’ nulla da riparare….e il mio primo pensiero va a far valere i miei diritti.
Il drone e’ in garanzia e non sono stato io a farlo schiantare!
Mi serve il video…maa…..nulla…ne su cellulare, ne sulla SD c’e’ nulla.

Lo scontro non ha permesso di salvare il video completo….e mi ritrovo con la mia parola e un drone distrutto….non mi crederanno mai.

Cerco e ricerco…ma non trovo nulla…

Alla fine nella SD trovo una cartella “tmp” con un file senza estensione proprio con la data dello schianto! 68Mb…sarà sicuramente il video!
Il drone registra in Mp4 con codec H.264.
Prendo il file e lo do in pasto a Quicktime…maaaa….nulla…formato non riconosciuto!
Provo con VLC…che ha sempre digerito tutto…niente…
Provo a mettere una estensione …. nulla di nulla…
Provo a farlo analizzare al caro FFMPEG….niente…non trova inizio e fine e quindi non sa che file e’!

Naturalmente tutte queste prove sono fatte alle 23.50 di notte….in stanza buia..in silenzio per non svegliare la famiglia… con Macbook sulle gambe.

Si va di Google….con millemila parole chiave…trovo un “djifix” che promette miracoli…ma forse solo per i droni dji.

Trovo un sito che permette di recuperare tutto a patto di avere un video prodotto dallo stesso drone (funzionante)…..compilo i form…e magia delle magie esce fuori il filmato a bassissima risoluzione. Per avere il video alla massima risoluzione c’e’ da pagare…mettiamo il sito in stand-by e lo teniamo come ultima opzione.

So almeno che dentro quel file c’e’ il video….e so che e’ recuperabile…cerchiamo un modo alternativo.

Tra una Googolata e l’altra mi imbatto più e più volte su alcuni software che affiancati a ffmpeg “promettono” di risolvere il problema. Anch’essi come il sito testato hanno bisogno di un file “sano” per riparare quello corrotto.
Io uso Osx e le procedure descritte puntavano tutte su Ubuntu e similari con la postilla “dovrebbe funzionare anche su Osx”.

Non voglio fare esperimenti e perdere del tempo quindi decido di mettere su al volo una macchina virtuale con Ubuntu minimal 18.04.
Qualche minuto e ho già la shell pronta….
Scelgo tra le varie soluzioni quella che mi e’ sembrata la più dettagliata e promettente… “Untrunc” di cui vi lascio il link al repository su GitHub

L’installazione non e’ molto complicata ma c’e’ da scaricare e compilare qualcosina….Iniziamo!

I prerequisiti sono :

– il file video corrotto
– un file video “funzionante” proveniente dallo stesso drone
– ffmpeg installato e funzionante
– librerie Libav 12

tralasciando i primi due punti iniziamo ad installare ffmpeg :

sudo apt-get install ffmpeg

successivamente scarichiamo le librerie e i sorgenti di untrunc :

wget https://libav.org/releases/libav-12.3.tar.xz

e poi

wget https://github.com/ponchio/untrunc/archive/master.zip

scompattiamo untrunc

unzip master.zip

scompattiamo le librerie dentro la stessa cartella di untrunc

tar -xJf libav-12.3.tar.xz -C untrunc-master

compiliamo le librerie

cd untrunc-master/libav-12.3/
./configure --disable-yasm
make
cd ..

e finalmente compiliamo untrunc

g++ -o untrunc -I./libav-12.3 file.cpp main.cpp track.cpp atom.cpp mp4.cpp -L./libav-12.3/libavformat -lavformat -L./libav-12.3/libavcodec -lavcodec -L./libav-12.3/libavresample -lavresample -L./libav-12.3/libavutil -lavutil -lpthread

(nel sistema deve esserci g++ installato…se non c’e’ basta scrivere —> apt-get install g++)
PS…rispetto alla procedura di installazione presente su GitHub ho aggiunto e tolto qualche flag…a me ha funzionato con le procedure che vi ho descritto.

a processo terminato…..senza errori di compilazione…abbiamo nella stessa cartella il programma untrunc pronto per essere usato.

la sintassi e’ la seguente

./untrunc video_funzionante video_corrotto

se avete fatto tutto in maniera corretta e avrete correttamente incrociato le dita dovreste avere nella directory un file con nome broken-video_fixed.m4v

Da me c’era…e cliccandoci sopra ecco cosa ho visto 🙂


 

Bene..anzi male…ma almeno ho un video che dimostra che il danno non e’ stato causato da me!
Inizio le procedure per la garanzia….incrociamo le dita e speriamo bene 🙂

Alla prossima!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *