25

I'd like to rotate video (mp4) by 180 degrees, but not flip. Is it possible to do it with avconv?

sobi
  • 253

5 Answers5

31

It is possible using the transpose video filter. You cannot rotate by 180 degrees, but you can rotate by 90 degrees and chain the filter.

avconv -i video.mp4 -vf transpose=1,transpose=1 out.mkv

See transpose in the avconv manpage: http://manpages.ubuntu.com/manpages/quantal/en/man1/avconv.1.html

phoibos
  • 22,176
15

Yes, but you'll need to add some additional options to your command for it to work properly. Transpose and vflip/hflip should do the trick, but if you don't tell avconv more detail about what you want, you'll likely get very low quality output try:

 avconv -i original.mp4 -vf "hflip,vflip" -codec:v libx264 -preset slow -crf 20 -codec:a copy flipped.mp4

Notice the -crf option. That sets the output quality. It goes from 0 (lossless) upwards logarithmically. You'll probably want a value between 19 and 25 in most cases. -preset sets the speed of the encoding, either "slow", "medium", or "fast". Slow should get you smaller file sizes with an obvious tradeoff. You should adjust -codec:v to match the original. If you don't set these options you'll get the defaults, which don't work well when flipping iphone video.

6

Additional method with avconv is to use vflip and hflip filters. Should run faster and maybe better quality:

avconv -i video.mp4 -vf vflip,hflip out.mp4
kiri
  • 28,986
wcarlson
  • 61
  • 1
  • 1
1

I did this:

avconv -i invertedOne.mp4 -c:a copy -vf "hflip,vflip" rightOne.mp4

Full HD video, great results with non perceivable quality loss

David Foerster
  • 36,890
  • 56
  • 97
  • 151
jap1968
  • 394
1

For avconv or ffmpeg Under 14.04 or later

There have been some changes to the libav documentation since @phoibos quality answer to this question. You can rotate a video 180 degrees avoiding flipping entirely by chaining 2 90 degree commands together (separated by a comma) I accomplished this with the command

avconv -i inputfile -vf transpose=clock,transpose=clock outputfile

for clockwise rotation.

in ffmpeg the syntax is the same.

ffmpeg -i inputfile -vf transpose=clock,transpose=clock outputfile

where inputfile is your supported input video file and outputfile is your desired output file.

For counter clockwise rotation replace clock with cclock

Sources:

https://libav.org/avconv.html#transpose

Testing on Ubuntu 14.04.5 and 16.04 LTS

Elder Geek
  • 36,752