ffmpeg で切り取られた円形ビデオの端に赤い色の境界線を表示するにはどうすればよいでしょうか?

ffmpeg で切り取られた円形ビデオの端に赤い色の境界線を表示するにはどうすればよいでしょうか?

ビデオを円形にカットし、画像にオーバーレイしました。すべてうまく機能していますが、円形のビデオの端に赤い境界線を表示するにはどうすればよいでしょうか。

ffmpeg -loop 1 -i pic1.jpg -i semple.mp4 -filter_complex \
"[1]trim=end_frame=1,geq='st(3,pow(X-(W/2),2)+pow(Y-(H/2),2));if(lte(ld(3),pow(min(W/2,H/2),2)),255,0)':128:128,loop=-1:1,setpts=N/FRAME_RATE/TB[mask];[1][mask]alphamerge[cutout];[cutout]scale=400:400[cir];[0][cir]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:shortest=1[out]" -map [out] -map 1:a -preset ultrafast -filter_complex_threads 1 -c:a copy -y output.mp4

誰か助けてください。

答え1

cout マスクをマージした後、geq を使用して 10 ピクセルの赤い境界線を描画します。

使用

ffmpeg -loop 1 -i pic1.jpg -i semple.mp4 -filter_complex \ "[1]trim=end_frame=1,geq='st(3,pow(X-(W/2),2)+pow(Y-(H/2),2));if(lte(ld(3),pow(min(W/2,H/2),2)),255,0)':128:128,loop=-1:1,setpts=N/FRAME_RATE/TB[mask];[1][mask]alphamerge,format=yuva444p,geq='st(3,sqrt(pow(X-(SW*W/2),2)+pow(Y-(SH*H/2),2)));if(between(min(SW*W/2,SH*H/2)-ld(3),0,10),67,p(X,Y))':'st(3,sqrt(pow(X-(SW*W/2),2)+pow(Y-(SH*H/2),2)));if(between(min(SW*W/2,SH*H/2)-ld(3),0,10),90,p(X,Y))':'st(3,sqrt(pow(X-(SW*W/2),2)+pow(Y-(SH*H/2),2)));if(between(min(SW*W/2,SH*H/2)-ld(3),0,10),240,p(X,Y))':a='st(3,sqrt(pow(X-(SW*W/2),2)+pow(Y-(SH*H/2),2)));if(between(min(SW*W/2,SH*H/2)-ld(3),0,10),128,p(X,Y))',scale=400:400[cir];[0][cir]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:shortest=1[out]" -map [out] -map 1:a -preset ultrafast -filter_complex_threads 1 -c:a copy -y output.mp4

関連情報