视频图像如何旋转(编辑视频如何旋转视频)
引言
现在我们都使用智能手机进行短视频的拍摄和制作,同时带有音频文件。
但是有时候竖屏拍摄的图像,或者横屏拍摄的图像想要进行旋转,做一些特效,进行二次加工的时候,需要耗费很多的时间。
有很多基于GUI的工具和媒体播放器,比如Smplayer,VLC,都有内置的旋转视频功能。但我们更喜欢命令行实用程序,因为处理的文件不止一个两个,每个都手动去操作,效率太低了。
之前的一系列文章,我们已经深度的。向大家介绍了 ffmpeg 一些令人惊艳的功效。如将文件转换为另一种格式、裁剪、拆分和合并文件等等。
本文也使用该工具,实现图像旋转的功能。
学习时间
ffmpeg 有一个名为“Transpose”的功能,用于旋转视频。使用此功能,我们可以轻松地顺时针和逆时针旋转视频,以及垂直和水平翻转它们。
比如下面这一行指令,把视频文件按照顺时针方向旋转90°。
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
或者使用语义化的参数名称。
ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4
这里,transspose=1 表示顺时针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
需要注意的是,上面两个通过设置元数据进行的旋转,在一些播放器上并不受支持。但是,性能更高。
写在最后
使用程序化的角度解决问题,这是程序员的必修课。可能看起来不是那么直观,但是一旦打通了整个处理流程,你也就拥有了超凡的处理能力。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
赞 (0)