Pour faire tourner une vidéo de 90° par exemple, il existe plusieurs moyens. Voyons comment faire avec ffmpeg, mencoder et AviSynth.
Certes, la fonction « rotate 90° » ou « left/right rotation » existe dans Live Movie Maker et d’autres éditeurs de vidéo linéaires, mais mon vieux Q6600 n’est malheureusement pas assez puissant pour faire tourner ce jouet. En plus, la plupart de ces éditeurs sont limités par rapport au nombre de formats qu’ils peuvent gérer. Ne leur parlez de vidéos en 1080p: soit ils sont aux abonnés absents, soit ils mettront à genoux votre PC flambant neuf malgré son système Water Cooling 🙂
Voyons comment faire avec 3 outils :
- ffmpeg (voir ce post pour l’obtenir sous Windows).
- mencoder (voir ce post pour l’obtenir sous Windows).
- AviSynth (j’ai publié un billet qui explique son fonctionnement avec un exemple). Pour le télécharger, cliquez ici.
Exemple de vidéo
Pour les besoins d’un post sur une nouvelle fonctionnalité de Microsoft ICE (créer une image panoramique à partir d’une vidéo), j’ai tourné une vidéo avec mon appareil photo. La vidéo étant en mode portrait et je me suis posé la question de savoir comment la tourner de 90° :
Conversion
Dans tous les exemples de la suite de l’article :
- La vidéo de départ sera MOV04141.MPG
- La vidéo de résultat sera rotate.avi
Avec ffmpeg
Une version récente de ffmpeg acceptera le paramètre -vf "transpose=1". L’argument –vf est pour video filter et transpose=1 pour le nombre de rotations de 90° dans le sens horaire. Le paramètre -i signifie input et le dernier fichier est la vidéo de résultat :
ffmpeg -vf "transpose=1" -sameq -i MOV04141.MPG rotate.avi
Rapide comme mencoder
L’utilitaire le plus rapide de ce test est sans conteste mencoder. Cet outil pas très connu devrait avoir plus de promotion sur l’Internet. L’argument –vf est pour video filter et rotate=1 pour le nombre de rotation de 90° dans le sens horaire. -oac signifie audio ouput que je copie (copy) telle quelle. -ovc signifie video ouput que je transforme en utilisant la librairie « libavcodecs » (faire mencoder -ovc help pour la liste des possibilités) :
mencoder -vf rotate=1 -o rotate.avi -oac copy -ovc lavc MOV04141.MPG
Mencoder a cependant un défaut, c’est que certaines vidéos qu’il produit ne sont pas lisibles dans Windows Media Player.
Avec un script AviSynth
Comme expliqué dans ce post, AviSynth ne créera pas directement le fichier vidéo « rotate.avi », il faudra passer par un logiciel intermédiaire pour cela. Rien de bien sorcier dans cet exemple de script :
- Import de la vidéo via un filtre Direct Show.
- Rotation de la vidéo importée (dans la variable clip) à droite.
clip = DirectShowSource("MOV04141.MPG")
TurnRight(clip)
Comme d’habitude, j’espère que ce billet vous donnera un point de départ pour plein d’autres idées !
1 réponse sur « Rotation d’une vidéo par tous les moyens »
Le batch pour ffmpeg ne fonctionne plus (l’option -sameq n’existe plus).
Chez moi ce script fonctionne:
ffmpeg -i MOVIE.mp4 -vf « transpose=1 » ROTATE.avi