《FFmpeg Basics》中文版-07-翻转和旋转视频

写在前面

如果您对音视频技术感兴趣,可以订阅我的专题:音视频专辑
也可以关注我的账户: 张芳涛,我后期会发布更多的音视频以及图像处理方面的文章。

正文

视频帧的翻转和旋转是常见的视觉操作,可以用来创建各种有趣的效果,比如输入的镜像版本。

水平翻转

水平镜像的视频版本-水平翻转是用一个在表格中描述的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 

效果图如下:

你可能感兴趣的:(《FFmpeg Basics》中文版-07-翻转和旋转视频)