Come rimuovere una griglia su un video con ffmpeg

Come rimuovere una griglia su un video con ffmpeg

Durante la mia vita sono stato anche operatore di macchina da presa durante un concerto. C’era un concerto alla Radio per cui ho collaborato ed ero con la telecamera durante il concerto.

Avevamo 3 telecamere, 2 fisse e io avevo quella mobile. Purtroppo durante la registrazione il regista non si è accorto che la mia telecamera ha inviato la griglia al video mixer… questo significa che, alla fine, tutte le mie riprese sono affette da questo effetto GRID nel video:

È stato un vero casino. E non abbiamo registrato ogni scatto della telecamera… quindi non c’era modo di rimuovere la mia parte o altra correzione rapida. Ma potremmo almeno provare a sistemarlo in post produzione. Fortunatamente per noi, c’è un plugin in Ffmpeg che può fare ciò di cui abbiamo bisogno:

  1. Rimuovere la griglia che si trova in una posizione fissa
    Sostituisci il pixel per ogni fotogramma, con il pixel più logico (una media dei pixel circostanti)

Il plug-in è delogo. Qui c’è la documentazione per il plugin delogo . Il plug-in è progettato per la rimozione del logo video (soppressione del logo di una stazione TV mediante una semplice interpolazione dei pixel circostanti) e può fare esattamente ciò di cui abbiamo bisogno. A causa della natura stessa della griglia, prima di tutto dobbiamo trovare le posizioni di ogni linea. Il video è 1080 x 1920 . le linee della griglia sono larghe 3 pixel e quindi possiamo usare più filtri, ognuno per rimuovere una linea:

  1. ffmpeg -i input.mp4 -vf delogo=x=635:y=1:w=3:h=1078 -c:a copy output1.mp4
  2. ffmpeg -ioutput1.mp4 -vf delogo=x=1278:y=1:w=3:h=1078 -c:a copy output2.mp4
  3. ffmpeg -ioutput2.mp4 -vf delogo=x=1:y=360:w=1918:h=3 -c:a copy output3.mp4
  4. ffmpeg -ioutput3.mp4 -vf delogo=x=1:y=720:w=1918:h=3 -c:a copy final-output.mp4

Dove ogni volta l’output di un filtro viene quindi passato al filtro successivo. Questo non è molto efficiente e Ffmpeg ha un metodo migliore per collegare una catena di filtri con l’uso del plug-in filter_complex (documentazione filter_complex). Puoi anche vedere questo post come esempio. Alla fine, il comando finale è:

ffmpeg -i input.mp4 -filter_complex “[0:v]delogo=x=635:y=1:w=3:h=1078[a];[a]delogo=x=1278:y=1:w=3:h=1078[b];[b]delogo=x=1:y=360:w=1918:h=3[c];[c]delogo=x=1:y=720:w= 1918:h=3[d]” -map [d] -c:a copy output.mp4

 

Questo il file di input

E questo il risultato finale

Incredibile! E pensa che Ffmpeg è un software free. 

MiroAdmin