专栏首页程序员小助手短视频旋转图像,原来如此简单!不用编辑器,1键搞定

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

引言

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

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

有很多基于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

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

写在最后

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

本文分享自微信公众号 - 程序员小助手(mql45ea),作者:Rman

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 7个 ffmpeg 实例,个个都不简单,你敢看看吗?

    我们最近持续分享了一系列的关于音视频处理的文章,总是围绕着 ffmpeg 处理工具展开的。这个应用程序所支持的选项品类繁多功能复杂,组装起来威力无比。

    程序员小助手
  • 3分钟短文 | Laravel 给所有视图追加公共数据

    这又是一个深入laravel运行方式的问题,面对数百张页面,不可能所有的简单的页面 复杂的页面都继承了某些公用的layout数据。那么如何做到给所有视图都追加公...

    程序员小助手
  • 温故知新:ffmpeg操作《天空之城》。窗口党勿入,都是指令!

    在本文中,我们将看到一些选项和示例,演示如何使用FFmpeg多媒体框架对音频和视频文件执行各种转换过程。

    程序员小助手
  • 腾讯创始人陈一丹:腾讯要向90后创业者学习

    本文转自腾讯开放平台公众帐号open-qq 文 | 陈一丹(腾讯公司主要创办人之一) ? 关注微信“腾讯开放平台”并回复“90”,阅读《2014年那些融资过千万...

    腾讯高校合作
  • A trap of parameter 'size_average' in pytorch

    上面的程序很简单,设定一个loss函数,然后设定一个input和target进行loss计算,然后再backward。

    OLDPAN
  • 2017最流行的IDE之争,Eclipse夺冠

    下面的IDE流行度排行,数据来自于Google搜索的统计,搜索的越多自然就越流行。 Eclipse毫无疑问是最流行的IDE,目前以24.93%的市场占有率排名第...

    Java技术栈
  • Dalvik虚拟机原理及Xposed hook原理

    这块知识本身是挺多的,网上有对应的源码分析,本文尽量从不分析代码的角度来把原理阐述清楚。

    用户2930595
  • 大规模微服务场景下的性能问题定位与优化

    今天我的主题是在微服务场景下的一个性能问题的定位优化,那么今天会讲一个我们其实出现的一个真实的一个场景,然后其实还是花了蛮长时间,然后把这个东西才定位到一个具体...

    赵成
  • 大规模微服务场景下的性能问题定位与优化

    今天我的主题是在微服务场景下的一个性能问题的定位优化,那么今天会讲一个我们其实出现的一个真实的一个场景,然后其实还是花了蛮长时间,然后把这个东西才定位到一个具体...

    互扯程序
  • ServletContext与Web应用以及Spring容器启动

    Servlet容器在启动时会加载Web应用,并为每个Web应用创建唯一的ServletContext对象。

    良月柒

扫码关注云+社区

领取腾讯云代金券