12 votes

Désencadrer les vidéos en utilisant script

Comment puis-je déshooker ma vidéo ?

J'essaie d'utiliser transcode :

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

Mais cela provoque un défaut de fonctionnement.

J'essaie d'utiliser les filtres de ffmpeg :

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

Mais il y a toujours une erreur "No such filter".

Je veux créer un simple nautilus script pour cela.

21voto

Robert Gilliam Points 21

Actuellement, ffmpeg du référentiel ne prend en charge que le plus simple deshake mais ne prend pas en charge le meilleur filtre vidstab filtres.

Vous avez plusieurs options pour obtenir le support de vidstab : compiler ou utiliser un PPA.


Compiler

C'est la meilleure option si vous voulez aussi personnaliser votre ffmpeg ou utiliser la dernière version.

Vous devrez d'abord compiler libvidstab ou utiliser la commande libvidstab-dev paquet. Actuellement, seules les versions 19.04 Disco Dingo et plus récentes fournissent ce paquet. Alternativement, les utilisateurs de 16.04 Xenial Xerus peuvent utiliser le paquet libvidstab-dev à partir de l'adresse suivante mc3man PPA ).

Pour compiler 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

Maintenant, suivez Comment compiler FFmpeg sur Ubuntu . Lorsque vous arrivez à l'étape où ffmpeg est configuré, alors ajoutez --enable-libvidstab à la liste des options de configuration.


mc3man PPA

FFmpeg version actuelle plus git PPA pour 16.04 Xenial Xerus :

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

Exécutez maintenant ffmpeg2 (notez le "2").


Utilisation

Voir le instructions d'utilisation de vid.stab .


Voir aussi

3voto

Csaba Toth Points 1243

Comme d'autres ont mentionné plus haut que le PPA de Doug ne supporte pas le Zesty (17.04) - en date du 19/08/2017. Comme la 17.10 sortira en octobre les solutions 16.04 seront de plus en plus obsolètes. Deux solutions possibles pour les utilisateurs de Zesty :

  1. Plus simple : il suffit d'utiliser une construction statique https://www.johnvansickle.com/ffmpeg/
  2. Plus de travail : installer le vid.stab à partir de github ( https://github.com/georgmartius/vid.stab lire les instructions de compilation, très simple), puis compiler ffmpeg https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Comme je n'ai pas beaucoup de temps, j'ai choisi la première solution, qui a fonctionné sans problème.

La première passe de vidstab fonctionne sur un seul cœur, mais comme mes séquences GoPro sont en plusieurs morceaux, je pourrais traiter 4 vidéos simultanément si je voulais une charge système de 100%. La deuxième passe utilise les 4 cœurs.

Mon ordinateur portable i7-6820HK mais les deux passes ne progressent qu'à une vitesse d'environ 0,12x. C'est donc assez lent, mais je m'en fiche si le résultat est bon.


Mise à jour : mes séquences montées sur casque semblent être si tremblantes que le niveau de tremblement 10 n'est pas suffisant. Je ne sais pas quoi faire, c'est le maximum...

2voto

atay Points 21

Je suppose que beaucoup de gens (moi inclus) ont trouvé cette question, en essayant juste d'utiliser ffmpeg avec le filtre.

Les réponses concernant la compilation sont excellentes, mais cela prend du temps et peut être difficile pour certaines personnes.

Aujourd'hui, il existe une option simple qui consiste à utiliser une image Docker qui est déjà construite avec de nombreux filtres, codecs et autres.

Personnellement, j'ai utilisé cette image https://github.com/jrottenberg/ffmpeg

L'utilisation de l'échantillon est très simple pour le filtre de déshake :

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

Ainsi que pour le filtre 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

Gardez à l'esprit que le fichier créé "out.avi" aura root propriétaire et cela devrait être changé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X