前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >短视频旋转图像,原来如此简单!不用编辑器,1键搞定

短视频旋转图像,原来如此简单!不用编辑器,1键搞定

作者头像
程序员小助手
发布2020-06-04 10:50:12
5.2K0
发布2020-06-04 10:50:12
举报
文章被收录于专栏:程序员小助手

引言

现在我们都使用智能手机进行短视频的拍摄和制作,同时带有音频文件。

但是有时候竖屏拍摄的图像,或者横屏拍摄的图像想要进行旋转,做一些特效,进行二次加工的时候,需要耗费很多的时间。

有很多基于GUI的工具和媒体播放器,比如Smplayer,VLC,都有内置的旋转视频功能。但我们更喜欢命令行实用程序,因为处理的文件不止一个两个,每个都手动去操作,效率太低了。

之前的一系列文章,我们已经深度的。向大家介绍了 ffmpeg 一些令人惊艳的功效。如将文件转换为另一种格式、裁剪、拆分和合并文件等等。

本文也使用该工具,实现图像旋转的功能。

学习时间

ffmpeg 有一个名为“Transpose”的功能,用于旋转视频。使用此功能,我们可以轻松地顺时针和逆时针旋转视频,以及垂直和水平翻转它们。

比如下面这一行指令,把视频文件按照顺时针方向旋转90°。

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

或者使用语义化的参数名称。

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4

这里,transspose=1 表示顺时针90度转置给定的视频。

下面是转置功能可用的参数列表:

  • 0-逆时针旋转90度,垂直翻转。这也是默认设置。
  • 1-顺时针旋转90度。
  • 2-逆时针旋转90度。
  • 3-顺时针旋转90度,垂直翻转。

要将视频顺时针旋转180度,需要像下面这样转置两次。

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4

上述命令把给定视频文件的音频和视频部分进行了重新编码。如果您不想这么耗费资源,仅仅更改元数据中的旋转设置,就用以下的命令:

代码语言:javascript
复制
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

还有更甚者,你可以将输入文件的所有全局元数据,复制到输出文件中,包括日期、摄像机详细信息等。如下所示:

代码语言:javascript
复制
ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4

需要注意的是,上面两个通过设置元数据进行的旋转,在一些播放器上并不受支持。但是,性能更高。

写在最后

使用程序化的角度解决问题,这是程序员的必修课。可能看起来不是那么直观,但是一旦打通了整个处理流程,你也就拥有了超凡的处理能力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 学习时间
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档