web-dev-qa-db-fra.com

Déchaîner des vidéos en utilisant un script

Comment puis-je desshaler ma vidéo?

J'essaie d'utiliser transcoder:

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

Mais cela cause une erreur de segmentation.

Essayer d'utiliser les filtres ffmpeg:

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

Mais toujours avoir une erreur "Aucun filtre de ce type".

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

9
Crantisz

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

Vous avez quelques options pour obtenir un support vidstab: compiler ou utiliser un PPA.


Compilation

C’est la meilleure option si vous souhaitez également personnaliser votre ffmpeg ou utiliser la dernière version.

Tout d'abord, vous devrez compiler libvidstab ou utiliser le paquet libvidstab-dev . Actuellement, seuls 19.04 Disco Dingo et les versions plus récentes fournissent ce package. Les utilisateurs de la version 16.04 Xenial Xerus peuvent également utiliser le package libvidstab-dev à partir de 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 Ubunt . Lorsque vous arrivez à l'étape où ffmpeg est configuré, ajoutez --enable-libvidstab à la liste des options de configuration.


mc3man PPA

version actuelle de FFmpeg plus PPA git pour 16.04 Xenial Xerus:

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

Maintenant, lancez ffmpeg2 (notez le "2").


Usage

Voir les instructions d'utilisation de vid.stab .


Regarde aussi

18
llogan

Comme d'autres l'ont déjà mentionné, le PPA de Doug ne prend pas en charge Zesty (17.04) - à partir du 19/08/2017. À compter du 17 octobre, le 16 octobre, les solutions seront de plus en plus obsolètes. Deux solutions possibles pour les utilisateurs de Zesty:

  1. Plus simple: utilisez simplement une version statique https://www.johnvansickle.com/ffmpeg/
  2. Plus de travail: installez le vid.stab depuis github ( https://github.com/georgmartius/vid.stab lisez les instructions de compilation, très simple), puis compilez ffmpeghttps: // trac.ffmpeg.org/wiki/CompilationGuide/Ubunt

Comme je n'ai pas trop de temps, j'aime bien la première solution, qui fonctionne parfaitement.

Le premier passage de vidstab ne fonctionne que sur 1 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 de 100% du système. La seconde passe utilise les 4 cœurs.

Mon ordinateur portable i7-6820HK mais les deux passes ne font que progresser avec une vitesse d'environ 0.12x. Donc, c'est assez lent, mais je ne me soucierai pas si le résultat sera Nice.


Mise à jour: la séquence de montage de mon casque semble être si fragile que 10 tremblements ne suffisent pas. Je ne sais pas quoi faire, c'est le max ...

3
Csaba Toth

Je suppose que beaucoup de gens (moi compris) ont trouvé cette question, essayant simplement d’utiliser ffmpeg avec le filtre.

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

De nos jours, il existe une option simple pour utiliser une image Docker qui est déjà construite avec de nombreux filtres, codecs et plus.

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

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

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

Aussi bien 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

Notez que le fichier créé "out.avi" aura le propriétaire root et qu’il devrait être modifié.

1
atay