I have a video file. I open it with MediaInfo utility and I can see a video stream in this file having attribute Rotation 90 (along with other attributes such as CodecID, bitrate etc).
Now I have another video file which does not have that attribute Rotation 90, it does not have the Rotation attribute at all.
Can I use ffmpeg.exe so that it produces output file with Rotation 90 attribute added and with no other changes? I don't really want to do any transform, just want to set the Rotation attribute.
I've tried the -metadata
option to no avail.
Use the -display_rotation
option to set the output display rotation:
ffmpeg -display_rotation 90 -i input.mp4 -c copy output.mp4
This will stream copy the bitstreams, so no encoding is performed. Only the stream metadata will be changed to indicate to the player that rotation is needed. For more information, check out the -display_rotation
documentation.
Additional notes:
If you want to "physically" rotate the video, you have to use the transpose
filter. Filtering will require re-encoding, so you will have to remove -c copy
.
If you omit -c copy
, and want to encode instead of only re-muxing, then ffmpeg
will automatically rotate the video if there is any existing rotate metadata. You can disable this behavior with -noautorotate
.