不透明度設定で画像を重ねたい
動画に画像を重ねる方法は知っていますが、不透明度を設定する方法もわかりません。動画に透かしを簡単に追加できますが、この透かしの不透明度は 100% です。
しかし、画像ファイルの不透明度を 50% にするにはどうすればよいでしょうか?
例:
ffmpeg -i in.mp4 -i image.png -af "pan=stereo|c0<c0+c2|c1<c1+c3,aeval=val(0)|val(1),volume=1.6" -vf "opacity=0.5" out.mp4
[AVFilterGraph @ 0000000000316dc0] そのようなフィルターはありません: 'opacity' フィルターを開くときにエラーが発生しました。
答え1
以下のコマンドを使用してください。
ffmpeg -i in.mp4 -i image.png \
-af "pan=stereo|c0<c0+c2|c1<c1+c3,aeval=val(0)|val(1),volume=1.6" \
-filter_complex "[1]geq=r='r(X,Y)':a='0.5*alpha(X,Y)'[a];[0][a]overlay" out.mp4
a='0.5*alpha(X,Y)'
アルファ、つまり不透明度を設定します。
フィルターgeq
は入力が RGB か YUV かを自動検出せず、非アルファ プレーンの 1 つの式の存在から判断するため、そのうちの 1 つを指定する必要があります。R プレーンの式を指定してそれを ID に設定しているので、変更されません。