7.翻转和旋转视频
视频帧的翻转和旋转是常见的视觉操作,可以用来创建各种有趣的效果,比如输入的镜像版本。
水平翻转
水平镜像的视频版本-水平翻转是用一个在表格中描述的hflip过滤器创建的。
描述 | 水平翻转输入视频,因此输出看起来像是从侧面镜像。过滤器没有参数 |
---|---|
语法 | -vf hflip |
为了测试testsrc视频源的水平翻转,我们可以使用以下命令:
ffplay -f lavfi -i testsrc -vf hflip
我的测试命令和书里面的一样,显示效果如下图:
左右是倒着的
垂直翻转
对于垂直方向的输入帧,我们可以使用在表格中描述的vflip过滤器。
描述 | 垂直翻转输入视频,因此输出看起来像从顶部或底部镜像 |
---|---|
语法 | -vf vflip |
左下方的图像是在第25章中描述的rgbrestsrc模式。为了得到它的垂直翻转版本,我们可以使用下一个命令:
ffplay -f lavfi -i rgbtestsrc -vf vflip
我自己的测试命令和书上的一样,效果图如下:
介绍旋转
之前的FFmpeg版本包含特殊的过滤器旋转,使视频旋转可以进入角度值。这个过滤器现在已被弃用,取而代之的是一个转置过滤器,它允许旋转并且可以选择立即翻转输入。表中描述了转置滤波器。
描述 | 将行与输入的列进行转置,如果选择,也会翻转结果 |
---|---|
语法 | transpose={0, 1, 2, 3} one from the values 0 - 3 is used |
* | 描述可用的值 |
0 | 输入由90°逆时针旋转,垂直翻转 |
1 | 输入是顺时针旋转90° |
2 | 输入是逆时针旋转90° |
3 | 输入是顺时针旋转90°,垂直翻转 |
请注意,转置滤波器的值0和3在视频帧上同时提供两个操作——旋转和垂直翻转。这意味着值0的使用包括两个过滤器的效果,下面两个命令的结果相同:
ffplay -f lavfi -i smptebars -vf transpose=0
ffplay -f lavfi -i smptebars -vf transpose=2,vflip
看看我自己的测试效果:
如果使用如下命令行:
ffplay -f lavfi -i smptebars -vf transpose=0
显示效果如下图:
如果使用如下代码:
ffplay -f lavfi -i smptebars -vf transpose=2,vflip
显示效果如下图:
image.png
类似地,在接下来的两个命令中,可以用两个过滤器替换值3:
ffplay -f lavfi -i smptebars -vf transpose=3
ffplay -f lavfi -i smptebars -vf transpose=1,vflip
在接下来的章节中,我们描述了带有插图的转置过滤器的每个值的用法。
逆时针旋转90度,垂直翻转
下一个命令以顺时针方向旋转90度的输入:
ffmpeg -i CMYK.avi -vf transpose=0 CMYK_transposed.avi
我自己的测试命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=0 /Users/zhangfangtao/Desktop/newTest.mp4
原来的视频:
原来的视频
转换之后的视频
顺时针旋转90度
下一个命令输入90°旋转顺时针方向:
ffmpeg -i CMYK.avi -vf transpose=1 CMYK_transposed.avi
我的测试命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=1 /Users/zhangfangtao/Desktop/newTest.mp4
显示效果如下:
顺时针旋转90度
逆时针旋转90度
下一个命令输入90°逆时针旋转:
ffmpeg -i CMYK.avi -vf transpose=2 CMYK_transposed.avi
我的测试命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=2 /Users/zhangfangtao/Desktop/newTest.mp4
显示效果:
image.png
顺时针旋转90度,垂直翻转
下一个命令输入90°旋转顺时针方向和垂直翻转它:
ffmpeg -i CMYK.avi -vf transpose=3 CMYK_transposed.avi
我的测试命令如下:
ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf transpose=3 /Users/zhangfangtao/Desktop/newTest.mp4
效果图如下: