Videos mit Skript deshaking

11

Wie kann ich mein Video deshakes?

Ich versuche Transcode zu verwenden:

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

Aber es verursacht einen Segfault.

Versuch, ffmpeg-Filter zu verwenden:

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

Habe aber immer den Fehler "Kein solcher Filter".

Ich möchte dafür ein einfaches Nautilus-Skript erstellen.

Crantisz
quelle
Transcode sollte nicht fehlerhaft sein, mit Optionen spielen. Siehe möglicherweise Antwort auf askubuntu.com/questions/228841/… mit Links zu Tutorials.
Takkat

Antworten:

19

Derzeit unterstützt ffmpegdas Repository nur den einfacheren Deshake- Filter, jedoch nicht die besseren Vidstab- Filter.

Sie haben einige Optionen, um Vidstab-Unterstützung zu erhalten: Kompilieren oder Verwenden einer PPA.


Kompilieren

Dies ist die beste Option, wenn Sie auch Ihre ffmpegVersion anpassen oder die neueste Version verwenden möchten .

Zuerst müssen Sie libvidstab kompilieren oder das libvidstab-dev- Paket verwenden. Derzeit bietet nur 19.04 Disco Dingo und neuere dieses Paket. Alternativ können 16.04 Xenial Xerus-Benutzer das libvidstab-dev-Paket von mc3man PPA verwenden .

So kompilieren Sie 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

Folgen Sie nun dem Kompilieren von FFmpeg unter Ubuntu . Wenn Sie zu dem Schritt gelangen, in dem die ffmpegKonfiguration erfolgt, fügen Sie --enable-libvidstabsie zur Liste der Konfigurationsoptionen hinzu.


mc3man PPA

FFmpeg aktuelle Version plus Git PPA für 16.04 Xenial Xerus:

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

Führen Sie nun aus ffmpeg2 (beachten Sie die "2").


Verwendungszweck

Siehe die Verwendungsanweisungen für vid.stab .


Siehe auch

llogan
quelle
configSchritt des Aufbaus von ffmpeg schlägt für mich mit fehl ERROR: vidstab not found using pkg-config. Was vermisse ich ?
Experte
Auch Dougs PPA hat keine libvidstab-dev
Experte
1
@guettli Es sollte nicht. Das war ein Tippfehler. Vielen Dank für den Hinweis. Ich habe die Antwort bearbeitet.
Llogan
Für alle (wie mich), die zu schnell lesen: Sie müssen ffmpeg 2
guettli
scheint nicht mit Ubuntu 17.04 zu funktionieren
wotanii
3

Wie andere oben erwähnen, unterstützt Dougs PPA Zesty (17.04) nicht - Stand 19.08.2017. Da 17.10 im Oktober erscheinen wird, werden 16.04 Lösungen immer veralteter. Zwei mögliche Lösungen für Zesty-Benutzer:

  1. Einfacher: Verwenden Sie einfach einen statischen Build https://www.johnvansickle.com/ffmpeg/
  2. Weitere Arbeit: Installieren Sie den vid.stabvon github ( https://github.com/georgmartius/vid.stab, lesen Sie die Kompilierungsanweisungen, sehr einfach) und kompilieren Sie dann ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Da ich nicht zu viel Zeit habe, mag ich die erste Lösung, die einwandfrei funktioniert hat.

Der erste Durchgang von vidstab funktioniert nur mit 1 Kern, aber da sich mein GoPro-Filmmaterial in vielen Abschnitten befindet, könnte ich 4 Videos gleichzeitig verarbeiten, wenn ich 100% Systemlast möchte. Der zweite Durchgang verwendet alle 4 Kerne.

Mein Laptop i7-6820HK aber beide Durchgänge kommen nur mit ca. 0,12x Geschwindigkeit voran. Es ist also ziemlich langsam, aber es ist mir egal, ob das Ergebnis schön sein wird.


Update: Mein Helmmaterial scheint so wackelig zu sein, dass Wackeligkeit 10 nicht ausreicht. Ich weiß nicht was ich tun soll, das ist das Maximum ...

Csaba Toth
quelle
1
Ich habe das deshakefür meinen Helm montierte GoPro-Fahrradmaterial ausprobiert, aber es sah so aus, als hätte ich fast nichts getan. Deshake ist Teil der offiziellen Ubuntu-Version von ffmpeg. Vielleicht gibt es eine Parameterkombination, die besser funktioniert, aber das Lesen im Internet klingt vid.stabbesser.
Csaba Toth
Ja, vidstab ist besser, aber komplizierter.
Llogan
1

Ich denke, viele Leute (ich eingeschlossen) haben diese Frage gefunden und versucht, nur ffmpeg mit dem Filter zu verwenden.

Diese Antworten zum Kompilieren sind großartig, aber zeitaufwändig und für manche Menschen schwierig.

Heutzutage gibt es eine einfache Möglichkeit, Docker-Images zu verwenden, die bereits mit vielen Filtern, Codecs und mehr erstellt wurden.

Persönlich habe ich dieses Bild https://github.com/jrottenberg/ffmpeg verwendet

Die Verwendung von Beispielen für Deshake-Filter ist sehr einfach:

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

Auch für den Vidstab-Filter:

# 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

Denken Sie daran, dass die erstellte Datei "out.avi" rootEigentümer hat und dass dies geändert werden sollte.

atay
quelle