Deshaking video usando lo script


11

Come posso deshake il mio video?

Provo a usare la transcodifica:

transcode  -J stabilize --mplayer_probe -i "input.MTS"

Ma provoca un segfault.

Cercando di usare i filtri ffmpeg:

ffmpeg -i "input.MTS" -vf vidstabdetect=shakiness=5:show=1 out.avi
ffmpeg -i "input.MTS" -vf deshake out.avi

Ma hai sempre un errore "Nessun filtro di questo tipo".

Per questo voglio creare un semplice script nautilus.


La transcodifica non deve essere segfault, giocare con le opzioni. Vedere può rispondere a askubuntu.com/questions/228841/… con collegamenti ai tutorial.
Takkat,

Risposte:


19

Attualmente, ffmpegdal repository supporta solo il filtro deshake più semplice , ma non supporta i filtri vidstab migliori .

Hai alcune opzioni per ottenere il supporto vidstab: compilare o utilizzare un PPA.


compilazione

Questa è l'opzione migliore se vuoi anche personalizzare la tua ffmpego usare l'ultima versione.

Per prima cosa dovrai compilare libvidstab o usare il pacchetto libvidstab-dev . Attualmente solo 19.04 Disco Dingo e successivi offrono questo pacchetto. In alternativa, gli utenti di 16.04 Xenial Xerus possono usare il pacchetto libvidstab-dev dal PPA mc3man ).

Per compilare libvidstab:

$ sudo apt-get install build-essential cmake
$ mkdir ~/ffmpeg_sources ~/ffmpeg_build
$ cd ~/ffmpeg_sources
$ wget -O https://github.com/georgmartius/vid.stab/archive/master.zip
$ unzip master.zip
$ cd vid.stab-master
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=~/ffmpeg_build .
$ make
$ make install

Ora segui Come compilare FFmpeg su Ubuntu . Quando si arriva al passaggio in cui ffmpegè configurato, quindi aggiungere --enable-libvidstaball'elenco delle opzioni di configurazione.


mc3man PPA

FFmpeg versione corrente più git PPA per X.04 Xenial 16.04:

sudo add-apt-repository ppa:mc3man/ffmpeg-test
sudo apt-get update
sudo apt-get install ffmpeg-static

Ora esegui ffmpeg2 (nota il "2").


uso

Vedere le istruzioni per l'uso di vid.stab .


Vedi anche


configil passo della costruzione di ffmpeg non riesce con me ERROR: vidstab not found using pkg-config. Cosa mi sto perdendo?
esperto

Anche il PPA di Doug non ha libvidstab-dev
esperto l'

1
@guettli Non dovrebbe. Quello era un errore di battitura. Grazie per segnalarlo. Ho modificato la risposta.
Llogan

Per tutti (come me), che leggono troppo in fretta: devi usare ffmpeg 2
guettli

non sembra funzionare con Ubuntu 17.04
wotanii,

3

Come altri menzionano sopra, Doug PPA non supporta Zesty (17.04) - dal 19/08/2017. Poiché il 17.10 uscirà a ottobre 16.04 le soluzioni saranno sempre più obsolete. Due possibili soluzioni per gli utenti di Zesty:

  1. Più semplice: basta usare una build statica https://www.johnvansickle.com/ffmpeg/
  2. Altro lavoro: installa il vid.stabda github ( https://github.com/georgmartius/vid.stab leggi le istruzioni di compilazione, molto semplice), quindi compila ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Dal momento che non ho troppo tempo, mi piace la prima soluzione, ha funzionato perfettamente.

Il primo passaggio vidstab funziona solo su 1 core, ma poiché il mio filmato GoPro è in molti pezzi, potrei elaborare 4 video contemporaneamente se volessi caricare il sistema al 100%. Il secondo passaggio utilizza tutti e 4 i core.

Il mio laptop i7-6820HK ma entrambi i progressi passano solo con una velocità di circa 0,12x. Quindi è piuttosto lento, ma non mi importa se il risultato sarà bello.


Aggiornamento: le riprese del mio casco sembrano essere così traballanti che lo shakiness 10 non è abbastanza. Non so cosa fare, questo è il massimo ...


1
Ho provato i deshakecavalletti per biciclette GoPro montati sul casco, ma sembrava quasi che non avessi fatto nulla. Deshake fa parte della versione ufficiale di Ubuntu di ffmpeg, forse c'è qualche combinazione di parametri che funzionerebbe meglio, ma leggere in rete sembra che vid.stabsarà meglio.
Csaba Toth,

Sì, vidstab è migliore, ma più complicato.
Llogan,

1

Immagino che molte persone (me incluso) abbiano trovato questa domanda, provando a usare solo ffmpeg con il filtro.

Queste risposte sulla compilazione sono ottime, ma richiede tempo e può essere difficile per alcune persone.

Oggi esiste una semplice opzione per usare l'immagine Docker che è già costruita con molti filtri, codec e altro.

Personalmente, ho usato questa immagine https://github.com/jrottenberg/ffmpeg

L'utilizzo del campione è molto semplice per il filtro deshake:

docker run -v $PWD:/temp/ \
    jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf deshake \
    /temp/out.avi

Anche per il filtro vidstab:

# create vectors from input file
docker run -v $PWD:/temp/ jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=/temp/transform_vectors.trf -f null -

# process file using vectors from step 1
docker run -v $PWD:/temp/ jrottenberg/ffmpeg \
    -i /temp/input.MTS \
    -vf vidstabtransform=input=/temp/transform_vectors.trf:zoom=1:smoothing=30,unsharp=5:5:0.8:3:3:0.4 \
    /temp/out.avi

Ricorda che il file creato "out.avi" avrà il rootproprietario e che dovrebbe essere modificato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.