Oh d'accord, cool. Cela fonctionnerait pour moi, mais je veux aussi le partager. Je vais jeter un oeil à la question SO.
Louis
5
Le libellé et le titre de cette question sont vraiment déroutants. Inverser une vidéo verticalement n’est pas la même chose que la faire pivoter à 180 degrés (ce qui revient à une inversion verticale et une inversion horizontale). En fonction de la réponse acceptée, je modifie pour spécifier la rotation. Actuellement, cela pollue les résultats de Google pour le basculement vertical de vidéos avec ffmpeg.
Jason C
Réponses:
102
tl; dr
ffmpeg fera automatiquement pivoter la vidéo sauf si:
votre entrée ne contient pas de métadonnées de rotation
tu ffmpegest trop vieux
Métadonnées de rotation
Certaines vidéos, telles que celles provenant d'iPhones, ne sont pas physiquement inversées, mais contiennent des données latérales displaymatrix de flux vidéo ou font pivoter des métadonnées. Certains joueurs ignorent ces métadonnées et d'autres non. Reportez-vous à la ffmpegsortie de la console pour voir si votre entrée contient de telles métadonnées:
ffmpeg effectuera automatiquement une rotation physique de la vidéo en fonction des métadonnées de rotation du flux vidéo existantes.
Pour pouvoir utiliser la fonction d'autorotation, vous devez disposer d'une version comprenant la validation 1630224, à compter du 2 mai 2015.
Exemple
ffmpeg -i input.mp4 -c:a copy output.mp4
Pour désactiver ce comportement, utilisez l' -noautorotateoption.
Si l'entrée ne contient pas de métadonnées ou si votre ffmpegest vieux
Vous devrez utiliser un filtre pour faire pivoter la vidéo. Si des métadonnées de rotation existent, vous devrez les supprimer, comme indiqué dans les exemples ci-dessous:
Exemples
L' utilisation que ffmpegvous avez le choix entre trois méthodes d'utilisation de filtres vidéo pour une rotation de 180 °.
Ce filtre peut pivoter selon n’importe quel angle et utilise les radians comme unité au lieu de degrés. Cet exemple fera pivoter π / 1 radians ou 180 °:
Lors de l'utilisation du rotatefiltre, l'interpolation bilinéaire doit être désactivée (en utilisant bilinear=0) pour les angles divisibles par 90, sinon elle peut paraître floue.
Remarques
Le filtrage nécessite un encodage. Ces exemples créent des sorties vidéo H.264. Consultez le Guide d'encodage vidéo FFmpeg H.264 pour savoir comment obtenir la qualité souhaitée.
Sous-échantillonnage de chroma. J'ai inclus format=yuv420pdepuis car je ffmpegvais essayer de minimiser ou d'éviter le sous-échantillonnage de la chrominance (en fonction du codeur, de l'entrée, de la ffmpegversion, etc.). C'est un bon comportement au sens purement technique, mais la plupart des acteurs sont incompatibles avec des schémas plus avancés de sous-échantillonnage de la chrominance. C'est la même chose que d'utiliser -pix_fmt yuv420, mais elle est bien située dans la chaîne de filtrage .
Copiez l'audio. L' -codec:a copyoption diffusera une copie (re-mux) au lieu d'encoder. Il n'y a aucune raison de réencoder l'audio si vous souhaitez simplement manipuler la vidéo (à moins que vous ne souhaitiez convertir un format audio différent). Cela permettra de gagner du temps, car l'encodage prend beaucoup de temps et préserve la qualité de l'audio.
Faire pivoter lors de la lecture
Sinon, vous pouvez effectuer une rotation lors de la lecture et éviter le ré-encodage. ffplaytournera automatiquement:
ffplay input.mp4
S'il n'y a pas de données secondaires displaymatrix ou de rotation des métadonnées, vous pouvez utiliser des filtres:
ffplay -vf "hflip,vflip" -i input.mp4
... ou référez-vous à votre joueur préféré. La plupart des joueurs qui en valent la peine, comme VLC, ont cette capacité.
Merci, je viens de finir d'essayer -vf vflipet cela a fonctionné comme un charme. Mais c'était un ré-encodage. Je ne sais pas si je vous lis bien. Voulez-vous dire -vf hflip,vflipne sera pas ré-encoder?
Louis
@Louis ffmpegnécessite que vous codiez à nouveau lorsque vous utilisez des filtres vidéo et audio. Toutefois, vous ffplaypouvez également utiliser plusieurs filtres pendant la lecture, comme indiqué dans mon deuxième exemple.
llogan
Ah, je n'ai pas remarqué que c'était un programme différent.
Louis
Je me demande s'il existe un moyen de préserver la qualité vidéo autre que -codec:v libx264? Peut ffmpeg-on utiliser le même encodage sans que l’utilisateur n’essaie de le comprendre?
Sadi
1
@Louis rotateutilise les radians comme une unité au lieu de degrés. Je pense que les gens sont plus familiers avec les diplômes. J'ai donc essayé de montrer comment utiliser les diplômes dans l'exemple. Un degré est égal à π / 180 radians. Donc, si vous voulez faire une rotation de 45 °, utilisez simplement rotate="45*(PI/180)".
llogan
7
FFMPEG a modifié le comportement par défaut pour faire pivoter automatiquement les sources vidéo d'entrée avec les métadonnées "faire pivoter" dans la version 2.7 en 2015 .
Si vous savez que votre script ou votre commande ne s'exécutera jamais sur les versions de ffmpeg antérieures à la version 2.7, la solution la plus simple consiste à supprimer toute rotation personnalisée basée sur des métadonnées.
Dans les autres cas, vous pouvez vous préparer pour l'avenir en conservant votre code de rotation personnalisé et en ajoutant l' -noautorotateindicateur (cette option est prise en charge dans les versions antérieures qui étaient encore conservées à l'époque).
Les lecteurs multimédias qui utilisent ffmpeg en tant que moteur de décodage peuvent également utiliser tous leurs filtres. Voir cette capture d'écran avec le filtre "Offset & Flip".
Malheureusement, le transposefiltre référencé dans Rotation de vidéos avec FFmpeg ne tournera pas à 180 ° aussi loin que je peux le dire.
llogan
1
@LordNeckbeard pas directement, mais vous pouvez chaîner deux transposefiltres pour obtenir l'effet souhaité .
Evilsoup
1
@evilsoup Ah, oui, je n'y avais pas pensé. Le raisonnement spatial est difficile; allons faire les courses. N'hésitez pas à mettre à jour ma réponse avec un exemple.
llogan
1
Voici un script bash qui affichera les fichiers avec la structure de répertoires sous "fixedFiles". Il transforme et fait pivoter les vidéos iOS et transcode les AVI. Le script repose sur l’installation d’ exiftool et de ffmpeg .
#!/bin/bash# rotation of 90 degrees. Will have to concatenate.#ffmpeg -i <originalfile> -metadata:s:v:0 rotate=0 -vf "transpose=1" <destinationfile>#/VLC -I dummy -vvv <originalfile> --sout='#transcode{width=1280,vcodec=mp4v,vb=16384,vfilter={canvas{width=1280,height=1280}:rotate{angle=-90}}}:std{access=file,mux=mp4,dst=<outputfile>}\' vlc://quit#Allowing blanks in file names
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")#Bit Rate
BR=16384#where to store fixed files
FIXED_FILES_DIR="fixedFiles"#rm -rf $FIXED_FILES_DIR
mkdir $FIXED_FILES_DIR
# VLC
VLC_START="/Applications/VLC.app/Contents/MacOS/VLC -I dummy -vvv"
VLC_END="vlc://quit"############################################## Processing of MOV in the wrong orientationfor f in`find . -regex '\./.*\.MOV'`do
ROTATION=`exiftool "$f" |grep Rotation|cut -c 35-38`
SHORT_DIMENSION=`exiftool "$f" |grep "Image Size"|cut -c 39-43|sed 's/x//'`
BITRATE_INT=`exiftool "$f" |grep "Avg Bitrate"|cut -c 35-38|sed 's/\..*//'`
echo Short dimension [$SHORT_DIMENSION] $BITRATE_INT
if test "$ROTATION"!="";then
DEST=$(dirname ${f})
echo "Processing $f with rotation $ROTATION in directory $DEST"
mkdir -p $FIXED_FILES_DIR/"$DEST"if test "$ROTATION"=="0";then
cp "$f""$FIXED_FILES_DIR/$f"elif test "$ROTATION"=="180";then# $(eval $VLC_START \"$f\" "--sout="\'"#transcode{vfilter={rotate{angle=-"$ROTATION"}},vcodec=mp4v,vb=$BR}:std{access=file,mux=mp4,dst=\""$FIXED_FILES_DIR/$f"\"}'" $VLC_END )
$(eval ffmpeg -i \"$f\" -vf hflip,vflip -r 30-metadata:s:v:0 rotate=0-b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\")elif test "$ROTATION"=="270";then
$(eval ffmpeg -i \"$f\" -vf "scale=$SHORT_DIMENSION:-1,transpose=2,pad=$SHORT_DIMENSION:$SHORT_DIMENSION:\(ow-iw\)/2:0"-r 30-s "$SHORT_DIMENSION"x"$SHORT_DIMENSION"-metadata:s:v:0 rotate=0-b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\" )else# $(eval $VLC_START \"$f\" "--sout="\'"#transcode{scale=1,width=$SHORT_DIMENSION,vcodec=mp4v,vb=$BR,vfilter={canvas{width=$SHORT_DIMENSION,height=$SHORT_DIMENSION}:rotate{angle=-"$ROTATION"}}}:std{access=file,mux=mp4,dst=\""$FIXED_FILES_DIR/$f"\"}'" $VLC_END )
echo ffmpeg -i \"$f\" -vf "scale=$SHORT_DIMENSION:-1,transpose=1,pad=$SHORT_DIMENSION:$SHORT_DIMENSION:\(ow-iw\)/2:0"-r 30-s "$SHORT_DIMENSION"x"$SHORT_DIMENSION"-metadata:s:v:0 rotate=0-b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\"
$(eval ffmpeg -i \"$f\" -vf "scale=$SHORT_DIMENSION:-1,transpose=1,pad=$SHORT_DIMENSION:$SHORT_DIMENSION:\(ow-iw\)/2:0"-r 30-s "$SHORT_DIMENSION"x"$SHORT_DIMENSION"-metadata:s:v:0 rotate=0-b:v "$BITRATE_INT"M -vcodec libx264 -acodec copy \"$FIXED_FILES_DIR/$f\" )fifi
echo
echo ==================================================================
sleep 1done############################################## Processing of AVI files for my Panasonic TV# Use ffmpegX + QuickBatch. Bitrate at 16384. Camera res 640x424for f in`find . -regex '\./.*\.AVI'`do
DEST=$(dirname ${f})
DEST_FILE=`echo "$f" | sed 's/.AVI/.MOV/'`
mkdir -p $FIXED_FILES_DIR/"$DEST"
echo "Processing $f in directory $DEST"
$(eval ffmpeg -i \"$f\" -r 20-acodec libvo_aacenc -b:a 128k-vcodec mpeg4 -b:v 8M-flags +aic+mv4 \"$FIXED_FILES_DIR/$DEST_FILE\" )
echo
echo ==================================================================done
IFS=$SAVEIFS
On m'a demandé de l'éditer, de faire précéder le texte, indiquant que la solution que j'ai finalement trouvée était à la fin du texte. Ainsi, à la fin, vous trouverez les deux commandes consécutives de ffmpeg qui ont correctement pivoté ma vidéo dans la bonne orientation. Le texte précédent visait à donner le plus d’informations possible, comme j’avais vu d’autres messages qui ont été rejetés par manque d’informations. Quoi qu'il en soit, j'espère que cela aidera les autres utilisateurs de ffmpeg. Il me semble que le but de hflip et vflip dans ffmpeg est, au minimum, déroutant et contraire à ce à quoi je m'attendais.
Le fichier merlin.mov est une copie d'une vidéo que j'ai prise sur mon iphone, d'abord chargée sur Dropbox, puis téléchargée sur mon ordinateur portable sous Ubuntu:
$ uname -a
Linux gazelle 3.13.0-135-generic #184-Ubuntu SMP
Wed Oct 18 11:55:51 UTC 2017 x86_64 x86_64 x86_64
GNU/Linux
Je sais que j'aurais pu monter mon iphone via USB et copier les fichiers directement, mais cela n'a pas fonctionné. mon ordinateur portable reconnaîtrait que l'iphone était connecté, mais ne monterait pas son système de fichiers, et mon iPhone n'a pas été invité à "faire confiance" à l'ordinateur portable.
La commande que j'avais l'habitude de copier de Dropbox sur mon ordinateur portable était la suivante:
Le fichier original est Vidéo 1920 x 1080 Codec HEVC / H.265 Fréquencé à 30 / s, Débit 8140 kbps, Codec audio Canaux audio AAC MPEG-4 Stéréo, Taux d'échantillonnage de 44100 Hz, Débit binaire de 85 kbps. Quand je le joue sur mon iphone, il est correctement orienté et le son est synchronisé. Lorsque je le joue dans Vidéos sur mon ordinateur portable, le son est inversé et inversé, et le son n'est pas synchronisé. Voici une sortie partielle de "ffmpeg -i merlin.mov":
Metadata:
rotate : 180
creation_time : 2017-11-02T14:41:55.000000Z
handler_name : Core Media Data Handler
encoder : HEVC
Voici la première ligne de sortie de "ffmpeg -version":
ffmpeg version 3.3.3 Copyright (c) 2000-2017 les développeurs de FFmpeg
Les éléments suivants ont laissé la lecture inversée verticalement et horizontalement, bien qu'elle ait été convertie en vidéo MPEG-4 (vidéo / mp4) et synchronisée le son:
Ce qui suit est inversé verticalement pour que la lecture soit verticale, synchronise le son et converti au format MPEG-4, tout en laissant l’horizontal inversé pour fin (ce n’est pas une faute de frappe, j’ai spécifié «hflip»):
ffmpeg -i merlin.mov -vf 'hflip' merlinhflip.mp4
Ce qui suit a retourné l’horizontale dans la bonne orientation, mais a laissé la lecture à l’envers:
ffmpeg -i merlin.mov -vf 'vflip' merlinvflip.mp4
Les éléments suivants semblaient n'avoir aucun effet:
J'ai aussi essayé ceci, en me basant sur une commande trouvée sur superuser.com. Il a réussi à synchroniser le son et à le convertir en MPEG-4, mais les orientations horizontale et verticale sont restées incorrectes:
Le processus en deux étapes suivant a finalement obtenu ce que je voulais; vertical et horizontal à la fois retournés, le son synchronisé et le format converti au format MPEG-4 (Encore une fois, ce n’est pas une faute de frappe; j’ai utilisé hflip dans les deux commandes):
Bien que cela - cela semble être une réponse pour moi - il a tout simplement traversé son processus de résolution de problèmes.
Journeyman Geek
@JourneymanGeek En effet, vous avez raison. Je vois maintenant dans son dernier paragraphe. Le processus en deux étapes suivant a finalement obtenu ce que je voulais . Bon oeil. (J'ai vraiment lu le post en entier, mais mes yeux étaient probablement vitreux au moment où je suis arrivé là-bas).
Je dis: réintégrez Monica
Bon travail pour améliorer votre réponse. Vous avez bien fait d’inclure suffisamment de détails pour votre réponse. Lorsque vous parcourez le site, essayez de voir comment d’autres bonnes réponses équilibrent la clarté avec les détails.
Je dis: réintégrez Monica
0
Voici les étapes:
Commencez par ouvrir votre fichier vidéo dans QuickTime. Vous pouvez soit lancer QuickTime d’abord, aller à «Fichier» puis à «Ouvrir fichier». Vous pouvez également cliquer avec le bouton droit sur le fichier lui-même, choisir «Ouvrir avec», puis choisir QuickTime.
Une fois la vidéo ouverte, cliquez sur «Modifier». Vous trouverez ensuite les options de rotation et de retournement ci-dessous.
Une fois que vous avez verrouillé l'orientation souhaitée, vous devez exporter votre vidéo avec les nouvelles modifications que vous avez ajoutées. Vous trouverez l'option "Exporter" dans le menu "Fichier" de QuickTime.
Choisissez les paramètres de fichier que vous souhaitez exporter, puis cliquez sur «OK» pour lancer l’exportation.
Lorsque l'opération d'exportation est terminée, vous trouverez votre nouveau fichier où vous avez choisi de l'enregistrer avec l'orientation correcte!
L'ensemble de cette réparation m'a pris moins de 5 minutes, mais selon la longueur de la vidéo, cela pourrait prendre beaucoup plus de temps (ou moins, cela varie).
A fait le tour pour moi. Vous ne savez pas pourquoi le filtre de transposition ne fournit pas la possibilité de faire une rotation de 180 degrés à la fois, mais peu importe. Consultez la documentation pour plus d'informations.
Réponses:
tl; dr
ffmpeg
fera automatiquement pivoter la vidéo sauf si:ffmpeg
est trop vieuxMétadonnées de rotation
Certaines vidéos, telles que celles provenant d'iPhones, ne sont pas physiquement inversées, mais contiennent des données latérales displaymatrix de flux vidéo ou font pivoter des métadonnées. Certains joueurs ignorent ces métadonnées et d'autres non. Reportez-vous à la
ffmpeg
sortie de la console pour voir si votre entrée contient de telles métadonnées:Rotation automatique
ffmpeg
effectuera automatiquement une rotation physique de la vidéo en fonction des métadonnées de rotation du flux vidéo existantes.Pour pouvoir utiliser la fonction d'autorotation, vous devez disposer d'une version comprenant la validation 1630224, à compter du 2 mai 2015.
Exemple
Pour désactiver ce comportement, utilisez l'
-noautorotate
option.Si l'entrée ne contient pas de métadonnées ou si votre
ffmpeg
est vieuxVous devrez utiliser un filtre pour faire pivoter la vidéo. Si des métadonnées de rotation existent, vous devrez les supprimer, comme indiqué dans les exemples ci-dessous:
Exemples
L' utilisation que
ffmpeg
vous avez le choix entre trois méthodes d'utilisation de filtres vidéo pour une rotation de 180 °.hflip
etvflip
transpose
rotate
Ce filtre peut pivoter selon n’importe quel angle et utilise les radians comme unité au lieu de degrés. Cet exemple fera pivoter π / 1 radians ou 180 °:
Vous pouvez utiliser des degrés à la place. Un degré est égal à π / 180 radians. Donc si vous voulez faire une rotation de 45 °:
Lors de l'utilisation du
rotate
filtre, l'interpolation bilinéaire doit être désactivée (en utilisantbilinear=0
) pour les angles divisibles par 90, sinon elle peut paraître floue.Remarques
Le filtrage nécessite un encodage. Ces exemples créent des sorties vidéo H.264. Consultez le Guide d'encodage vidéo FFmpeg H.264 pour savoir comment obtenir la qualité souhaitée.
Sous-échantillonnage de chroma. J'ai inclus
format=yuv420p
depuis car jeffmpeg
vais essayer de minimiser ou d'éviter le sous-échantillonnage de la chrominance (en fonction du codeur, de l'entrée, de laffmpeg
version, etc.). C'est un bon comportement au sens purement technique, mais la plupart des acteurs sont incompatibles avec des schémas plus avancés de sous-échantillonnage de la chrominance. C'est la même chose que d'utiliser-pix_fmt yuv420
, mais elle est bien située dans la chaîne de filtrage .Copiez l'audio. L'
-codec:a copy
option diffusera une copie (re-mux) au lieu d'encoder. Il n'y a aucune raison de réencoder l'audio si vous souhaitez simplement manipuler la vidéo (à moins que vous ne souhaitiez convertir un format audio différent). Cela permettra de gagner du temps, car l'encodage prend beaucoup de temps et préserve la qualité de l'audio.Faire pivoter lors de la lecture
Sinon, vous pouvez effectuer une rotation lors de la lecture et éviter le ré-encodage.
ffplay
tournera automatiquement:S'il n'y a pas de données secondaires displaymatrix ou de rotation des métadonnées, vous pouvez utiliser des filtres:
... ou référez-vous à votre joueur préféré. La plupart des joueurs qui en valent la peine, comme VLC, ont cette capacité.
Obtenir
ffmpeg
Les versions plus anciennes de ffmpeg n'incluent pas de capacités de filtrage. Reportez-vous à la page de téléchargement de FFmpeg pour connaître plusieurs options, y compris des versions pratiques pour Linux, OS X et Windows, ou consultez le wiki de FFmpeg pour obtenir des guides de compilation ffmpeg détaillés .
la source
-vf vflip
et cela a fonctionné comme un charme. Mais c'était un ré-encodage. Je ne sais pas si je vous lis bien. Voulez-vous dire-vf hflip,vflip
ne sera pas ré-encoder?ffmpeg
nécessite que vous codiez à nouveau lorsque vous utilisez des filtres vidéo et audio. Toutefois, vousffplay
pouvez également utiliser plusieurs filtres pendant la lecture, comme indiqué dans mon deuxième exemple.-codec:v libx264
? Peutffmpeg
-on utiliser le même encodage sans que l’utilisateur n’essaie de le comprendre?rotate
utilise les radians comme une unité au lieu de degrés. Je pense que les gens sont plus familiers avec les diplômes. J'ai donc essayé de montrer comment utiliser les diplômes dans l'exemple. Un degré est égal à π / 180 radians. Donc, si vous voulez faire une rotation de 45 °, utilisez simplementrotate="45*(PI/180)"
.FFMPEG a modifié le comportement par défaut pour faire pivoter automatiquement les sources vidéo d'entrée avec les métadonnées "faire pivoter" dans la version 2.7 en 2015 .
Si vous savez que votre script ou votre commande ne s'exécutera jamais sur les versions de ffmpeg antérieures à la version 2.7, la solution la plus simple consiste à supprimer toute rotation personnalisée basée sur des métadonnées.
Dans les autres cas, vous pouvez vous préparer pour l'avenir en conservant votre code de rotation personnalisé et en ajoutant l'
-noautorotate
indicateur (cette option est prise en charge dans les versions antérieures qui étaient encore conservées à l'époque).la source
Les lecteurs multimédias qui utilisent ffmpeg en tant que moteur de décodage peuvent également utiliser tous leurs filtres. Voir cette capture d'écran avec le filtre "Offset & Flip".
Si vous souhaitez ré-encoder votre vidéo, consultez Rotation de vidéos avec FFmpeg sur Stackoverflow.
la source
transpose
filtre référencé dans Rotation de vidéos avec FFmpeg ne tournera pas à 180 ° aussi loin que je peux le dire.transpose
filtres pour obtenir l'effet souhaité .Voici un script bash qui affichera les fichiers avec la structure de répertoires sous "fixedFiles". Il transforme et fait pivoter les vidéos iOS et transcode les AVI. Le script repose sur l’installation d’ exiftool et de ffmpeg .
la source
On m'a demandé de l'éditer, de faire précéder le texte, indiquant que la solution que j'ai finalement trouvée était à la fin du texte. Ainsi, à la fin, vous trouverez les deux commandes consécutives de ffmpeg qui ont correctement pivoté ma vidéo dans la bonne orientation. Le texte précédent visait à donner le plus d’informations possible, comme j’avais vu d’autres messages qui ont été rejetés par manque d’informations. Quoi qu'il en soit, j'espère que cela aidera les autres utilisateurs de ffmpeg. Il me semble que le but de hflip et vflip dans ffmpeg est, au minimum, déroutant et contraire à ce à quoi je m'attendais.
Le fichier merlin.mov est une copie d'une vidéo que j'ai prise sur mon iphone, d'abord chargée sur Dropbox, puis téléchargée sur mon ordinateur portable sous Ubuntu:
Je sais que j'aurais pu monter mon iphone via USB et copier les fichiers directement, mais cela n'a pas fonctionné. mon ordinateur portable reconnaîtrait que l'iphone était connecté, mais ne monterait pas son système de fichiers, et mon iPhone n'a pas été invité à "faire confiance" à l'ordinateur portable.
La commande que j'avais l'habitude de copier de Dropbox sur mon ordinateur portable était la suivante:
Le fichier original est Vidéo 1920 x 1080 Codec HEVC / H.265 Fréquencé à 30 / s, Débit 8140 kbps, Codec audio Canaux audio AAC MPEG-4 Stéréo, Taux d'échantillonnage de 44100 Hz, Débit binaire de 85 kbps. Quand je le joue sur mon iphone, il est correctement orienté et le son est synchronisé. Lorsque je le joue dans Vidéos sur mon ordinateur portable, le son est inversé et inversé, et le son n'est pas synchronisé. Voici une sortie partielle de "ffmpeg -i merlin.mov":
Voici la première ligne de sortie de "ffmpeg -version":
ffmpeg version 3.3.3 Copyright (c) 2000-2017 les développeurs de FFmpeg
Les éléments suivants ont laissé la lecture inversée verticalement et horizontalement, bien qu'elle ait été convertie en vidéo MPEG-4 (vidéo / mp4) et synchronisée le son:
Ce qui suit est inversé verticalement pour que la lecture soit verticale, synchronise le son et converti au format MPEG-4, tout en laissant l’horizontal inversé pour fin (ce n’est pas une faute de frappe, j’ai spécifié «hflip»):
Ce qui suit a retourné l’horizontale dans la bonne orientation, mais a laissé la lecture à l’envers:
Les éléments suivants semblaient n'avoir aucun effet:
J'ai aussi essayé ceci, en me basant sur une commande trouvée sur superuser.com. Il a réussi à synchroniser le son et à le convertir en MPEG-4, mais les orientations horizontale et verticale sont restées incorrectes:
J'ai aussi essayé ceci, ce qui n'a pas fonctionné non plus en termes de correction d'orientation:
Le processus en deux étapes suivant a finalement obtenu ce que je voulais; vertical et horizontal à la fois retournés, le son synchronisé et le format converti au format MPEG-4 (Encore une fois, ce n’est pas une faute de frappe; j’ai utilisé hflip dans les deux commandes):
la source
Voici les étapes:
Commencez par ouvrir votre fichier vidéo dans QuickTime. Vous pouvez soit lancer QuickTime d’abord, aller à «Fichier» puis à «Ouvrir fichier». Vous pouvez également cliquer avec le bouton droit sur le fichier lui-même, choisir «Ouvrir avec», puis choisir QuickTime.
Une fois la vidéo ouverte, cliquez sur «Modifier». Vous trouverez ensuite les options de rotation et de retournement ci-dessous.
Une fois que vous avez verrouillé l'orientation souhaitée, vous devez exporter votre vidéo avec les nouvelles modifications que vous avez ajoutées. Vous trouverez l'option "Exporter" dans le menu "Fichier" de QuickTime.
Choisissez les paramètres de fichier que vous souhaitez exporter, puis cliquez sur «OK» pour lancer l’exportation.
Lorsque l'opération d'exportation est terminée, vous trouverez votre nouveau fichier où vous avez choisi de l'enregistrer avec l'orientation correcte!
L'ensemble de cette réparation m'a pris moins de 5 minutes, mais selon la longueur de la vidéo, cela pourrait prendre beaucoup plus de temps (ou moins, cela varie).
source de blog
la source
A fait le tour pour moi. Vous ne savez pas pourquoi le filtre de transposition ne fournit pas la possibilité de faire une rotation de 180 degrés à la fois, mais peu importe. Consultez la documentation pour plus d'informations.
la source