这两天在处理一段用 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”为什么没有效果,始终不明。它是意思就是连续逆时针转两次,网上查过这个命令也是没有问题的,奇怪了。