使用FFmpeg调整手机拍摄视频的旋转角度
文章目录
前言
前些日子,我在使用 MoviePy
处理手机拍摄的视频,处理完成之后,发现原来是竖屏拍摄的最后变成了横屏,而且内容显示也很奇怪。
但是使用播放器播放处理之前的视频却是没有问题的。
今天要使用 FFMPEG
来处理这个问题。
查看旋转角度
之前做 Android
开发的时候,知道使用手机拍摄视频会存在一个旋转角度,所以在处理的时候要设置一下角度。
所以我就猜测是旋转角度的问题,我们可以使用 FFMPEG
来查看一下旋转角度的信息
|
|
可以看到这里的旋转角度为 -90
也就是逆时针旋转 90°。
知道了问题就好办了,只要调整旋转角度就可以了。
旋转视频
在 FFMPEG
中旋转使用 -vf(set video filters)
来设置过滤,旋转的参数为 transpose
,它的值可以是以下几个
- 0: 逆时针旋转 90°并垂直翻转
- 1: 顺时针方向旋转 90°
- 2: 逆时针方向旋转 90°
- 3: 顺时针旋转 90°并垂直翻转
由于我们的视频是逆时针旋转的 90°,所以要调整的化要反过来,也就是顺时针旋转 90°
|
|
执行完指令后,打开播放器,就从竖屏变横屏了。
但这不是我们想要的,我们要的是保持竖屏。
由于 transpose
会识别 rotation
,所以原来竖屏的旋转了 90°变横屏了,所以在旋转之前需要把旋转角度调整为 0°。
调整旋转角度
调整角度使用 rotate
,由于不需要重新编解码所以直接使用原来的,参数为 copy
|
|
执行完之后竖屏变横屏了,和原来相比逆时针旋转了 90°,和预期一致。
这时候再顺时针旋转一下就能回到原来竖屏的样子了
|
|
执行完,回到竖屏,和预期一致。
总结
|
|