151

Is there a way to change the rotation angle of a video file?

I have a couple of videos in the wrong direction so all I wanted is to correct it.

Michael K
  • 13,888
maniat1k
  • 8,130

7 Answers7

189

You can also use ffmpeg and the commandline (taken from Rotating videos with FFmpeg):

Rotate 90 clockwise:

ffmpeg -i in.mov -vf "transpose=1" out.mov

For the transpose parameter you can pass:

0 = 90CounterCLockwise and Vertical Flip (default) 
1 = 90Clockwise 
2 = 90CounterClockwise 
3 = 90Clockwise and Vertical Flip

And to flip it horizontally (ffmpeg documentation):

Flip the input video horizontally.

For example to horizontally flip the video in input with `ffmpeg':

ffmpeg -i in.avi -vf "hflip" out.avi

Nota bene 1

Older versions of Ubuntu supplied avconv instead of ffmpeg. In this case just change ffmpeg to avconv:

avconv -i in.mov -vf "transpose=1" out.mov

Nota bene 2

If the output is a .mp4 video you has to add strict -2 before the output file to avoid error message :

ffmpeg -i in.mp4 -vf "transpose=1" -strict -2 out.mp4
  • 4
    -sameq doesn't mean 'same quality', it is actually a very limited option that is almost never practically useful, and has been removed from recent versions of ffmpeg precisely because its name causes confusion. – evilsoup Sep 16 '13 at 09:14
  • @evilsoup thank you for the comment. I've rolled back the changes. However, a better link to provide is this: http://trac.ffmpeg.org/wiki/Option%20'-sameq'%20does%20NOT%20mean%20'same%20quality', which is from the ffmpeg site itself. – Alaa Ali Sep 17 '13 at 04:29
  • 2
    N.B. that ffmpeg is now deprecated in favour of avconf "*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead." See a the answer for avconv: http://askubuntu.com/questions/269429/how-can-i-rotate-video-by-180-degrees-with-avconv – Sparhawk Feb 10 '14 at 06:50
  • 1
    @Sparhawk You are right --- but it seems that ffmpeg has a chance of doing a comeback. http://lwn.net/Articles/607591/ ;-) – Rmano Sep 08 '14 at 09:37
  • 2
    To add to your answer (maybe some people might find this useful): To rotate an x264 video with ffmpeg I had to specify the codec / library explicitly: ffmpeg -i in.mp4 -vcodec libx264 -vf "transpose=2" out.mkv. If it says Unknown encoder libx264, you need to install the appropriate libavcodec-extra package. – balu Nov 05 '15 at 14:00
  • Peculiar. Why do I need to make it mkv? – lindhe Feb 26 '16 at 08:13
  • In case of Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height see SO – Timo Jul 09 '18 at 20:42
89

If you are asking for rotate a video 90º or 180º, you should use avidemux.

sudo apt-get update
sudo apt-get install avidemux
  1. open the video in avidemux
  2. select a new video format and don't choose copy
  3. Under "Video" click on Filters
    1. Choose "Transform" and scroll down until you see rotate.
    2. Add it
    3. select the right angle
    4. select preview
    5. ok.
  4. Go to file
  5. save
  6. save video

And you're done.

  • 4
    Not sure what video format i should choose? Can i keep original video format? – Dziamid Dec 04 '12 at 09:47
  • 1
    I have rotated videos (.MOV) in Windows XP, using Apple Quicktime Pro ("QTP"). If done correctly the file remains rotated for other Windows machines and on my wife's iMac, but appears unrotated in Dragon Player ("DP") using Kubuntu 12.04.1. DP doesn't claim to be more than a "Simple" player, but I suspect that the problem is that QTP rotates files in a way that is accessible only in QT. Does Avidemux do better? – WGCman Dec 09 '12 at 12:14
  • 1
    I'm trying to find out how this can be achieved using avidemux2_cli so that I can perform this simply from the context menu via nautilus-script. – Sadi Sep 23 '13 at 17:06
  • 3
    What does "select a new video format and don't choose copy" mean, exactly? – Jeff Trull Jul 06 '14 at 04:57
  • 2
    Echoing @JeffTrull, can you elaborate on the steps? I found that 'Click on Filters' means 'Select Video→Filters from the menu', but then it says 'To apply filters the video must be transcoded'... whatever that means... – Michael Scheper Apr 28 '15 at 04:38
  • This is FULL of bugs! "H264 detected", when trying to load, followed by no option to do anything other than some accuracy-losing step.. nope. go with ffmpeg – Louis Maddox Jul 11 '15 at 15:47
  • Unfortunately avidemux doesn't open videos created by my camera. – krumpelstiltskin Dec 14 '15 at 17:27
  • 1
    @JeffTrull "select a new video format and don't choose copy" -- Under "video" on the left-hand side of the screen there's a drop down menu. Choose something other than "Copy". I did "MPEG-4 AVC". That also fixes the "To apply filters ..." error message. – BenB Nov 06 '16 at 22:35
  • 16
    Sadly, "avidemux" is no longer in the standard repo. – Cerin Oct 24 '17 at 04:13
19

Do you mean rotation on playback or converting it to a rotated version?

As a commandline-user I normally use mplayer:

Playback: mplayer -vf rotate=1 videofile.mp4 (rotate can have values from 0 to 7, 1 rotates 90deg clockwise)

Convert (requires transcoding): mencoder -vf rotate=1 videofile.mp4 -oac copy -of lavf -lavfopts format=mp4 -ovc lavc -lavcopts vcodec=mpeg4 -o newfilename.mp4 (you can use other video codecs as well, this is just an example)

And here is a graphical tool to do the latter: kdenlive (a kde application from the universe)

  • import your video as a clip
  • draw the clip into the timeline
  • rightclick onto the video chunk in timeline
  • select "Add Effect" -> "Crop and Transform" -> "Rotate (Keyframable)"
  • The effect can be configured in the upper central section of the window, set X to 900 (thats 90 deg clockwise)
  • Render your project (Project -> Render in the main menu)
  • Be careful to choose a video resolution for the resulting portrait format
  • select any video codec you like, i recommend x264 or vp8 (webm)
Paul Hänsch
  • 3,197
  • convert to a rotated form. – Bennett Oct 26 '12 at 16:46
  • Out of curiosity: did you use mencoder in the end or kdenlive? There is a lot of documentation available online for tweaking mencoder options btw. Also some recommendations for "the perfect mencoder command line"(TM), most of them good. – Paul Hänsch Oct 27 '12 at 13:01
  • 3
    If you want to rotate by 180 degrees, you have to use option flip and mirror at the same time, thus mplayer -vf flip,mirror videofile.mkv – erik Jan 20 '17 at 16:40
  • @erik Nice hint. Strange, though, when I run my video using mplayer -vf flip,mirror everything is fine. But when I try to convert it, using mencoder -vf flip,mirror, it is still rotated by 90°. Is there a different syntax for mencoder to flip a video by 180°? – Würgspaß Aug 02 '18 at 17:11
11

If you just want to view a movie in a different orientation, as of Totem 3.1.4 (in Raring 13.04 and beyond), there is a "rotation plugin" which you can turn on (edit/plugins), and then rotate e.g. via ctrl-r.

I think proper rotation should be automatic when there is rotation metadata, and I commented on a relevant Totem bug here: Bug 701950 – Iphone Movies

There are also ways to do this in mplayer (and to convert to a rotated movie with mencoder), e.g.

 mplayer -vf rotate file.mov

or

 mencoder file.mov -oac lavc -ovc x264 -vf rotate=1 -o file-rotated.mov
nealmcb
  • 3,647
  • I found that this only did 90 degrees rotation, but with various combinations of flip and mirror. To get a 180 degree rotation, I have to run mplayer -vf rotate=1,rotate=1 file.mp4 that is, two 90 degree rotations in a row. – Criggie Nov 22 '20 at 04:46
6

The best option (in my opinion!) is OpenShot, you simply follow these easy steps:

  1. Start OpenShot
  2. On the File Tab, Import the video file you need to rotate
  3. Drag the imported video to the timeline field at the bottom (either one will do!).
  4. Once the videoclip is in the timeline field, right click on it and choose rotate to the desired angle
  5. Then on the File Tab choose Export video and set the prefered format and location to it!
  6. And presto!! That's it
4

OpenShot crops the video when rotated from landscape to portrait. To compensate, I tried these steps and it worked. Hope it works for you too.

  1. place video on a track, right click and select properties
  2. Under videos tab, uncheck "maintain aspect ratio" and "stretch full screen"
  3. Under videos tab, put 90 for rotating clockwise, or -90 to rotate anti-clockwise
  4. Under Layout tab, decrease width % to lower value (say 70) for both "start of click" and "end of clip". This value should depend upon aspect ratio of shooting, so try accordingly. Mine was 16:9 and value of 70 was fine.

In this way, you would find the video least cropped and it should not be noticeable.

sbharti
  • 256
3

A simple tool that can also rotate is transmageddon. Install it with

sudo apt install transmageddon

then load your file into it and choose the rotation position

enter image description here

ptetteh227
  • 1,904
  • Same codecs, but the output file became more than 10 times smaller... Is it because of quality degradation? – HEKTO Jan 19 '20 at 03:11
  • This is the best answer. And HEKTO, the quality of the output is dependent on the output format and codecs you choose. – Nav Jul 14 '20 at 04:38
  • ModuleNotFoundError: No module named 'gi' – rclyde Nov 17 '20 at 14:17