如何从命令行使用FFMpeg旋转视频

时间:2020-03-21 11:44:54  来源:igfitidea点击:

FFMpeg具有称为“转置”的功能,用于旋转视频。
使用此功能,我们可以轻松地顺时针和逆时针旋转视频,以及垂直和水平翻转视频。

例如,以下命令将给定视频顺时针旋转90度:

$ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

或者,使用以下命令:

$ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4

其中transpose = 1参数指示FFMpeg将给定视频顺时针旋转90度。
这是转置功能的可用参数列表。

  • 0-逆时针旋转90度并垂直翻转。这是默认值。
  • 1-顺时针旋转90度。
  • 2-逆时针旋转90度。
  • 3-顺时针旋转90度并垂直翻转。

要将视频顺时针旋转180度,我们需要如下两次提及转置参数。

$ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4

上面的命令将重新编码给定视频文件的音频和视频部分。
如果我们不想重新编码视频并仅更改元数据中的旋转度,请改用以下命令:

$ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

更好的是,我们可以将输入文件的所有全局元数据(例如日期,相机详细信息)复制到输出文件,如下所示。

$ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4

请注意,在某些无法处理轮播元数据的播放器中,它不起作用。
我仅更改了元数据中的视频方向,并在Smplayer中播放了它。
但是它一直以先前的方向播放视频。
但是它在Gnome媒体播放器中有效!我不知道为什么因此,如果视频方向无效,则可能需要按照第一个命令中所示的那样对其进行重新编码。