FFmpeg視頻的旋轉rotate升級版,rotate,alphamerge

給視頻加上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.視頻加上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

在這裏插入圖片描述

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

在這裏插入圖片描述
不夠完美,黑色去掉的有點多了,有好的方案在改吧

方案三:最終方案

在方案一的基礎上給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

在這裏插入圖片描述

方案四:如果頂部是一個方形的視頻

可以看到就像撲克牌一樣,一幀幀的鋪開,所以要用圓形來旋轉
即使加上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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章