Je veux utiliser Ubuntu et de préférence des packages standard tels que ffmpeg pour faire pivoter un fichier vidéo .3gp de 90 degrés dans n'importe quelle direction. De préférence une ligne de commande ou un script Python.
Comment puis je faire ça?
Je veux utiliser Ubuntu et de préférence des packages standard tels que ffmpeg pour faire pivoter un fichier vidéo .3gp de 90 degrés dans n'importe quelle direction. De préférence une ligne de commande ou un script Python.
Comment puis je faire ça?
Réponses:
en utilisant VLC , vous pouvez faire pivoter la vidéo en allant dans Outils >> Préférences ...
Et sélectionnez "Tous" pour afficher les paramètres. Ensuite, allez dans: Vidéo >> Filtres >> Rotation
Après avoir défini le degré souhaité, vous pouvez faire pivoter en allant dans Outils> Effets et filtres> Effets vidéo> Géométrie ...
celui que j'ai testé est mp4 mais je crois que VLC peut également prendre en charge 3gp. J'espère que cela t'aides. :)
Depuis la ligne de commande, avec ffmpeg:
ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
transpose=1
fera pivoter la vidéo de 90 degrés dans le sens des aiguilles d'une montre; pour tourner dans le sens inverse des aiguilles d'une montre, utilisez transpose=2
. Voir la documentation de transposition pour un peu plus d'informations.
-metadata:s:v rotate=""
supprimera toutes les métadonnées de rotation de flux vidéo existantes; sinon, il ffmpeg
sera copié, ce qui pourrait amener votre lecteur à appliquer une rotation supplémentaire indésirable.
Pour plus d'informations sur les paramètres de codage vidéo ici, consultez ce guide de codage H.264 et le guide de codage AAC si vous souhaitez réencoder le son au lieu de copier le flux .
J'ai résolu un problème similaire - j'avais un .MOV pris à l'envers (c'est-à-dire tourné à 180 degrés) que je voulais régler correctement.
Sur mon système Ubuntu 14.04, je courais avconv
avec essentiellement les mêmes options de ligne de commande comme pour le ffmpeg
dans la réponse de evilsoup . Apparemment, il ne prend pas en charge une transpose
option de rotation à 180 degrés, j'ai donc fait le 90 degrés dans le sens horaire (c'est-à-dire transpose=1
) deux fois.
Quand j'ai essayé des options minimales, j'ai reçu un message à l'effet que:
encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it.
et le fichier de sortie était de longueur nulle, j'ai donc ajouté le -strict experimental
.
Les lignes de commande qui ont fonctionné étaient:
avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV
Le résultat a été satisfaisant, avec des effets secondaires inexpliqués:
Je ne me plains pas: ce sont souhaitables; Je ne comprends tout simplement pas pourquoi ils sont survenus ...
avconv
lignes de commande dans leur intégralité, et pas seulement les différences par rapport à la ffmpeg
commande. Votre réponse doit être autosuffisante; l'autre réponse pourrait disparaître. (3) Bonne chance!
-filter:v transpose=1 …
.
Il y a eu quelques changements dans libav depuis le temps où cette question a été répondue à l'origine. Dans une tentative de garder ce courant et utile, je fournirai ce qui suit:
Vous pouvez accomplir cela avec des versions récentes de ffmpeg
et avconv
en utilisant le filtre vidéo de transposition.
avconv -i inputfile -vf transpose=clock outputfile
pour une rotation dans le sens horaire.
dans ffmpeg, la syntaxe est la même.
ffmpeg -i inputfile -vf transpose=clock outputfile
où inputfile est votre fichier vidéo d'entrée pris en charge et outputfile est votre fichier de sortie souhaité.
Pour une rotation dans le sens antihoraire, remplacez l' horloge par cclock
Voici un extrait de la documentation:
‘cclock_flip’
Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’
Rotate by 90 degrees clockwise.
‘cclock’
Rotate by 90 degrees counterclockwise.
‘clock_flip’
Rotate by 90 degrees clockwise and vertically flip.
Sources:
https://libav.org/avconv.html#transpose
https://ffmpeg.org/ffmpeg-filters.html#transpose-1
Test sur Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04
ffmpeg
a travaillé pour moi (n'a pas essayé avconv
)
ffmpef
incluent beaucoup d'arguments inutiles, merci!