#中心点水平旋转 #ffmpeg -i 20250926_1607.mp4 -loop 1 -i 2.png -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=200:60,format=rgba,rotate='0:c=0x00000000:ow=hypot(iw,ih):oh=ow',format=rgba,rotate='PI/5*t:c=0x00000000:ow=hypot(iw,ih):oh=ow'[pm1];[pm1]overlay=(W-w)/2+0:(H-h)/2+0" -t 00:00:15 -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #测试视频中心旋转-successful #ffmpeg -i input-0.mp4 -i input-1.mp4 -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=300:150,format=rgba,rotate='0:c=0x00000000:ow=hypot(iw,ih):oh=ow',format=rgba,rotate='PI/5*t:c=0x00000000:ow=hypot(iw,ih):oh=ow'[pm1];[pm1]overlay=(W-w)/2+0:(H-h)/2+0" -t 00:00:15 -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #单独视频旋转-successful #ffmpeg -i 20251028-154457.mp4 -filter_complex "rotate='0:c=#FFFFFF:ow=hypot(iw,ih):oh=ow',format=rgba,rotate='PI/5*t:c=#FF00FF:ow=hypot(iw,ih):oh=ow'" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #ffmpeg -i input-0.mp4 -filter_complex "rotate='0:c=#FFFFFF:ow=hypot(iw,ih):oh=ow',format=rgba,rotate='PI/5*t*5:c=#FF00FF:ow=hypot(iw,ih):oh=ow'" -t 00:00:30 -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #ffmpeg -i input-0.mp4 -filter_complex "rotate='0:c=#FFFFFF:ow=hypot(iw,ih)',format=rgba,rotate='PI/5*t*1.5:800:600:c=#FF00FF:ow=hypot(iw,ih)'" -t 00:00:30 -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #从左到右:视频不动,背景从左往右动 #ffmpeg -i input-0.mp4 -i bg.jpg -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=800:800[pm1];[pm1]overlay=x='if(gte(t,0), -w+(mod(t*500, W+w)), NAN)':y=(H-h)/2" -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #从左到右:背景不动,视频从左往右动 #ffmpeg -i input-0.mp4 -i bg.jpg -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=800:800[pm1];[pm1]overlay=x='if(gte(t,0), -w+(mod(t*500, W+w)), NAN)':y=(H-h)/2" -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #从左到右:背景不动,视频从左往右动,速度越来越快 #ffmpeg -i input-0.mp4 -i bg.jpg -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=800:800[pm1];[pm1]overlay=x='if(gte(t,0), -w+(mod(t*t*500, W+w)), NAN)':y=(H-h)/2" -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #从上往下:视频不动,背景从上往下动 #ffmpeg -i input-0.mp4 -i bg.jpg -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=200:60[pm1];[pm1]overlay=x=(W-w)/2:y='if(gte(t,0), (mod(t*500, H+h)), NAN)'" -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #从上往下:背景不动,视频从上往下动 #ffmpeg -i input-0.mp4 -i bg.jpg -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=800:800[pm1];[pm1]overlay=x=(W-w)/2:y='if(gte(t,0), (mod(t*500, H+h)), NAN)'" -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #从下往上移动:视频不动,背景从下往上动 ffmpeg -i 20250926_1607.mp4 -i bg.png -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=640:480,rotate=fillcolor=#0000FF@0.1[pm1];[pm1]colorkey=#0000FF:0.01:1[pm1];[pm1]overlay=x=(W-w)/2:y='if(gte(t,0), H-(mod(t*50, H-1)), NAN)'" -map "" -map "" -t 9.58 -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4 #从下往上移动:背景不动,视频从下往上动 #ffmpeg -i input-0.mp4 -i bg.jpg -filter_complex "[0:v]copy;[0:a]acopy;[1:v]copy[pm1];[pm1]format=rgba,colorchannelmixer=aa=1,scale=800:800[pm1];[pm1]overlay=x=(W-w)/2:y='if(gte(t,0), H-(mod(t*500, H-1)), NAN)'" -map "" -map "" -f mp4 $(date +%Y%m%d)-$(date +%H%M%S).mp4>