![ブレンドフィルタに引数を渡す方法 FFMPEG](https://rvso.com/image/1493956/%E3%83%96%E3%83%AC%E3%83%B3%E3%83%89%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%81%AB%E5%BC%95%E6%95%B0%E3%82%92%E6%B8%A1%E3%81%99%E6%96%B9%E6%B3%95%20FFMPEG.png)
5 枚の画像を結合し、結合後に点滅するビデオを作成しようとしています。フェードイン フェードアウト効果を正常に適用できました。FFMPEG は私にとってまだかなり新しいものです。
私が実行したコマンドは次のとおりです。
"-loop 1 -i "+path+"images_001.jpg " +
"-loop 1 -i "+path+"images_002.jpg " +
"-loop 1 -i "+path+"images_003.jpg " +
"-loop 1 -i "+path+"images_004.jpg " +
"-loop 1 -i "+path+"images_005.jpg " +
"-filter_complex " +
"[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v];" +
"[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v];" +
"[3:v][2:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v];" +
"[4:v][3:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b4v];" +
"[0:v][b1v][1:v][b2v][2:v][b3v][3:v][b4v][4:v]concat=n=9:v=1:a=0,format=yuv420p[v] -map [v] "+path+"out.mp4"
このコマンドを実行すると、プロセスは永久に実行され続けます。そのスクリーンショットがこれです:
何かおかしなことを見逃しているのがわかっています。初心者なので、ffmpeg
どこで間違っているのかを教えていただけるとありがたいです。何が足りないのでしょうか?
答え1
各 の後に-loop 1
、 を挿入します。-t x
ここで、 x は秒単位の期間です。
答え2
ブレンドの表現が意味をなさないようです。何をしたいのですか? ブレンドは各ピクセルに対して次のような処理を行います: ピクセル コンポーネント = 関数 (A 入力のピクセル コンポーネント、B 入力のピクセル コンポーネント)。では、関数で何をすべきですか? 非常に単純なケースですが、(A + B) / 2 を実行できます...