Aujourd'hui, j'ai décidé de joindre les vidéos prises à partir de mon smartphone et de créer un seul fichier de type film avec audio. Mais le fait est que certaines vidéos sont tournées en mode portrait et d'autres en mode paysage. Avant de joindre les fichiers, j'ai pensé qu'il serait préférable d'aligner tous les fichiers vidéo dans la même orientation (c'est-à-dire le mode). Bien sûr, il existe de nombreux outils et lecteurs multimédias basés sur une interface graphique, tels que Smplayer, VLC, dotés d'une fonction intégrée pour faire pivoter les vidéos. Mais je préfère un utilitaire en ligne de commande. Je sais utiliser FFMpeg pour effectuer diverses opérations telles que la conversion de fichiers dans un autre format, le recadrage, le fractionnement et la jonction de fichiers, etc. J'ai déjà compilé les commandes FFMpeg les plus couramment utilisées pour les débutants et je les ai publiées dans ce guide . Cependant, je ne sais pas comment faire pivoter des vidéos à l'aide de FFMpeg jusqu'à aujourd'hui. Si vous avez déjà voulu faire pivoter des vidéos à l'aide de FFMpeg, suivez les étapes ci-dessous.
Assurez-vous que la dernière version de FFMpeg est installée sur votre système. FFMpeg est disponible dans les référentiels par défaut de nombreux systèmes d'exploitation Linux populaires, donc l'installation ne sera pas un gros problème. Si vous n'avez pas installé FFMpeg sur votre machine Linux, reportez-vous au guide suivant.
- Comment installer FFMpeg sur Linux
Faire pivoter des vidéos à l'aide de FFMpeg à partir de la ligne de commande
FFMpeg a une fonctionnalité appelée "Transpose" qui est utilisé pour faire pivoter les vidéos. Grâce à cette fonctionnalité, nous pouvons facilement faire pivoter les vidéos dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre, ainsi que les retourner verticalement et horizontalement.
Par exemple, la commande suivante fera pivoter la vidéo donnée de 90 degrés dans le sens des aiguilles d'une montre :
$ ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
Ou utilisez cette commande :
$ ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4
Ici, transpose=1 Le paramètre indique à FFMpeg de transpositionner la vidéo donnée de 90 degrés dans le sens des aiguilles d'une montre. Voici la liste des paramètres disponibles pour la fonction de transposition.
- 0 - Faites pivoter de 90 degrés dans le sens inverse des aiguilles d'une montre et retournez verticalement. C'est la valeur par défaut .
- 1 - Rotation de 90 degrés dans le sens des aiguilles d'une montre.
- 2 - Rotation de 90 degrés dans le sens antihoraire.
- 3 - Faites pivoter de 90 degrés dans le sens des aiguilles d'une montre et retournez verticalement.
Pour faire pivoter les vidéos de 180 degrés dans le sens des aiguilles d'une montre, vous devez mentionner le paramètre de transposition deux fois comme ci-dessous.
$ ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4
Les commandes ci-dessus ré-encoderont les parties audio et vidéo du fichier vidéo donné. Si vous ne souhaitez pas réencoder la vidéo et modifier la rotation dans les métadonnées uniquement, utilisez plutôt cette commande :
$ ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
Mieux encore, vous pouvez copier toutes les métadonnées globales (telles que la date, les détails de la caméra) du fichier d'entrée dans le fichier de sortie comme ci-dessous.
$ ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4
Veuillez noter que cela ne fonctionne pas dans certains lecteurs qui ne peuvent pas gérer les métadonnées de rotation. J'ai changé l'orientation de la vidéo dans les métadonnées uniquement et je l'ai lue dans Smplayer. Mais il a continué à lire la vidéo dans l'orientation précédente. Mais cela a fonctionné dans le lecteur multimédia Gnome ! Je ne sais pas pourquoi. Ainsi, si l'orientation de la vidéo ne fonctionne pas, vous devrez peut-être la ré-encoder comme indiqué dans la première commande.
Suggestion de lecture :
- Comment afficher les métadonnées d'image sous Linux