本文介绍从Linux命令行中使用FFMpeg旋转视频的方法,确保你已在系统上安装了最新的FFMpeg版本,FFMpeg在许多流行的Linux操作系统的默认存储库中都可用,因此安装很简单,如果你尚未在Linux机器上安装FFMpeg,请参考在Linux中安装和使用ffmpeg的方法(以Ubuntu 18.04系统为例)。
前言 我决定加入从我的智能手机拍摄的视频,并制作一个带有音频的类似电影的文件,但是,关键是有些视频是以纵向模式拍摄的,而有些是以横向模式拍摄的,在加入文件之前,我认为最好以相同的方向(即模式)对齐每个视频文件,当然,有许多基于GUI的工具,媒体播放器(如Smplayer、VLC,参考播放器:VLC,MPlayer,SMPlayer,MPV,Dragon,Totem,Deepin Movie,Xine)具有内置功能来旋转视频,但是我更喜欢命令行实用程序,我知道如何使用FFMpeg执行各种操作,例如将文件转换为另一种格式,裁剪、拆分和合并文件等等,可参考初学者学习FFmpeg命令的教程。如果你想使用FFMpeg旋转视频,请按照以下步骤操作。
从命令行使用FFMpeg旋转视频 FFMpeg具有称为“Transpose”的功能,用于旋转视频,使用此功能,我们可以轻松地顺时针和逆时针旋转视频,以及垂直和水平翻转视频。 例如,以下命令将给定视频顺时针旋转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媒体播放器中有效,如果视频方向无效,则可能需要按照第一个命令中所示重新编码。
相关主题 |