Come stabilizzare un video usando FFmpeg e vid.stab
Recentemente ho rinnovato la mia fotocamera HTC Re, una vecchia fotocamera istantanea, perché volevo fare alcuni video. I risultati sono stati molto devastanti: ho scoperto che ho una mano tremante!
Fortunatamente ci sono FFmpeg e vid.stab che mi hanno aiutato a stabilizzarli.
In questo post spiego come installare questo plugin e utilizzarlo, quindi mostrando 2 video di confronto.
HTC Re Camera è stata un’eccellente fotocamera istantanea (prodotta dal 2014 e ora fuori produzione) con la portabilità come carta vincente. Inoltre ha una stabilizzazione video ma non aiuta tanto quando corro o cammino. Quindi ho dovuto rimuovere l’agitazione dai miei video.
Come al solito, Internet aveva già una soluzione e il suo nome è vid.stab una libreria opzionale per FFmpeg (nota al piede1) o Transcode (nota al piede2). La libreria può stabilizzare e appianare i video traballanti su Linux.
Di seguito è riportato un riepilogo e il mio adattamento di 2 articoli fantastici che hanno risolto il mio problema:
- Stabilizzazione video tramite VidStab e FFmpeg su Linux (in inglese)
- Stabilizzazione del video GoPro con FFmpeg e vid.stab (in inglese)
Installazione
In Ubuntu 18.04, FFmpeg non ha abilitato vids.tab, quindi puoi compilarlo o utilizzare meglio una build statica FFmpeg da qui che ha abilitato vid.stab: Build statiche FFmpeg.
Lo scarico secondo il mio sistema, l’ho estratto in una cartella e collegato in uno script bash che ha tutte le impostazioni necessarie.
Comandi di stabilizzazione
Ci sono molte combinazioni e scelte, riporto le opzioni che uso, chiamate: un passo e due passi. Nel primo, FFmpeg non analizza il flusso video, è più veloce ma la qualità è migliore nel secondo.
Un passo
ffmpeg -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 output.mp4
Due passi
ffmpeg -i input.mp4 -vf vidstabdetect=stepsize=32:shakiness=10:accuracy=10:result=transforms.trf -f null -
ffmpeg -y -i input.mp4 -vf vidstabtransform=input=transforms.trf:zoom=0:smoothing=10,unsharp=5:5:0.8:3:3:0.4 -vcodec libx264 -tune film -acodec copy -preset slow output.mp4
Finalmente questo è lo script che di solito lancio nella directory con i file video (nota al piede3):
#!/bin/bash # Sources: # https://trac.ffmpeg.org/wiki/Create%20a%20mosaic%20out%20of%20several%20input%20videos # https://stackoverflow.com/questions/11552565/vertically-or-horizontally-stack-several-videos-using-ffmpeg # https://ffmpeg.org/pipermail/ffmpeg-user/2017-August/037057.html path="/absolute_path_of_the_downloaded_FFmpeg" if [ -z "$1" ] then echo "Usage:" echo "stabilizator.sh filename.mp4" exit 0 fi # one step $path/ffmpeg -y -i $1 \ -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 ${1%.*}_oneStep.mp4 # two steps $path/ffmpeg -y -i $1 \ -vf vidstabdetect=stepsize=32:shakiness=10:accuracy=10:result=transforms.trf -f null - $path/ffmpeg -y -i $1 \ -vf vidstabtransform=input=transforms.trf:zoom=0:smoothing=10,unsharp=5:5:0.8:3:3:0.4 \ -vcodec libx264 -tune film -acodec copy -preset slow \ ${1%.*}_twoSteps.mp4
Esempi
Il primo esempio è una vista panoramica di una rosa:
Il secondo è una breve corsa:
NOTE:
- 1. FFmpeg è una soluzione completa e multipiattaforma per registrare, convertire e trasmettere audio e video. Sito: https://www.ffmpeg.org/
- 2. transcode è lo strumento di elaborazione del flusso video LINUX. Maggiori informazioni qui: https://linux.die.net/man/1/transcode
- 3. Per fare ciò puoi impostare permanentemente un percorso che contiene i tuoi script, devi solo aggiungere al tuo file ~ / .profile o ~ / .bashrc questo codice: export PATH = “$ PATH: /path/to/dir
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.