Les smartphones rĂ©cents prennent en compte la rotation de lâappareil, pour faire cela il y a deux solutions, lâune est assez complexe puisque cela Ă tourner tous les pixels de lâimage, lors consiste tout simplement Ă modifier les mĂ©tadonnĂ©es en indiquant lâangle de rotation.
Le format MP4 permet, comme le format JPEG, dâajouter des mĂ©tadonnĂ©es et en particulier une dâentre elle permet de gĂ©rer lâangle.
On trouve cette fonctionnalité dans les logiciels de traitement des photos sous le nom de « rotation sans perte ».
Problématique
Le problĂšme avec cette option est quâelle se base sur la position du smartphone lors du dĂ©marrage du film, et si pour une raison ou une autre vous effectuer une rotation du tĂ©lĂ©phone, la suite du film ne sera pas orientĂ© correctement.
Certain logiciels vidéo permettent de voir les métadonnées, par exemple VLC. Notez que VLC permet également de retourner la vidéo, mais si vous souhaitez sauvegarder la vidéo avec la nouvelle rotation vous serez confrontés à des choix quant au format de sauvegarde.
Ce que lâon cherche Ă faire ici, câest obtenir une copie de la vidĂ©o dâorigine avec le moins de perte possible, dans le but dâapplication dâautres traitements ultĂ©rieurs (montage, rĂ©-encodageâŠ) avec une base la plus proche de lâoriginal possible.
La solution Ă lâaide de « ffmpeg »
ffmpeg est un convertisseur de vidĂ©o de rĂ©fĂ©rence, et est trĂšs souvent embarquĂ© avec les outils de traitement vidĂ©o ayant une interface graphique. Notez quâil est disponible sous presque toutes les plateformes informatiques.
Ici nous lâutiliseront en ligne de commande pour ĂȘtre certain de ne modifier que les mĂ©tadonnĂ©es.
Lâoption -metadata
permet de modifier cela, la syntaxe générale est la suivante :
-metadata[:metadata_specifier] key=value (output,per-metadata)
Et plus précisément la métadonnée que nous souhaitons modifier se fait au niveau du flux complet (« stream » en anglais) qui se note comme suit : -metadata:s:v
.
La mĂ©tadonnĂ©e a modifiĂ© sâappelle rotate
et vous pouvez utiliser les valeurs suivantes : 0
, 90
, 180
et 270
.
ConcrÚtement pour retirer une rotation non souhaiter vous pouvez essayer :
ffmpeg -i original.mp4 -metadata:s:v rotate=0 -vcodec copy -acodec copy original-rotate-0.mp4
Pour forcer une rotation :
ffmpeg -i original.mp4 -metadata:s:v rotate=90 -vcodec copy -acodec copy original-rotate-90.mp4
኿