Comment faire pivoter la vidéo de 180 degrés avec avconv

24

Je voudrais faire pivoter la vidéo (mp4) de 180 degrés, mais pas la retourner. Est-il possible de le faire avec avconv?

sobi
la source
J'ai trouvé avec les deux réponses existantes qu'elles fonctionnent avec les fichiers MP4 d'une caméra Hero 3, mais seulement après avoir ajouté une -c:acopie à la commande (juste avant le nom du fichier de sortie). J'ai également constaté que la deuxième version était de qualité indiscernable, mais environ 50% plus rapide que la version de traduction en chaîne.
Simon

Réponses:

31

C'est possible en utilisant le transposefiltre vidéo. Vous ne pouvez pas faire pivoter de 180 degrés, mais vous pouvez faire pivoter de 90 degrés et enchaîner le filtre.

avconv -i video.mp4 -vf transpose=1,transpose=1 out.mkv

Voir transposedans la avconvpage de manuel: http://manpages.ubuntu.com/manpages/quantal/en/man1/avconv.1.html

phoibos
la source
Cela a fait pivoter ma vidéo, mais la baisse de qualité (résolution et fréquence d'images) a été massive (fichier iphone .mov).
Gringo Suave
transpose = horloge fonctionne maintenant voir ma réponse
Elder Geek
15

Oui, mais vous devrez ajouter des options supplémentaires à votre commande pour qu'elle fonctionne correctement. Transpose et vflip / hflip devraient faire l'affaire, mais si vous ne donnez pas plus de détails à avconv sur ce que vous voulez, vous obtiendrez probablement une sortie de très faible qualité:

 avconv -i original.mp4 -vf "hflip,vflip" -codec:v libx264 -preset slow -crf 20 -codec:a copy flipped.mp4

Remarquez l' -crfoption. Cela définit la qualité de sortie. Il va de 0 (sans perte) vers le haut de façon logarithmique. Vous voudrez probablement une valeur comprise entre 19 et 25 dans la plupart des cas. -presetdéfinit la vitesse de l'encodage, "lente", "moyenne" ou "rapide". La lenteur devrait vous permettre de réduire la taille des fichiers avec un compromis évident. Vous devez ajuster -codec:vpour correspondre à l'original. Si vous ne définissez pas ces options, vous obtiendrez les valeurs par défaut, qui ne fonctionnent pas bien lorsque vous retournez la vidéo de l'iphone.

lunchboxer
la source
Unrecognized option 'preset' Failed to set value 'slow' for option 'preset' C'est ce que j'ai eu
Karel Bílek
... et sans ça, j'ai euUnknown encoder 'libx264'
Karel Bílek
1
apt-get install libavcodec-extra-53résolu
Karel Bílek
6

La méthode supplémentaire avec avconv consiste à utiliser les filtres vflip et hflip. Devrait fonctionner plus rapidement et peut-être une meilleure qualité:

avconv -i video.mp4 -vf vflip,hflip out.mp4
wcarlson
la source
Idem: Cela a fait pivoter ma vidéo, mais la baisse de qualité (résolution et fréquence d'images) était massive (fichier iphone .mov).
Gringo Suave
1
@GringoSuave wcarlson vous a donné un exemple dépouillé, vous devez toujours ajouter tous les -codec: v ... et autres balises
v010dya
1

J'ai fait ça:

avconv -i invertedOne.mp4 -c:a copy -vf "hflip,vflip" rightOne.mp4

Vidéo Full HD, d'excellents résultats avec une perte de qualité non perceptible

jap1968
la source
1

Pour avconv ou ffmpeg Sous 14.04 ou version ultérieure

Il y a eu quelques changements dans la documentation libav depuis la réponse de qualité @phoibos à cette question. Vous pouvez faire pivoter une vidéo à 180 degrés en évitant de la retourner entièrement en enchaînant 2 commandes à 90 degrés ensemble (séparées par une virgule) .J'ai accompli cela avec la commande

avconv -i fichier d'entrée -vf transpose = horloge, transpose = horloge fichier de sortie

pour une rotation dans le sens horaire.

dans ffmpeg, la syntaxe est la même.

ffmpeg -i fichier d'entrée -vf transpose = horloge, transpose = horloge fichier de sortie

où fichier d'entrée est votre fichier vidéo d'entrée pris en charge et fichier de sortie est votre fichier de sortie souhaité.

Pour une rotation dans le sens antihoraire, remplacez l'horloge par cclock

Sources:

https://libav.org/avconv.html#transpose

Test sur Ubuntu 14.04.5 et 16.04 LTS

Elder Geek
la source