赞
踩
旋转的水印使用rotate
过滤器实现。但要注意旋转后内容实际占用区域和原区域是不同的,rotate默认的输出尺寸是使用输入尺寸。因此需要重新计算输出宽度ow
和输出高度oh
。
ffmpeg -i main.mp4 -i overlay.png -filter_complex [1:v]rotate=a=PI/4:ow="rotw(PI/4)":oh="roth(PI/4)":fillcolor="none"[rot],[0:v][rot]overlay=x=50:y=50 output.mp4
下面分3步说明实现:
第一步,将overlay层旋转45度。
ffmpeg -i main.mp4 -i overlay.png -filter_complex [1:v]rotate=a=PI/4[rot],[0:v][rot]overlay=x=50:y=50 output.mp4
黑色区域是输入尺寸,红色框是旋转后实际需要的尺寸。由于默认使用输入的尺寸作为输出尺寸,旋转后的图片并不能完全展示。
第二步,重新计算输出尺寸,可以使用ffmpeg提供的表达式rotw
以及roth
。这两表达式返回的是包含旋转后图层需要的最小宽度和高度。
ffmpeg -i main.mp4 -i overlay.png -filter_complex [1:v]rotate=a=PI/4:ow="rotw(PI/4)":oh="roth(PI/4)"[rot],[0:v][rot]overlay=x=50:y=50 output.mp4
输出尺寸没问题了,剩下一块乌漆嘛黑的背景色,添加rotate
过滤器的fillcolor
参数并设置为不指定。
第三步,不指定背景色
ffmpeg -i main.mp4 -i overlay.png -filter_complex [1:v]rotate=a=PI/4:ow="rotw(PI/4)":oh="roth(PI/4)":fillcolor="none"[rot],[0:v][rot]overlay=x=50:y=50 output.mp4
旋转一定角度的水印就完成了!参数描述可参考 ffmpeg 入门篇。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。