Video deshake con Linux: stabilizzare un video mosso con Transcode
Attenzione
Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.
Oggi parliamo di un altro pezzo di software a riga di comando per Linux: Transcode. Questo piccolo tool permette di stabilizzare un video in cui il cameraman (o presunto tale) non abbia la mano troppo ferma. Può succedere in molte occasioni: sovraeccitamento, folla, freddo, poco spazio, febbre, sommossa, guerriglia urbana, guerra che la ripresa venga mossa e per evitare lo stimolo del vomito ogni volta che rivediamo i filmati delle vacanze un piccolo team di sviluppatori ha scritto transcode, poche riga di codice per Linux. Il programma “capisce” grazie a una mappatura iniziale dei frame del video quanto la videocamera sia mossa, calcola la ripresa ottimale e scrive un secondo file video corretto. Vediamo come funziona nel dettaglio:
Scarichiamo transcode dal sito ufficiale e compiliamolo, oppure installiamolo tramite i repository del nostro sistema operativo (userò Ubuntu in questo tutorial).
sudo apt-get install transcode
Il processo di stabilizzazione si fa in due passaggi: il primo analizza il video e produce un file con le informazioni per la stabilizzazione. Questo è il primo comando:
transcode -J stabilize -i video.mov
C’è la possibilità che la versione installata automaticamente dai repository non abbia il pieno supporto ai codec della nostra videocamera e mostri questo errore: “transcode [filter_stabilize.so] warning: unsupported Codec: 2 (11| 0| 9)
“. Alcuni siti suggeriscono di utilizzare i codec mplayer con il comando così formato:
transcode -J stabilize --mplayer_probe -i video.mov
Anche se questo sembra funzionare a molti, purtroppo a me no, e visto che non ho molta voglia di indagare su mplayer sono passato all’installazione manuale dei codec (che trovo molto più sbrigativa).
Troviamo i codec in un sito dedicato ancora alla stabilizzazione video di transcode. Da questo sito possiamo scaricare il codec più adatto al nostro hardware (nel mio caso x86_64). È un archivio compresso .tgz, scarichiamo, scompattiamo e troviamo al suo interno i file filter_stabilize.so
e filter_transform.so
. A questo punto dovremo solo spostare i due file (librerie) in “/usr/lib/transcode
“, semplicemente con questo comando:
sudo mv /percorso/per/il/file/filter_* /usr/lib/transcode/
Ovviamente sostituendo “/percorso/per/il/file/
” con il path corretto. Inseriamo la password e siamo a cavallo. Ripetiamo il primo comando e non dovremmo più avere problemi di sorta.
Il secondo passaggio utilizzerà il file creato dal primo passaggio per correggere il video frame per frame:
transcode -J transform -i video.mov -y xvid -o video_stabilizzato.avi
Non c’è bisogno che lo dica: il video stabilizzato si troverà nella stessa directory del video originale.
Importanti considerazioni finali
Transcode è un programma geniale, molto leggero e molto utile, ma ho riscontrato che il video stabilizzato ha delle piccole imperfezioni nelle parti in cui l’immagine è così sovraesposta da “bruciarsi” (parte dell’immagine in cui la luce è più intensa di quella che può “registrare” il sensore della fotocamera, apparirà bianca senza possibilità di correzione postuma). Nello specifico vedo in ogni frame dei puntini e delle linee, che servono da guida al software per raddrizzare i frame mossi, ma nel video elaborato non si dovrebbero vedere. Questa è una piccola pecca che non pregiudica il funzionamento del software, e se la ripresa (pur mossa) è fatta bene senza frame bruciati, non si sentirà. Resta il fatto che è un piccolo bug sicuramente risolvibile, ma ancora non risolto.
3 commenti
vale · 6 Marzo 2013 alle 11:49 AM
attendo il video TheJoe! 😀
DaAsFlickred · 5 Marzo 2013 alle 1:38 PM
Da provare.. 🙂
Ho visto qlk video sul tubo
e sembra che funzioni bene..
TheJoe · 5 Marzo 2013 alle 2:11 PM
Per funzionare funziona, il problema sono linee e puntini sulle zone “bruciate”… caricherò un video a breve.