当前位置:   article > 正文

FFmpeg视频的旋转rotate升级版,rotate,alphamerge_ffmpeg rotate

ffmpeg rotate

ffmpeg命令目录


给视频加上Mask后,旋转,并叠加在另一个视频上

方案一:

有黑底

ffmpeg -loop 1 -i 圆形.png -i maskBase.mp4 -i a3.mp4 -filter_complex [0:v]alphaextract[vMaskAlpha];[1:v][vMaskAlpha]alphamerge[vTop];[vTop]rotate=PI*2/10*t[vRotate];[2:v][vRotate]overlay=(W-w)/2:(H-h)/2 -y maskRotateOverlay.mp4
  • 1

在这里插入图片描述

方案二:分成两步

1.视频加上Mask以后,并且旋转

mask和底部视频尺寸要一致,时长也要一致,所以加上了-loop 1

ffmpeg -loop 1 -i 圆形.png -i maskBase.mp4  -filter_complex [0:v]alphaextract[vMaskAlpha];[1:v][vMaskAlpha]alphamerge[vTop];[vTop]rotate=PI*2/10*t[vRotate];color=c=black:s=648x648[vBg];[vBg][vRotate]overlay -t 10 -y maskRotate.mp4
  • 1

在这里插入图片描述

2.去掉黑底,并且overlay
ffmpeg -i a3.mp4 -i maskRotate.mp4 -filter_complex [1]split[m][a];[a]geq='if(gt(lum(X,Y),50),255,0)',hue=s=0[al];[m][al]alphamerge[ovr];[0][ovr]overlay=(W-w)/2:(H-h)/2 -y maskRotateOverlay2.mp4
  • 1

在这里插入图片描述
不够完美,黑色去掉的有点多了,有好的方案在改吧

方案三:最终方案

在方案一的基础上给rotate加一个参数
c=none

ffmpeg -loop 1 -i 圆形.png -i maskBase.mp4 -i a3.mp4 -filter_complex [0:v]alphaextract[vMaskAlpha];[1:v][vMaskAlpha]alphamerge[vTop];[vTop]rotate=PI*2/10*t:c=none[vRotate];[2:v][vRotate]overlay=(W-w)/2:(H-h)/2 -y maskRotateOverlay33.mp4
  • 1

在这里插入图片描述

方案四:如果顶部是一个方形的视频

可以看到就像扑克牌一样,一帧帧的铺开,所以要用圆形来旋转
即使加上eof_action=pass,也只是最后播放完成后,顶层视频帧一起消失

ffmpeg -i maskBase.mp4 -i a3.mp4 -filter_complex [0:v]format=bgra,rotate='PI*2/10*t:ow=hypot(iw,ih):oh=ow:c=none'[vRotate];[1:v][vRotate]overlay=(W-w)/2:(H-h)/2 -t 3 -y maskRotateOverlay55.mp4
  • 1

在这里插入图片描述

最终方案,核心,c=0x00000000 给一个透明色即可

ffmpeg -loop 1 -i 1567495070237.bmp -i a3.mp4 -filter_complex [0:v]format=bgra,rotate='PI*2/10*t:ow=hypot(iw,ih):oh=ow:c=0x00000000'[vRotate];[1:v][vRotate]overlay=(W-w)/2:(H-h)/2 -t 3 -y noBlackPad.mp4
  • 1

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/174735?site
推荐阅读
相关标签
  

闽ICP备14008679号