我想用不透明度設定覆蓋圖像
我知道如何在影片上疊加圖像,但我也不知道如何設定其不透明度。我可以輕鬆地在影片上添加浮水印,但該浮水印的不透明度為 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] 沒有這樣的過濾器:「不透明度」開啟過濾器時出錯!
答案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)'
alpha 即不透明度。
濾波器geq
不會自動偵測輸入是 RGB 還是 YUV,而是從非 Alpha 平面之一的表達式的存在中取得提示,因此必須指定其中一個。我已經為 R 平面指定了一個表達式並將其設為恆等式,因此它不會被更改。