TheJoe.it Into the (open) source

2mar/133

Video deshake con Linux: stabilizzare un video mosso con Transcode

Attenzione!

Questo articolo è stato scritto nel 2013, potrebbero esserci stati sviluppi circa l'argomento trattato.
In caso di dubbi lasciate un commento in fondo all'articolo.
Grazie.

canon_mossa

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.

About

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

  • vale

    attendo il video TheJoe! 😀

  • Per funzionare funziona, il problema sono linee e puntini sulle zone “bruciate”… caricherò un video a breve.

  • DaAsFlickred

    Da provare.. :)
    Ho visto qlk video sul tubo
    e sembra che funzioni bene..