

動画内に斜線を描画したく思っております。  
縦、横の線でしたら

[code]

    -i input -vf drawbox=10:10:1:200:color='#ff0000':8:enable='between(t,3,5) output
    
[/code]

のようにdrawboxで引くことは出来ましたが、斜線のやり方がわかりません。  
こちらどの様にしたら斜線が引けるのでしょうか

よろしくお願い致します。


CC BY-SA 4.0
2022-01-30T08:15:52.727
86018
2022-01-31T06:03:38.270
29606
question
ffmpeg
ffmpegを使用して動画に斜線を描画したい


[ffmpeg draw a line from point to
pointの回答](https://superuser.com/a/1142528)によると、下記引用のようにgeqフィルタでif文を使って「X座標とY座標が一致する座標に点を描画する」処理を繰り返して線を描画できるようです。

[code]

    ffmpeg -i in.mp4 -filter_complex 
          "color=red:s=490x490,geq=lum='p(X,Y))':a='if(eq(X,Y),255,0)'[c];
           [0][c]overlay=10:10:shortest=1" 
    out.mp4
    
[/code]

ただし上記回答のコメントにある通り、この処理はgeqフィルタで画面全体を走査して点描を行うのでコストが大きいです。  
[数式で線や円、模様が描ける GEQ](https://nico-
lab.net/geq_with_ffmpeg/#i-2)の「負荷を軽くするには」のアドバイス(下記引用)も参考になりそうです。

> geqフィルタは処理が重たいので映像に変化がないならtrimフィルタで1フレームだけ取り出してloopフィルタで繰り返した方がよい。
[code]

    ffplay -f lavfi -i color,geq='st(0,between(X,W/3,2*W/3)*between(Y,H/3,2*H/3));ld(0)*255:128:128',trim=end_frame=1,loop=-1:1:0,setpts=N/FRAME_RATE/TB
    
[/code]


CC BY-SA 4.0
2022-01-31T01:28:35.323
86026
2022-01-31T01:28:35.323
9820
86018
answer


代替案として、斜線を引いた画像を用意して動画に合成するという方法も考えられます。

参考:  
[FFmpegで動画と画像をブレンド合成して透過する](https://askthewind.hatenablog.com/entry/2018/12/22/140629)


CC BY-SA 4.0
2022-01-31T06:03:38.270
86030
2022-01-31T06:03:38.270
3060
86018
answer