====== ffprobe - Video - Rotate ======
To detect whether videos are recorded in portrait or landscape mode.
===== Video orientation detection =====
ffprobe -v error -select_streams v:0 -show_entries stream_tags=rotate -of csv=s=x:p=0 input.mp4
**NOTE:** On unrotated videos, the above command produces no output.
----
==== Getting Width, Height, Rotation ====
ffprobe -v error -select_streams v:0 -show_entries stream=width,height:stream_tags=rotate -of csv=p=0 input.mp4
returns:
1920,1080,270
**NOTE:** Even though the rotation here is 270, the width and height are still shown as if the orientation was portrait.
* Due to the 270 rotation, in reality the actual input should be 1080x1920, and not 1920x1080.
* But ffprobe reports the actual width x height; Width is displayed first, then height (no matter the order it is requested).
----
===== Using Grep =====
ffprobe somevideo.mp4 2>&1 | grep rotate
returns:
rotate : 90
----
===== In a Bash Script =====
rotate=$(ffprobe -v error -select_streams v:0 -show_entries stream_tags=rotate -of csv=s=x:p=0 "${sourceFile}")
if [ "$rotate" != "" ]; then
echo "We need to rotate: $rotate"
fi
----