您的位置: 开心技术乐园 > 技术乐园 > 阅读文章

FFmpeg 视频画面旋转的命令详解及旋转失败的解决方法

  这两天在处理一段用 iPhone 拍摄的视频,在手机上看正常,导出到电脑上发现视频是倒的,或者说反的。没办法,剪辑之前必须先将它“转正”。于是打算将它在 iPhone 里进行处理,具体方法请看:iPhone 拍的视频是倒的反的?几秒钟搞定!。然而奇怪的是,iPhone 处理完成后,导出到电脑上查看,依然是倒的?!也就是说,不管视频在 iPhone 是正的还是倒的,拿到电脑上看,都是倒的,神奇了!

  没办法,那只能动用电脑软件处理了。前几天介绍了命令行工具 FFmpeg,刚好可以派上用场。ffmpeg 功能十分强大,视频旋转是它其中的一个功能,废话不多说,直接看命令:
ffmpeg -i Hack520_com.mov -vf “transpose=2,transpose=2” Hack520_com_new.mov

此过程需要较长时间,看文件大小和电脑配置。这条命令就是可以将 Hack520_com.mov 这个视频文件画面逆时针旋转180。具体看如下命令说明:

i:输入文件。
Hack520_com.mp4:输入文件名称。

-vf:过滤器。
"transpose=2,transpose=2":过滤条件。
其中transpose取值:
0 = 90CounterCLockwise and Vertical Flip (default) 逆时针和垂直翻转
1 = 90Clockwise 顺时针旋转
2 = 90CounterClockwise 逆时针旋转
3 = 90Clockwise and Vertical Flip 顺时针和垂直翻转

上述操作之后,兴奋地打开新的视频文件查看,结果依然是反的,跟之前的相比根本没有变化,这是怎么回事?难道是 mov 格式的问题?将新输出的文件改成 mp4 格式。不行,问题依旧。转了半天竟然没有效果,我也是奇怪了。

尝试只转90度,命令:
ffmpeg -i Hack520_com.mov -vf “transpose=0” Hack520_com_new.mov

结果成功了,真的转了90度!transpose=2 命令再转一次,最后终于将视频“转正”了。但一开始的命令参数“”transpose=2,transpose=2”为什么没有效果,始终不明。它是意思就是连续逆时针转两次,网上查过这个命令也是没有问题的,奇怪了。

    • 本文标签:
    • 人气热度:1,489
    • 生产日期:2019年5月24日 - 16时36分57秒
    1. 会游泳的企鹅 说: 回复他/她写于 2019-7-10 15:20:58

      1.首先你的图像是反的,你需要对图形进行 水平翻转 或 竖直翻转;单纯的顺时针逆时针旋转无法校正!
      2.transpose=2 只是单纯的进行旋转操作
      3.ffmpeg -i Hack520_com.mov -vf “transpose=0” Hack520_com_new.mov 中的 transpose=0 并不是只转90度,而是逆时针转90度后又进行了竖直翻转,所以你的图像经过这一步,已经不是反的了.

      Google Chrome 71.0.3578.98 Windows 7 x64 Edition

    error: 内容无法复制!